xref: /freebsd/contrib/file/magic/Magdir/cad (revision 898496ee09ed2b7d25f6807edc4515628196ec0a)
1b6cee71dSXin LI
2b6cee71dSXin LI#------------------------------------------------------------------------------
3*898496eeSXin LI# $File: cad,v 1.31 2022/12/09 15:36:23 christos Exp $
4b6cee71dSXin LI# autocad:  file(1) magic for cad files
5b6cee71dSXin LI#
6b6cee71dSXin LI
7b6cee71dSXin LI# Microstation DGN/CIT Files (www.bentley.com)
8b6cee71dSXin LI# Last updated July 29, 2005 by Lester Hightower
9b6cee71dSXin LI# DGN is the default file extension of Microstation/Intergraph CAD files.
10b6cee71dSXin LI# CIT is the proprietary raster format (similar to TIFF) used to attach
11b6cee71dSXin LI# raster underlays to Microstation DGN (vector) drawings.
12b6cee71dSXin LI#
13b6cee71dSXin LI# http://www.wotsit.org/search.asp
1448c779cdSXin LI# https://filext.com/detaillist.php?extdetail=DGN
1548c779cdSXin LI# https://filext.com/detaillist.php?extdetail=CIT
16b6cee71dSXin LI#
1748c779cdSXin LI# https://www.bentley.com/products/default.cfm?objectid=97F351F5-9C35-4E5E-89C2
18b6cee71dSXin LI# 3F86C928&method=display&p_objectid=97F351F5-9C35-4E5E-89C280A93F86C928
1948c779cdSXin LI# https://www.bentley.com/products/default.cfm?objectid=A5C2FD43-3AC9-4C71-B682
20b6cee71dSXin LI# 721C479F&method=display&p_objectid=A5C2FD43-3AC9-4C71-B682C7BE721C479F
21d38c30c0SXin LI#
22d38c30c0SXin LI# URL:		https://en.wikipedia.org/wiki/MicroStation
23d38c30c0SXin LI# reference:	http://dgnlib.maptools.org/dgn.html
24d38c30c0SXin LI#		http://dgnlib.maptools.org/dl/ref18.pdf
25d38c30c0SXin LI# Update:	Joerg Jenderek
26d38c30c0SXin LI# Note: verfied by command like `dgndump seed2d_b.dgn`
27d38c30c0SXin LI# test for level 8 and type 5 or 9
28d38c30c0SXin LI0	beshort&0x3F73	0x0801
29d38c30c0SXin LI# level of element like 8
30d38c30c0SXin LI#>0	ubyte&0x3F	x			\b, level %u
31d38c30c0SXin LI#>0	ubyte		&0x80			\b, complex
32d38c30c0SXin LI#>0	ubyte		&0x40			\b, reserved
33d38c30c0SXin LI# type of element 9~TCB 8~Digitizer setup 5~Group Data Elements
34d38c30c0SXin LI#>1	ubyte&0x7F	x			\b, type %u
3543a5ec4eSXin LI# words to follow in element: 17H~CEL library 2FEh~DGN 9FEh,DFEh~CIT
3643a5ec4eSXin LI#>2	uleshort	x			\b, words %#4.4x to follow
37d38c30c0SXin LI# test for 3 reserved 0 bytes in CIT or "conversion" in ViewInfo structure (DGN CEL)
38d38c30c0SXin LI#>508	ubelong		x			\b, RESERVED %8.8x
39d38c30c0SXin LI>508	ubelong&0xFFffFF00	=0
40d38c30c0SXin LI# test for level 8 and type 9 for INGR raster image
41d38c30c0SXin LI>>0	beshort		0x0809
42d38c30c0SXin LI# test for length of 1st element is multiple of blocks a 512 bytes
43d38c30c0SXin LI>>>2	ubyte		0xfe
44d38c30c0SXin LI>>>>0 	use		ingr-image
45d38c30c0SXin LI# test for DGN or CEL by jump words (uleshort) forward to next element
46d38c30c0SXin LI>(2.s*2)	ulong		x
47d38c30c0SXin LI# 2nd element type: 8~Digitizer~DesiGNfile 1~library cell header other~CIT
48d38c30c0SXin LI#>>&1		ubyte&0x7F	x		\b, 2nd type %u
49d38c30c0SXin LI# DGN
50d38c30c0SXin LI>>&1		ubyte&0x7F	8
51d38c30c0SXin LI>>>2		uleshort	=0x02FE		Bentley/Intergraph Microstation CAD drawing
52d38c30c0SXin LI!:mime		application/x-bentley-dgn
53d38c30c0SXin LI!:ext		dgn
54d38c30c0SXin LI# The 0x40 bit of this byte is 1 if the file is 3D, otherwise 0
55d38c30c0SXin LI>>>>1214	ubyte  		&0x40		3D
56d38c30c0SXin LI>>>>1214	ubyte  		^0x40		2D
57d38c30c0SXin LI# 2 chars for name of subunits like ft FT in IN mu m mm '\0 '\040
58d38c30c0SXin LI>>>>1120	string		x		\b, units %-.2s
59d38c30c0SXin LI# 2 chars for name of master unit like IN in ML SU tn th TH HU mm "\0 "\040 \0\0
60d38c30c0SXin LI>>>>1122	string		>\0		%-.2s
6143a5ec4eSXin LI#>>>>1120	ubelong		x		\b, units %#8.8x
62d38c30c0SXin LI# element range low,high x y z like xlow=0 08010000h 01080000h
63d38c30c0SXin LI#>>>>4		ubelong	  	!0		\b, xlow %8.8x
64d38c30c0SXin LI#>>>>8		ubelong	  	!0		\b, ylow %8.8x
65d38c30c0SXin LI#>>>>12		ubelong	  	!0		\b, zlow %8.8x
66d38c30c0SXin LI#>>>>16		ubelong	  	!0		\b, xhigh %8.8x
67d38c30c0SXin LI#>>>>20		ubelong	  	!0		\b, yhigh %8.8x
68d38c30c0SXin LI#>>>>24		ubelong	  	!0		\b, zhigh %8.8x
69d38c30c0SXin LI# graphic group number; all other elements in that group have same non-0 number
7043a5ec4eSXin LI#>>>>28		leshort		x		\b, grphgrp %#4.4x
71d38c30c0SXin LI# words to optional attribute linkage
72d38c30c0SXin LI#>>>>30		ubyte		x		\b, attindx \%o
73d38c30c0SXin LI#>>>>31		ubyte		x		\b\%o
74d38c30c0SXin LI# >>30	string	\026\105			DGNFile
75d38c30c0SXin LI# >>30	string	\034\105			DGNFile
76d38c30c0SXin LI# >>30	string	\073\107			DGNFile
77d38c30c0SXin LI# >>30	string	\073\110			DGNFile
78d38c30c0SXin LI# >>30	string	\106\107			DGNFile
79d38c30c0SXin LI# >>30	string	\110\103			DGNFile
80d38c30c0SXin LI# >>30	string	\120\104			DGNFile
81d38c30c0SXin LI# >>30	string	\172\104			DGNFile
82d38c30c0SXin LI# >>30	string	\172\105			DGNFile
83d38c30c0SXin LI# >>30	string	\172\106			DGNFile
84d38c30c0SXin LI# >>30	string	\234\106			DGNFile
85d38c30c0SXin LI# >>30	string	\273\105			DGNFile
86d38c30c0SXin LI# >>30	string	\306\106			DGNFile
87d38c30c0SXin LI# >>30	string	\310\104			DGNFile
88d38c30c0SXin LI# >>30	string	\341\104			DGNFile
89d38c30c0SXin LI# >>30	string	\372\103			DGNFile
90d38c30c0SXin LI# >>30	string	\372\104			DGNFile
91d38c30c0SXin LI# >>30	string	\372\106			DGNFile
92d38c30c0SXin LI# >>30	string	\376\103			DGNFile
93d38c30c0SXin LI# elements properties indicator
9443a5ec4eSXin LI#>>>>32		uleshort	!0		\b, properties %#4.4x
95d38c30c0SXin LI# class 0~Primary
9643a5ec4eSXin LI#>>>>>32		uleshort&0x000F	!0		\b, class %#4.4x
97d38c30c0SXin LI# Symbology
9843a5ec4eSXin LI#>>>>>34		uleshort	x		\b, Symbology %#4.4x
99d38c30c0SXin LI# test for 2nd element type 1~library cell header
100d38c30c0SXin LI>>&1		ubyte&0x7F	1
101d38c30c0SXin LI# test for 1st element with level 8 and type 5 for cell library
102d38c30c0SXin LI>>>0		beshort		0x0805		Bentley/Intergraph Microstation CAD cell library
103d38c30c0SXin LI!:mime		application/x-bentley-cel
104d38c30c0SXin LI!:ext		cel
105d38c30c0SXin LI#
106d38c30c0SXin LI# URL:		http://fileformats.archiveteam.org/wiki/Intergraph_Raster
107d38c30c0SXin LI# reference:	https://web.archive.org/web/20140903185431/
108d38c30c0SXin LI#		http://oreilly.com/www/centers/gff/formats/ingr/index.htm
109d38c30c0SXin LI# note:		verfied by command like `nconvert -fullinfo LONGLAT.CIT`
110d38c30c0SXin LI# display information for intergraph raster bitmap
111d38c30c0SXin LI0	name	ingr-image
112d38c30c0SXin LI# in 5.37 "Microstation CITFile" "Bentley/Intergraph MicroStation CIT raster CAD"
113d38c30c0SXin LI# DataTypeCode indicates format, depth of the pixel data and used compression
114d38c30c0SXin LI>4	uleshort	x			Intergraph raster image
115d38c30c0SXin LI>>4	uleshort	0x0009			\b, Run-Length Encoded 1-bit
116d38c30c0SXin LI!:mime	image/x-intergraph-rle
117d38c30c0SXin LI!:ext	rel
118d38c30c0SXin LI>>4	uleshort	0x0018			\b, CCITT Group 4 1-bit
119d38c30c0SXin LI!:mime	image/x-intergraph-cit
120d38c30c0SXin LI!:ext	cit
121d38c30c0SXin LI>>4	uleshort	27			\b, Adaptive RLE RGB
122d38c30c0SXin LI!:mime	image/x-intergraph-rgb
123d38c30c0SXin LI!:ext	rgb
124d38c30c0SXin LI>>4	default		x
125d38c30c0SXin LI>>>4	uleshort	x			\b, Type %u
126d38c30c0SXin LI!:mime	image/x-intergraph
127d38c30c0SXin LI# TODO:
128d38c30c0SXin LI#>4	uleshort	0			\b, no data
129d38c30c0SXin LI# ...
130d38c30c0SXin LI#>4	uleshort	0x0045			\b, Continuous Tone CMKY (Uncompressed)
131d38c30c0SXin LI# ApplicationType: 0~generic raster image 3~drawing, scanning
132d38c30c0SXin LI# 8~I/IMAGE and MicroStation Imager 9~ModelView
133d38c30c0SXin LI>6	uleshort	!0			\b, ApplicationType %u
134d38c30c0SXin LI#>6	uleshort	x			\b, ApplicationType %u
135d38c30c0SXin LI# XViewOrigin; Raster grid data X origin
136d38c30c0SXin LI#>8	ulequad		!0			\b, XViewOrigin %llx
137d38c30c0SXin LI# PixelsPerLine is the number of pixels in a scan line of bitmapp
138d38c30c0SXin LI>184	ulelong		x			\b, %u x
139d38c30c0SXin LI# NumberOfLines is height of the raster data in scanlines
140d38c30c0SXin LI>188	ulelong		x			%u
141d38c30c0SXin LI# DeviceResolution; resolution of scanning device
142d38c30c0SXin LI# positive indicates number of micros between lines; negative indicates DPI
143d38c30c0SXin LI#>192	leshort		x			\b, DeviceResolution %d
144d38c30c0SXin LI# ScanlineOrient indicates the origin and the orientation of the scan lines
145d38c30c0SXin LI#>194	ubyte		x			\b, ScanlineOrient %x
146d38c30c0SXin LI>194	ubyte		x			\b, orientation
147d38c30c0SXin LI>194	ubyte		&0x01			right
148d38c30c0SXin LI>194	ubyte		^0x01			left
149d38c30c0SXin LI>194	ubyte		&0x02			down
150d38c30c0SXin LI>194	ubyte		^0x02			top
151d38c30c0SXin LI>194	ubyte		&0x04			horizontal
152d38c30c0SXin LI>194	ubyte		^0x04			vertical
153d38c30c0SXin LI# ScannableFlag; Scanline indexing method used
15443a5ec4eSXin LI#>195	ubyte		!0			\b, ScannableFlag %#x
155d38c30c0SXin LI# RotationAngle; Rotation angle of raster data
15643a5ec4eSXin LI#>196	ubequad		!0			\b, RotationAngle %#llx
157d38c30c0SXin LI# SkewAngle; Skew angle of raster data
158d38c30c0SXin LI#>204	ubequad		!0			\b, SkewAngle %llx
159d38c30c0SXin LI# DataTypeModifier; Additional raster data format info
16043a5ec4eSXin LI#>212	uleshort	!0			\b, DataTypeModifier %#4.4x
161d38c30c0SXin LI# DesignFile[66]; Name of the design file
162d38c30c0SXin LI>214	string		>\0			\b, DesignFile %-.66s
163d38c30c0SXin LI# DatabaseFile[66]; Name of the database file
164d38c30c0SXin LI>280	string		>\0			\b, DatabaseFile %-.66s
165d38c30c0SXin LI# ParentGridFile[66]; Name of parent grid file
166d38c30c0SXin LI>346	string		>\0			\b, ParentGridFile %-.66s
167d38c30c0SXin LI# FileDescription[80]; Text description of file and contents
168d38c30c0SXin LI>412	string		>\0			\b, FileDescription %-.80s
169d38c30c0SXin LI# MinValue
17043a5ec4eSXin LI#>492	ubequad		!0			\b, MinValue %#llx
171d38c30c0SXin LI# MaxValue
17243a5ec4eSXin LI#>500	ubequad		!0			\b, MaxValue %#llx
173d38c30c0SXin LI# Reserved[3]; Unused (always 0)
174d38c30c0SXin LI#>508	ubelong&0xFFffFF00	x		\b, RESERVED %8.8x
175d38c30c0SXin LI# GridFileVersion; Grid File Version like 2 3
176d38c30c0SXin LI#>511	ubyte		x			\b, GridFileVersion %x
177b6cee71dSXin LI
178b6cee71dSXin LI# AutoCAD
17948c779cdSXin LI# Merge of the different contributions and updates from https://en.wikipedia.org/wiki/Dwg
18048c779cdSXin LI# and https://www.iana.org/assignments/media-types/image/vnd.dwg
181b6cee71dSXin LI0	string	MC0.0	DWG AutoDesk AutoCAD Release 1.0
182b6cee71dSXin LI!:mime image/vnd.dwg
183b6cee71dSXin LI0	string	AC1.2	DWG AutoDesk AutoCAD Release 1.2
184b6cee71dSXin LI!:mime image/vnd.dwg
185b6cee71dSXin LI0	string	AC1.3	DWG AutoDesk AutoCAD Release 1.3
186b6cee71dSXin LI!:mime image/vnd.dwg
187b6cee71dSXin LI0	string	AC1.40	DWG AutoDesk AutoCAD Release 1.40
188b6cee71dSXin LI!:mime image/vnd.dwg
189b6cee71dSXin LI0	string	AC1.50	DWG AutoDesk AutoCAD Release 2.05
190b6cee71dSXin LI!:mime image/vnd.dwg
191b6cee71dSXin LI0	string	AC2.10	DWG AutoDesk AutoCAD Release 2.10
192b6cee71dSXin LI!:mime image/vnd.dwg
193b6cee71dSXin LI0	string	AC2.21	DWG AutoDesk AutoCAD Release 2.21
194b6cee71dSXin LI!:mime image/vnd.dwg
195b6cee71dSXin LI0	string	AC2.22	DWG AutoDesk AutoCAD Release 2.22
196b6cee71dSXin LI!:mime image/vnd.dwg
197b6cee71dSXin LI0	string	AC1001	DWG AutoDesk AutoCAD Release 2.22
198b6cee71dSXin LI!:mime image/vnd.dwg
199b6cee71dSXin LI0	string	AC1002	DWG AutoDesk AutoCAD Release 2.50
200b6cee71dSXin LI!:mime image/vnd.dwg
201b6cee71dSXin LI0	string	AC1003	DWG AutoDesk AutoCAD Release 2.60
202b6cee71dSXin LI!:mime image/vnd.dwg
203b6cee71dSXin LI0	string	AC1004	DWG AutoDesk AutoCAD Release 9
204b6cee71dSXin LI!:mime image/vnd.dwg
205b6cee71dSXin LI0	string	AC1006	DWG AutoDesk AutoCAD Release 10
206b6cee71dSXin LI!:mime image/vnd.dwg
207b6cee71dSXin LI0	string	AC1009	DWG AutoDesk AutoCAD Release 11/12
208b6cee71dSXin LI!:mime image/vnd.dwg
209b6cee71dSXin LI# AutoCAD DWG versions R13/R14 (www.autodesk.com)
210b6cee71dSXin LI# Written December 01, 2003 by Lester Hightower
211b6cee71dSXin LI# Based on the DWG File Format Specifications at http://www.opendwg.org/
212b6cee71dSXin LI# AutoCad, from Nahuel Greco
213b6cee71dSXin LI# AutoCAD DWG versions R12/R13/R14 (www.autodesk.com)
214b6cee71dSXin LI0	string	AC1012	DWG AutoDesk AutoCAD Release 13
215b6cee71dSXin LI!:mime image/vnd.dwg
21643a5ec4eSXin LI0	string	AC1013	DWG AutoDesk AutoCAD Release 13c3
21743a5ec4eSXin LI!:mime image/vnd.dwg
218b6cee71dSXin LI0	string	AC1014	DWG AutoDesk AutoCAD Release 14
219b6cee71dSXin LI!:mime image/vnd.dwg
22043a5ec4eSXin LI0	string	AC1015	DWG AutoDesk AutoCAD 2000
221b6cee71dSXin LI!:mime image/vnd.dwg
222b6cee71dSXin LI
223b6cee71dSXin LI# A new version of AutoCAD DWG
224b6cee71dSXin LI# Sergey Zaykov (mail_of_sergey@mail.ru, sergey_zaikov@rambler.ru,
225b6cee71dSXin LI# ICQ 358572321)
226b6cee71dSXin LI# From various sources like:
22748c779cdSXin LI# https://autodesk.blogs.com/between_the_lines/autocad-release-history.html
228b6cee71dSXin LI0	string	AC1018	DWG AutoDesk AutoCAD 2004/2005/2006
229b6cee71dSXin LI!:mime image/vnd.dwg
230b6cee71dSXin LI0	string	AC1021	DWG AutoDesk AutoCAD 2007/2008/2009
231b6cee71dSXin LI!:mime image/vnd.dwg
232b6cee71dSXin LI0	string	AC1024	DWG AutoDesk AutoCAD 2010/2011/2012
233b6cee71dSXin LI!:mime image/vnd.dwg
2342726a701SXin LI0	string	AC1027	DWG AutoDesk AutoCAD 2013-2017
2352726a701SXin LI!:mime image/vnd.dwg
2362726a701SXin LI
2372726a701SXin LI# From GNU LibreDWG
23843a5ec4eSXin LI0	string	AC1032	DWG AutoDesk AutoCAD 2018/2019/2020
23943a5ec4eSXin LI!:mime image/vnd.dwg
24043a5ec4eSXin LI0	string	AC1035	DWG AutoDesk AutoCAD 2021
241b6cee71dSXin LI!:mime image/vnd.dwg
242b6cee71dSXin LI
243b6cee71dSXin LI# KOMPAS 2D drawing from ASCON
244b6cee71dSXin LI# This is KOMPAS 2D drawing or fragment of drawing but is not detailed nor
245b6cee71dSXin LI# gathered nor specification
24648c779cdSXin LI# ASCON https://ascon.net/main/ in English,
24748c779cdSXin LI#	https://ascon.ru/ main site in Russian
248b6cee71dSXin LI# Extension is CDW for drawing and FRW for fragment of drawing
249b6cee71dSXin LI# Sergey Zaykov (mail_of_sergey@mail.ru, sergey_zaikov@rambler.ru,
25048c779cdSXin LI# ICQ 358572321, https://vkontakte.ru/id16076543)
251b6cee71dSXin LI# From:
25248c779cdSXin LI# https://sd.ascon.ru/otrs/customer.pl?Action=CustomerFAQ&CategoryID=4&ItemID=292
253b6cee71dSXin LI# (in russian) and my experiments
254b6cee71dSXin LI0	string	KF
255b6cee71dSXin LI>2	belong	0x4E00000C	Kompas drawing 12.0 SP1
256b6cee71dSXin LI>2	belong	0x4D00000C	Kompas drawing 12.0
257b6cee71dSXin LI>2	belong	0x3200000B	Kompas drawing 11.0 SP1
258b6cee71dSXin LI>2	belong	0x3100000B	Kompas drawing 11.0
259b6cee71dSXin LI>2	belong	0x2310000A	Kompas drawing 10.0 SP1
260b6cee71dSXin LI>2	belong	0x2110000A	Kompas drawing 10.0
261b6cee71dSXin LI>2	belong	0x08000009	Kompas drawing 9.0 SP1
262b6cee71dSXin LI>2	belong	0x05000009	Kompas drawing 9.0
263b6cee71dSXin LI>2	belong	0x33010008	Kompas drawing 8+
264b6cee71dSXin LI>2	belong	0x1A000008	Kompas drawing 8.0
265b6cee71dSXin LI>2	belong	0x2C010107	Kompas drawing 7+
266b6cee71dSXin LI>2	belong	0x05000007	Kompas drawing 7.0
267b6cee71dSXin LI>2	belong	0x32000006	Kompas drawing 6+
268b6cee71dSXin LI>2	belong	0x09000006	Kompas drawing 6.0
269b6cee71dSXin LI>2	belong	0x5C009005	Kompas drawing 5.11R03
270b6cee71dSXin LI>2	belong	0x54009005	Kompas drawing 5.11R02
271b6cee71dSXin LI>2	belong	0x51009005	Kompas drawing 5.11R01
272b6cee71dSXin LI>2	belong	0x22009005	Kompas drawing 5.10R03
273b6cee71dSXin LI>2	belong	0x22009005	Kompas drawing 5.10R02 mar
274b6cee71dSXin LI>2	belong	0x21009005	Kompas drawing 5.10R02 febr
275b6cee71dSXin LI>2	belong	0x19009005	Kompas drawing 5.10R01
276b6cee71dSXin LI>2	belong	0xF4008005	Kompas drawing 5.9R01.003
277b6cee71dSXin LI>2	belong	0x1C008005	Kompas drawing 5.9R01.002
278b6cee71dSXin LI>2	belong	0x11008005	Kompas drawing 5.8R01.003
279b6cee71dSXin LI
280b6cee71dSXin LI# CAD: file(1) magic for computer aided design files
281b6cee71dSXin LI# Phillip Griffith <phillip dot griffith at gmail dot com>
282b6cee71dSXin LI# AutoCAD magic taken from the Open Design Alliance's OpenDWG specifications.
283b6cee71dSXin LI#
284b6cee71dSXin LI
28540427ccaSGordon Tetlow# 3DS (3d Studio files)
28640427ccaSGordon Tetlow0	leshort		0x4d4d
28740427ccaSGordon Tetlow>6	leshort		0x2
28840427ccaSGordon Tetlow>>8	lelong		0xa
28940427ccaSGordon Tetlow>>>16	leshort		0x3d3d	3D Studio model
290a4d6d3b8SXin LI# Beat sgi MMV
291a4d6d3b8SXin LI!:strength +20
29240427ccaSGordon Tetlow!:mime	image/x-3ds
2932dc4dbb9SEitan Adler!:ext 3ds
294b6cee71dSXin LI
295b6cee71dSXin LI# MegaCAD 2D/3D drawing (.prt)
29648c779cdSXin LI# https://megacad.de/
297b6cee71dSXin LI# From: Markus Heidelberg <markus.heidelberg@web.de>
298b6cee71dSXin LI0	string	MegaCad23\0	MegaCAD 2D/3D drawing
2992dc4dbb9SEitan Adler
3002dc4dbb9SEitan Adler# Hoops CAD files
3012dc4dbb9SEitan Adler# https://docs.techsoft3d.com/visualize/3df/latest/build/general/hsf/\
3022dc4dbb9SEitan Adler# HSF_architecture.html
3032dc4dbb9SEitan Adler# Stephane Charette <stephane.charette@gmail.com>
304*898496eeSXin LI0	string	;;\040HSF\040V		OpenHSF (Hoops Stream Format)
305*898496eeSXin LI>7	regex/9 V[.0-9]{4,5}\040	%s
3062dc4dbb9SEitan Adler!:ext hsf
30748c779cdSXin LI
30848c779cdSXin LI# AutoCAD Drawing Exchange Format
309*898496eeSXin LI# Update:	Joerg Jenderek
310*898496eeSXin LI# URL:		http://fileformats.archiveteam.org/wiki/DXF
311*898496eeSXin LI#		https://en.wikipedia.org/wiki/AutoCAD_DXF
312*898496eeSXin LI# Reference:	http://mark0.net/download/triddefs_xml.7z/defs/d/
313*898496eeSXin LI#		dxf-var0.trid.xml dxf-var0u.trid.xml dxf-var2.trid.xml dxf-var2u.trid.xml
314*898496eeSXin LI# Note:		called "AutoCAD Drawing eXchange Format" by TrID and
315*898496eeSXin LI#		"Drawing Interchange File Format (ASCII)" by DROID
316*898496eeSXin LI# GRR: some samples does not match 1st test like: abydos.dxf
31748c779cdSXin LI0	regex		\^[\ \t]*0\r?\000$
31848c779cdSXin LI>1	regex		\^[\ \t]*SECTION\r?$
31948c779cdSXin LI>>2	regex		\^[\ \t]*2\r?$
320*898496eeSXin LI# GRR: some samples without HEADER section like: airplan2.dxf
32148c779cdSXin LI>>>3	regex		\^[\ \t]*HEADER\r?$	AutoCAD Drawing Exchange Format
322*898496eeSXin LI#!:mime	application/x-dxf
323*898496eeSXin LI!:mime	image/vnd.dxf
32448c779cdSXin LI!:ext	dxf
325*898496eeSXin LI# DROID PUID fmt/64	fmt-64-signature-id-99.dxf
326*898496eeSXin LI>>>>&1	search/8192	MC0.0			\b, 1.0
327*898496eeSXin LI# DROID PUID fmt/65	fmt-65-signature-id-100.dxf
328*898496eeSXin LI>>>>&1	search/8192	AC1.2			\b, 1.2
329*898496eeSXin LI# DROID PUID fmt/66	fmt-66-signature-id-101.dxf
330*898496eeSXin LI>>>>&1	search/8192	AC1.3			\b, 1.3
331*898496eeSXin LI# DROID PUID fmt/67	fmt-67-signature-id-102.dxf
332*898496eeSXin LI>>>>&1	search/8192	AC1.40			\b, 1.4
333*898496eeSXin LI# DROID PUID fmt/68	fmt-68-signature-id-103.dxf
334*898496eeSXin LI>>>>&1	search/8192	AC1.50			\b, 2.0
335*898496eeSXin LI# DROID PUID fmt/69	fmt-69-signature-id-104.dxf
336*898496eeSXin LI>>>>&1	search/8192	AC2.10			\b, 2.1
337*898496eeSXin LI# DROID PUID fmt/70	fmt-70-signature-id-105.dxf
338*898496eeSXin LI>>>>&1	search/8192	AC2.21			\b, 2.2
339*898496eeSXin LI# DROID PUID fmt/71	fmt-71-signature-id-106.dxf
340*898496eeSXin LI>>>>&1	search/8192	AC1002			\b, 2.5
341*898496eeSXin LI# DROID PUID fmt/72	fmt-72-signature-id-107.dxf
342*898496eeSXin LI>>>>&1	search/8192	AC1003			\b, 2.6
343*898496eeSXin LI# DROID PUID fmt/73	fmt-73-signature-id-108.dxf
344*898496eeSXin LI>>>>&1	search/8192	AC1004			\b, R9
34548c779cdSXin LI>>>>&1	search/8192	AC1006			\b, R10
346*898496eeSXin LI# http://cd.textfiles.com/amigaenv/DXF/OBJEKTE/LASTMINUTE/apple.dxf
347*898496eeSXin LI#>>>>&1	search/8192	AC1008			\b, Rfoo
34848c779cdSXin LI>>>>&1	search/8192	AC1009			\b, R11/R12
34948c779cdSXin LI>>>>&1	search/8192	AC1012			\b, R13
35043a5ec4eSXin LI>>>>&1	search/8192	AC1013			\b, R13c3
35148c779cdSXin LI>>>>&1	search/8192	AC1014			\b, R14
35248c779cdSXin LI>>>>&1	search/8192	AC1015			\b, version 2000
35348c779cdSXin LI>>>>&1	search/8192	AC1018			\b, version 2004
35448c779cdSXin LI>>>>&1	search/8192	AC1021			\b, version 2007
35548c779cdSXin LI>>>>&1	search/8192	AC1024			\b, version 2010
35643a5ec4eSXin LI>>>>&1	search/8192	AC1027			\b, version 2013
35743a5ec4eSXin LI>>>>&1	search/8192	AC1032			\b, version 2018
35843a5ec4eSXin LI>>>>&1	search/8192	AC1035			\b, version 2021
35948c779cdSXin LI
36048c779cdSXin LI# The Sketchup 3D model format https://www.sketchup.com/
36148c779cdSXin LI0	string	\xff\xfe\xff\x0e\x53\x00\x6b\x00\x65\x00\x74\x00\x63\x00\x68\x00\x55\x00\x70\x00\x20\x00\x4d\x00\x6f\x00\x64\x00\x65\x00\x6c\x00	SketchUp Model
36248c779cdSXin LI!:mime application/vnd.sketchup.skp
36348c779cdSXin LI!:ext skp
3642726a701SXin LI
3652726a701SXin LI4	regex/b	P[0-9][0-9]\\.[0-9][0-9][0-9][0-9]\\.[0-9][0-9][0-9][0-9]\\.[0-9]	NAXOS CAD System file from version %s
3662726a701SXin LI!:strength +40
36743a5ec4eSXin LI
36843a5ec4eSXin LI# glTF (GL Transmission Format) - by the Khronos Group
36943a5ec4eSXin LI# Reference: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#glb-file-format-specification
37043a5ec4eSXin LI0	string		glTF		glTF binary model
37143a5ec4eSXin LI>4	ulelong		x		\b, version %d
37243a5ec4eSXin LI>8	ulelong		x		\b, length %d bytes
37343a5ec4eSXin LI!:mime	model/gltf-binary
37443a5ec4eSXin LI!:ext	glb
37543a5ec4eSXin LI
37643a5ec4eSXin LI# FBX (FilmBoX) - by Kaydara/Autodesk
37743a5ec4eSXin LI# Reference: https://code.blender.org/2013/08/fbx-binary-file-format-specification
37843a5ec4eSXin LI0	string	Kaydara\ FBX\ Binary\ \ \0	Kaydara FBX model,
37943a5ec4eSXin LI>&2	ulelong	x	version %d
38043a5ec4eSXin LI!:ext	fbx
38143a5ec4eSXin LI
38243a5ec4eSXin LI# PLY (Polygon File Format/Stanford Triangle Format) - by Greg Turk
38343a5ec4eSXin LI# Reference: https://web.archive.org/web/20161204152348/http://www.dcs.ed.ac.uk/teaching/cs4/www/graphics/Web/ply.html
38443a5ec4eSXin LI0	string	ply\n          	PLY model,
38543a5ec4eSXin LI!:ext	ply
38643a5ec4eSXin LI>4	string	format\ ascii\ 	ASCII,
38743a5ec4eSXin LI>>&0	regex/6	[0-9.]+        	version %s
38843a5ec4eSXin LI>4	string	format\ binary  	binary,
38943a5ec4eSXin LI>>&0	string	_little_endian\ 	little endian,
39043a5ec4eSXin LI>>>&0	regex/6	[0-9.]+         	version %s
39143a5ec4eSXin LI>>&0	string	_big_endian\ 	big endian,
39243a5ec4eSXin LI>>>&0	regex/6	[0-9.]+      	version %s
39343a5ec4eSXin LI
39443a5ec4eSXin LI# VRML (Virtual Reality Modeling Language) - by the Web3D Consortium
39543a5ec4eSXin LI# From:      Michel Briand <michelbriand@free.fr>
39643a5ec4eSXin LI# Reference: https://www.web3d.org/standards
39743a5ec4eSXin LI0	string/w	#VRML\ V1.0\ ascii	VRML 1 file
39843a5ec4eSXin LI!:mime	model/vrml
39943a5ec4eSXin LI!:ext	wrl
40043a5ec4eSXin LI0	string/w	#VRML\ V2.0\ utf8	ISO/IEC 14772 VRML 97 file
40143a5ec4eSXin LI!:mime	model/vrml
40243a5ec4eSXin LI!:ext	wrl
40343a5ec4eSXin LI# X3D, VRML encoded
40443a5ec4eSXin LI0	string	#X3D	X3D (Extensible 3D) model, VRML format
40543a5ec4eSXin LI>4	string	V
40643a5ec4eSXin LI>>5	regex/6	[0-9.]+	\b, version %s
40743a5ec4eSXin LI!:mime	model/x3d+vrml
40843a5ec4eSXin LI!:ext	x3dv
40943a5ec4eSXin LI
41043a5ec4eSXin LI## XML-based 3D CAD Formats
41143a5ec4eSXin LI# From: Michel Briand <michelbriand@free.fr>, Oliver Galvin <odg@riseup.net>
41243a5ec4eSXin LI0	string/w        \<?xml\ version=
41343a5ec4eSXin LI!:strength + 5
41443a5ec4eSXin LI# X3D (Extensible 3D)
41543a5ec4eSXin LI# Schema:    https://www.web3d.org/specifications/x3d-3.2.dtd
41643a5ec4eSXin LI# MIME Type: https://www.iana.org/assignments/media-types/model/x3d+xml
41743a5ec4eSXin LI# Example:   https://www.web3d.org/x3d/content/examples/Basic/course/CreateX3DFromStringRandomSpheres.x3d
41843a5ec4eSXin LI>20	search/1000/w   \<!DOCTYPE\ X3D         X3D (Extensible 3D) model, XML document
41943a5ec4eSXin LI!:mime	model/x3d+xml
42043a5ec4eSXin LI!:ext	x3d
42143a5ec4eSXin LI# COLLADA (COLLAborative Design Activity) - by the Khronos Group
42243a5ec4eSXin LI# Schema:    http://www.collada.org/2005/11/COLLADASchema
42343a5ec4eSXin LI# Reference: https://www.khronos.org/collada
42443a5ec4eSXin LI>20	search/1000/w	\<COLLADA	COLLADA model, XML document
42543a5ec4eSXin LI!:mime	model/vnd.collada+xml
42643a5ec4eSXin LI!:ext	dae
42743a5ec4eSXin LI# 3MF (3D Manufacturing Format) - by the 3MF Consortium
42843a5ec4eSXin LI# Schema:    http://schemas.microsoft.com/3dmanufacturing/core/2015/02
42943a5ec4eSXin LI# Reference: https://3mf.io/specification
43043a5ec4eSXin LI>20	search/1000/w	xmlns="http://schemas.microsoft.com/3dmanufacturing	3MF (3D Manufacturing Format) model, XML document
43143a5ec4eSXin LI!:mime	model/3mf
43243a5ec4eSXin LI!:ext	3mf
43343a5ec4eSXin LI# AMF (Additive Manufacturing File)
43443a5ec4eSXin LI# Reference: https://www.astm.org/Standards/ISOASTM52915.htm
43543a5ec4eSXin LI>20	search/1000/w	\<amf	AMF (Additive Manufacturing Format) model, XML document
43643a5ec4eSXin LI!:mime	application/x-amf
43743a5ec4eSXin LI!:ext	amf
438