xref: /dflybsd-src/contrib/file/magic/Magdir/cad (revision 739f0ef867128a933e021db3d831e906fcafd825)
1327e51cbSPeter Avalos
2327e51cbSPeter Avalos#------------------------------------------------------------------------------
3*3b9cdfa3SAntonio Huete Jimenez# $File: cad,v 1.29 2021/12/06 19:33:27 christos Exp $
4327e51cbSPeter Avalos# autocad:  file(1) magic for cad files
5327e51cbSPeter Avalos#
6327e51cbSPeter Avalos
7327e51cbSPeter Avalos# Microstation DGN/CIT Files (www.bentley.com)
8327e51cbSPeter Avalos# Last updated July 29, 2005 by Lester Hightower
9327e51cbSPeter Avalos# DGN is the default file extension of Microstation/Intergraph CAD files.
10327e51cbSPeter Avalos# CIT is the proprietary raster format (similar to TIFF) used to attach
11327e51cbSPeter Avalos# raster underlays to Microstation DGN (vector) drawings.
12327e51cbSPeter Avalos#
13327e51cbSPeter Avalos# http://www.wotsit.org/search.asp
146fca56fbSSascha Wildner# https://filext.com/detaillist.php?extdetail=DGN
156fca56fbSSascha Wildner# https://filext.com/detaillist.php?extdetail=CIT
16327e51cbSPeter Avalos#
176fca56fbSSascha Wildner# https://www.bentley.com/products/default.cfm?objectid=97F351F5-9C35-4E5E-89C2
18327e51cbSPeter Avalos# 3F86C928&method=display&p_objectid=97F351F5-9C35-4E5E-89C280A93F86C928
196fca56fbSSascha Wildner# https://www.bentley.com/products/default.cfm?objectid=A5C2FD43-3AC9-4C71-B682
20327e51cbSPeter Avalos# 721C479F&method=display&p_objectid=A5C2FD43-3AC9-4C71-B682C7BE721C479F
216fca56fbSSascha Wildner#
226fca56fbSSascha Wildner# URL:		https://en.wikipedia.org/wiki/MicroStation
236fca56fbSSascha Wildner# reference:	http://dgnlib.maptools.org/dgn.html
246fca56fbSSascha Wildner#		http://dgnlib.maptools.org/dl/ref18.pdf
256fca56fbSSascha Wildner# Update:	Joerg Jenderek
266fca56fbSSascha Wildner# Note: verfied by command like `dgndump seed2d_b.dgn`
276fca56fbSSascha Wildner# test for level 8 and type 5 or 9
286fca56fbSSascha Wildner0	beshort&0x3F73	0x0801
296fca56fbSSascha Wildner# level of element like 8
306fca56fbSSascha Wildner#>0	ubyte&0x3F	x			\b, level %u
316fca56fbSSascha Wildner#>0	ubyte		&0x80			\b, complex
326fca56fbSSascha Wildner#>0	ubyte		&0x40			\b, reserved
336fca56fbSSascha Wildner# type of element 9~TCB 8~Digitizer setup 5~Group Data Elements
346fca56fbSSascha Wildner#>1	ubyte&0x7F	x			\b, type %u
35970935fdSSascha Wildner# words to follow in element: 17H~CEL library 2FEh~DGN 9FEh,DFEh~CIT
36614728caSSascha Wildner#>2	uleshort	x			\b, words %#4.4x to follow
376fca56fbSSascha Wildner# test for 3 reserved 0 bytes in CIT or "conversion" in ViewInfo structure (DGN CEL)
386fca56fbSSascha Wildner#>508	ubelong		x			\b, RESERVED %8.8x
396fca56fbSSascha Wildner>508	ubelong&0xFFffFF00	=0
406fca56fbSSascha Wildner# test for level 8 and type 9 for INGR raster image
416fca56fbSSascha Wildner>>0	beshort		0x0809
426fca56fbSSascha Wildner# test for length of 1st element is multiple of blocks a 512 bytes
436fca56fbSSascha Wildner>>>2	ubyte		0xfe
446fca56fbSSascha Wildner>>>>0 	use		ingr-image
456fca56fbSSascha Wildner# test for DGN or CEL by jump words (uleshort) forward to next element
466fca56fbSSascha Wildner>(2.s*2)	ulong		x
476fca56fbSSascha Wildner# 2nd element type: 8~Digitizer~DesiGNfile 1~library cell header other~CIT
486fca56fbSSascha Wildner#>>&1		ubyte&0x7F	x		\b, 2nd type %u
496fca56fbSSascha Wildner# DGN
506fca56fbSSascha Wildner>>&1		ubyte&0x7F	8
516fca56fbSSascha Wildner>>>2		uleshort	=0x02FE		Bentley/Intergraph Microstation CAD drawing
526fca56fbSSascha Wildner!:mime		application/x-bentley-dgn
536fca56fbSSascha Wildner!:ext		dgn
546fca56fbSSascha Wildner# The 0x40 bit of this byte is 1 if the file is 3D, otherwise 0
556fca56fbSSascha Wildner>>>>1214	ubyte  		&0x40		3D
566fca56fbSSascha Wildner>>>>1214	ubyte  		^0x40		2D
576fca56fbSSascha Wildner# 2 chars for name of subunits like ft FT in IN mu m mm '\0 '\040
586fca56fbSSascha Wildner>>>>1120	string		x		\b, units %-.2s
596fca56fbSSascha Wildner# 2 chars for name of master unit like IN in ML SU tn th TH HU mm "\0 "\040 \0\0
606fca56fbSSascha Wildner>>>>1122	string		>\0		%-.2s
61614728caSSascha Wildner#>>>>1120	ubelong		x		\b, units %#8.8x
626fca56fbSSascha Wildner# element range low,high x y z like xlow=0 08010000h 01080000h
636fca56fbSSascha Wildner#>>>>4		ubelong	  	!0		\b, xlow %8.8x
646fca56fbSSascha Wildner#>>>>8		ubelong	  	!0		\b, ylow %8.8x
656fca56fbSSascha Wildner#>>>>12		ubelong	  	!0		\b, zlow %8.8x
666fca56fbSSascha Wildner#>>>>16		ubelong	  	!0		\b, xhigh %8.8x
676fca56fbSSascha Wildner#>>>>20		ubelong	  	!0		\b, yhigh %8.8x
686fca56fbSSascha Wildner#>>>>24		ubelong	  	!0		\b, zhigh %8.8x
696fca56fbSSascha Wildner# graphic group number; all other elements in that group have same non-0 number
70614728caSSascha Wildner#>>>>28		leshort		x		\b, grphgrp %#4.4x
716fca56fbSSascha Wildner# words to optional attribute linkage
726fca56fbSSascha Wildner#>>>>30		ubyte		x		\b, attindx \%o
736fca56fbSSascha Wildner#>>>>31		ubyte		x		\b\%o
746fca56fbSSascha Wildner# >>30	string	\026\105			DGNFile
756fca56fbSSascha Wildner# >>30	string	\034\105			DGNFile
766fca56fbSSascha Wildner# >>30	string	\073\107			DGNFile
776fca56fbSSascha Wildner# >>30	string	\073\110			DGNFile
786fca56fbSSascha Wildner# >>30	string	\106\107			DGNFile
796fca56fbSSascha Wildner# >>30	string	\110\103			DGNFile
806fca56fbSSascha Wildner# >>30	string	\120\104			DGNFile
816fca56fbSSascha Wildner# >>30	string	\172\104			DGNFile
826fca56fbSSascha Wildner# >>30	string	\172\105			DGNFile
836fca56fbSSascha Wildner# >>30	string	\172\106			DGNFile
846fca56fbSSascha Wildner# >>30	string	\234\106			DGNFile
856fca56fbSSascha Wildner# >>30	string	\273\105			DGNFile
866fca56fbSSascha Wildner# >>30	string	\306\106			DGNFile
876fca56fbSSascha Wildner# >>30	string	\310\104			DGNFile
886fca56fbSSascha Wildner# >>30	string	\341\104			DGNFile
896fca56fbSSascha Wildner# >>30	string	\372\103			DGNFile
906fca56fbSSascha Wildner# >>30	string	\372\104			DGNFile
916fca56fbSSascha Wildner# >>30	string	\372\106			DGNFile
926fca56fbSSascha Wildner# >>30	string	\376\103			DGNFile
936fca56fbSSascha Wildner# elements properties indicator
94614728caSSascha Wildner#>>>>32		uleshort	!0		\b, properties %#4.4x
956fca56fbSSascha Wildner# class 0~Primary
96614728caSSascha Wildner#>>>>>32		uleshort&0x000F	!0		\b, class %#4.4x
976fca56fbSSascha Wildner# Symbology
98614728caSSascha Wildner#>>>>>34		uleshort	x		\b, Symbology %#4.4x
996fca56fbSSascha Wildner# test for 2nd element type 1~library cell header
1006fca56fbSSascha Wildner>>&1		ubyte&0x7F	1
1016fca56fbSSascha Wildner# test for 1st element with level 8 and type 5 for cell library
1026fca56fbSSascha Wildner>>>0		beshort		0x0805		Bentley/Intergraph Microstation CAD cell library
1036fca56fbSSascha Wildner!:mime		application/x-bentley-cel
1046fca56fbSSascha Wildner!:ext		cel
1056fca56fbSSascha Wildner#
1066fca56fbSSascha Wildner# URL:		http://fileformats.archiveteam.org/wiki/Intergraph_Raster
1076fca56fbSSascha Wildner# reference:	https://web.archive.org/web/20140903185431/
1086fca56fbSSascha Wildner#		http://oreilly.com/www/centers/gff/formats/ingr/index.htm
1096fca56fbSSascha Wildner# note:		verfied by command like `nconvert -fullinfo LONGLAT.CIT`
1106fca56fbSSascha Wildner# display information for intergraph raster bitmap
1116fca56fbSSascha Wildner0	name	ingr-image
1126fca56fbSSascha Wildner# in 5.37 "Microstation CITFile" "Bentley/Intergraph MicroStation CIT raster CAD"
1136fca56fbSSascha Wildner# DataTypeCode indicates format, depth of the pixel data and used compression
1146fca56fbSSascha Wildner>4	uleshort	x			Intergraph raster image
1156fca56fbSSascha Wildner>>4	uleshort	0x0009			\b, Run-Length Encoded 1-bit
1166fca56fbSSascha Wildner!:mime	image/x-intergraph-rle
1176fca56fbSSascha Wildner!:ext	rel
1186fca56fbSSascha Wildner>>4	uleshort	0x0018			\b, CCITT Group 4 1-bit
1196fca56fbSSascha Wildner!:mime	image/x-intergraph-cit
1206fca56fbSSascha Wildner!:ext	cit
1216fca56fbSSascha Wildner>>4	uleshort	27			\b, Adaptive RLE RGB
1226fca56fbSSascha Wildner!:mime	image/x-intergraph-rgb
1236fca56fbSSascha Wildner!:ext	rgb
1246fca56fbSSascha Wildner>>4	default		x
1256fca56fbSSascha Wildner>>>4	uleshort	x			\b, Type %u
1266fca56fbSSascha Wildner!:mime	image/x-intergraph
1276fca56fbSSascha Wildner# TODO:
1286fca56fbSSascha Wildner#>4	uleshort	0			\b, no data
1296fca56fbSSascha Wildner# ...
1306fca56fbSSascha Wildner#>4	uleshort	0x0045			\b, Continuous Tone CMKY (Uncompressed)
1316fca56fbSSascha Wildner# ApplicationType: 0~generic raster image 3~drawing, scanning
1326fca56fbSSascha Wildner# 8~I/IMAGE and MicroStation Imager 9~ModelView
1336fca56fbSSascha Wildner>6	uleshort	!0			\b, ApplicationType %u
1346fca56fbSSascha Wildner#>6	uleshort	x			\b, ApplicationType %u
1356fca56fbSSascha Wildner# XViewOrigin; Raster grid data X origin
1366fca56fbSSascha Wildner#>8	ulequad		!0			\b, XViewOrigin %llx
1376fca56fbSSascha Wildner# PixelsPerLine is the number of pixels in a scan line of bitmapp
1386fca56fbSSascha Wildner>184	ulelong		x			\b, %u x
1396fca56fbSSascha Wildner# NumberOfLines is height of the raster data in scanlines
1406fca56fbSSascha Wildner>188	ulelong		x			%u
1416fca56fbSSascha Wildner# DeviceResolution; resolution of scanning device
1426fca56fbSSascha Wildner# positive indicates number of micros between lines; negative indicates DPI
1436fca56fbSSascha Wildner#>192	leshort		x			\b, DeviceResolution %d
1446fca56fbSSascha Wildner# ScanlineOrient indicates the origin and the orientation of the scan lines
1456fca56fbSSascha Wildner#>194	ubyte		x			\b, ScanlineOrient %x
1466fca56fbSSascha Wildner>194	ubyte		x			\b, orientation
1476fca56fbSSascha Wildner>194	ubyte		&0x01			right
1486fca56fbSSascha Wildner>194	ubyte		^0x01			left
1496fca56fbSSascha Wildner>194	ubyte		&0x02			down
1506fca56fbSSascha Wildner>194	ubyte		^0x02			top
1516fca56fbSSascha Wildner>194	ubyte		&0x04			horizontal
1526fca56fbSSascha Wildner>194	ubyte		^0x04			vertical
1536fca56fbSSascha Wildner# ScannableFlag; Scanline indexing method used
154614728caSSascha Wildner#>195	ubyte		!0			\b, ScannableFlag %#x
1556fca56fbSSascha Wildner# RotationAngle; Rotation angle of raster data
156614728caSSascha Wildner#>196	ubequad		!0			\b, RotationAngle %#llx
1576fca56fbSSascha Wildner# SkewAngle; Skew angle of raster data
1586fca56fbSSascha Wildner#>204	ubequad		!0			\b, SkewAngle %llx
1596fca56fbSSascha Wildner# DataTypeModifier; Additional raster data format info
160614728caSSascha Wildner#>212	uleshort	!0			\b, DataTypeModifier %#4.4x
1616fca56fbSSascha Wildner# DesignFile[66]; Name of the design file
1626fca56fbSSascha Wildner>214	string		>\0			\b, DesignFile %-.66s
1636fca56fbSSascha Wildner# DatabaseFile[66]; Name of the database file
1646fca56fbSSascha Wildner>280	string		>\0			\b, DatabaseFile %-.66s
1656fca56fbSSascha Wildner# ParentGridFile[66]; Name of parent grid file
1666fca56fbSSascha Wildner>346	string		>\0			\b, ParentGridFile %-.66s
1676fca56fbSSascha Wildner# FileDescription[80]; Text description of file and contents
1686fca56fbSSascha Wildner>412	string		>\0			\b, FileDescription %-.80s
1696fca56fbSSascha Wildner# MinValue
170614728caSSascha Wildner#>492	ubequad		!0			\b, MinValue %#llx
1716fca56fbSSascha Wildner# MaxValue
172614728caSSascha Wildner#>500	ubequad		!0			\b, MaxValue %#llx
1736fca56fbSSascha Wildner# Reserved[3]; Unused (always 0)
1746fca56fbSSascha Wildner#>508	ubelong&0xFFffFF00	x		\b, RESERVED %8.8x
1756fca56fbSSascha Wildner# GridFileVersion; Grid File Version like 2 3
1766fca56fbSSascha Wildner#>511	ubyte		x			\b, GridFileVersion %x
177327e51cbSPeter Avalos
178e8af9738SPeter Avalos# AutoCAD
1796fca56fbSSascha Wildner# Merge of the different contributions and updates from https://en.wikipedia.org/wiki/Dwg
1806fca56fbSSascha Wildner# and https://www.iana.org/assignments/media-types/image/vnd.dwg
181e8af9738SPeter Avalos0	string	MC0.0	DWG AutoDesk AutoCAD Release 1.0
182e8af9738SPeter Avalos!:mime image/vnd.dwg
183e8af9738SPeter Avalos0	string	AC1.2	DWG AutoDesk AutoCAD Release 1.2
184e8af9738SPeter Avalos!:mime image/vnd.dwg
185e8af9738SPeter Avalos0	string	AC1.3	DWG AutoDesk AutoCAD Release 1.3
186e8af9738SPeter Avalos!:mime image/vnd.dwg
187e8af9738SPeter Avalos0	string	AC1.40	DWG AutoDesk AutoCAD Release 1.40
188e8af9738SPeter Avalos!:mime image/vnd.dwg
189e8af9738SPeter Avalos0	string	AC1.50	DWG AutoDesk AutoCAD Release 2.05
190e8af9738SPeter Avalos!:mime image/vnd.dwg
191e8af9738SPeter Avalos0	string	AC2.10	DWG AutoDesk AutoCAD Release 2.10
192e8af9738SPeter Avalos!:mime image/vnd.dwg
193e8af9738SPeter Avalos0	string	AC2.21	DWG AutoDesk AutoCAD Release 2.21
194e8af9738SPeter Avalos!:mime image/vnd.dwg
195e8af9738SPeter Avalos0	string	AC2.22	DWG AutoDesk AutoCAD Release 2.22
196e8af9738SPeter Avalos!:mime image/vnd.dwg
197e8af9738SPeter Avalos0	string	AC1001	DWG AutoDesk AutoCAD Release 2.22
198e8af9738SPeter Avalos!:mime image/vnd.dwg
199e8af9738SPeter Avalos0	string	AC1002	DWG AutoDesk AutoCAD Release 2.50
200e8af9738SPeter Avalos!:mime image/vnd.dwg
201e8af9738SPeter Avalos0	string	AC1003	DWG AutoDesk AutoCAD Release 2.60
202e8af9738SPeter Avalos!:mime image/vnd.dwg
203e8af9738SPeter Avalos0	string	AC1004	DWG AutoDesk AutoCAD Release 9
204e8af9738SPeter Avalos!:mime image/vnd.dwg
205e8af9738SPeter Avalos0	string	AC1006	DWG AutoDesk AutoCAD Release 10
206e8af9738SPeter Avalos!:mime image/vnd.dwg
207e8af9738SPeter Avalos0	string	AC1009	DWG AutoDesk AutoCAD Release 11/12
208e8af9738SPeter Avalos!:mime image/vnd.dwg
209e8af9738SPeter Avalos# AutoCAD DWG versions R13/R14 (www.autodesk.com)
210e8af9738SPeter Avalos# Written December 01, 2003 by Lester Hightower
211e8af9738SPeter Avalos# Based on the DWG File Format Specifications at http://www.opendwg.org/
212327e51cbSPeter Avalos# AutoCad, from Nahuel Greco
213327e51cbSPeter Avalos# AutoCAD DWG versions R12/R13/R14 (www.autodesk.com)
214e8af9738SPeter Avalos0	string	AC1012	DWG AutoDesk AutoCAD Release 13
215e8af9738SPeter Avalos!:mime image/vnd.dwg
216970935fdSSascha Wildner0	string	AC1013	DWG AutoDesk AutoCAD Release 13c3
217970935fdSSascha Wildner!:mime image/vnd.dwg
218e8af9738SPeter Avalos0	string	AC1014	DWG AutoDesk AutoCAD Release 14
219e8af9738SPeter Avalos!:mime image/vnd.dwg
220970935fdSSascha Wildner0	string	AC1015	DWG AutoDesk AutoCAD 2000
221e8af9738SPeter Avalos!:mime image/vnd.dwg
222e8af9738SPeter Avalos
223e4d4ce0cSPeter Avalos# A new version of AutoCAD DWG
224e4d4ce0cSPeter Avalos# Sergey Zaykov (mail_of_sergey@mail.ru, sergey_zaikov@rambler.ru,
225e4d4ce0cSPeter Avalos# ICQ 358572321)
226e4d4ce0cSPeter Avalos# From various sources like:
2276fca56fbSSascha Wildner# https://autodesk.blogs.com/between_the_lines/autocad-release-history.html
228e4d4ce0cSPeter Avalos0	string	AC1018	DWG AutoDesk AutoCAD 2004/2005/2006
229e8af9738SPeter Avalos!:mime image/vnd.dwg
230e4d4ce0cSPeter Avalos0	string	AC1021	DWG AutoDesk AutoCAD 2007/2008/2009
231e8af9738SPeter Avalos!:mime image/vnd.dwg
232e8af9738SPeter Avalos0	string	AC1024	DWG AutoDesk AutoCAD 2010/2011/2012
233e8af9738SPeter Avalos!:mime image/vnd.dwg
234c990e5baSDaniel Fojt0	string	AC1027	DWG AutoDesk AutoCAD 2013-2017
235c990e5baSDaniel Fojt!:mime image/vnd.dwg
236c990e5baSDaniel Fojt
237c990e5baSDaniel Fojt# From GNU LibreDWG
238970935fdSSascha Wildner0	string	AC1032	DWG AutoDesk AutoCAD 2018/2019/2020
239970935fdSSascha Wildner!:mime image/vnd.dwg
240970935fdSSascha Wildner0	string	AC1035	DWG AutoDesk AutoCAD 2021
241e8af9738SPeter Avalos!:mime image/vnd.dwg
242e4d4ce0cSPeter Avalos
243e4d4ce0cSPeter Avalos# KOMPAS 2D drawing from ASCON
244e4d4ce0cSPeter Avalos# This is KOMPAS 2D drawing or fragment of drawing but is not detailed nor
245e4d4ce0cSPeter Avalos# gathered nor specification
2466fca56fbSSascha Wildner# ASCON https://ascon.net/main/ in English,
2476fca56fbSSascha Wildner#	https://ascon.ru/ main site in Russian
248e4d4ce0cSPeter Avalos# Extension is CDW for drawing and FRW for fragment of drawing
249e4d4ce0cSPeter Avalos# Sergey Zaykov (mail_of_sergey@mail.ru, sergey_zaikov@rambler.ru,
2506fca56fbSSascha Wildner# ICQ 358572321, https://vkontakte.ru/id16076543)
251e4d4ce0cSPeter Avalos# From:
2526fca56fbSSascha Wildner# https://sd.ascon.ru/otrs/customer.pl?Action=CustomerFAQ&CategoryID=4&ItemID=292
253e4d4ce0cSPeter Avalos# (in russian) and my experiments
254e4d4ce0cSPeter Avalos0	string	KF
255e4d4ce0cSPeter Avalos>2	belong	0x4E00000C	Kompas drawing 12.0 SP1
256e4d4ce0cSPeter Avalos>2	belong	0x4D00000C	Kompas drawing 12.0
257e4d4ce0cSPeter Avalos>2	belong	0x3200000B	Kompas drawing 11.0 SP1
258e4d4ce0cSPeter Avalos>2	belong	0x3100000B	Kompas drawing 11.0
259e4d4ce0cSPeter Avalos>2	belong	0x2310000A	Kompas drawing 10.0 SP1
260e4d4ce0cSPeter Avalos>2	belong	0x2110000A	Kompas drawing 10.0
261e4d4ce0cSPeter Avalos>2	belong	0x08000009	Kompas drawing 9.0 SP1
262e4d4ce0cSPeter Avalos>2	belong	0x05000009	Kompas drawing 9.0
263e4d4ce0cSPeter Avalos>2	belong	0x33010008	Kompas drawing 8+
264e4d4ce0cSPeter Avalos>2	belong	0x1A000008	Kompas drawing 8.0
265e4d4ce0cSPeter Avalos>2	belong	0x2C010107	Kompas drawing 7+
266e4d4ce0cSPeter Avalos>2	belong	0x05000007	Kompas drawing 7.0
267e4d4ce0cSPeter Avalos>2	belong	0x32000006	Kompas drawing 6+
268e4d4ce0cSPeter Avalos>2	belong	0x09000006	Kompas drawing 6.0
269e4d4ce0cSPeter Avalos>2	belong	0x5C009005	Kompas drawing 5.11R03
270e4d4ce0cSPeter Avalos>2	belong	0x54009005	Kompas drawing 5.11R02
271e4d4ce0cSPeter Avalos>2	belong	0x51009005	Kompas drawing 5.11R01
272e4d4ce0cSPeter Avalos>2	belong	0x22009005	Kompas drawing 5.10R03
273e4d4ce0cSPeter Avalos>2	belong	0x22009005	Kompas drawing 5.10R02 mar
274e4d4ce0cSPeter Avalos>2	belong	0x21009005	Kompas drawing 5.10R02 febr
275e4d4ce0cSPeter Avalos>2	belong	0x19009005	Kompas drawing 5.10R01
276e4d4ce0cSPeter Avalos>2	belong	0xF4008005	Kompas drawing 5.9R01.003
277e4d4ce0cSPeter Avalos>2	belong	0x1C008005	Kompas drawing 5.9R01.002
278e4d4ce0cSPeter Avalos>2	belong	0x11008005	Kompas drawing 5.8R01.003
279327e51cbSPeter Avalos
280327e51cbSPeter Avalos# CAD: file(1) magic for computer aided design files
281327e51cbSPeter Avalos# Phillip Griffith <phillip dot griffith at gmail dot com>
282327e51cbSPeter Avalos# AutoCAD magic taken from the Open Design Alliance's OpenDWG specifications.
283327e51cbSPeter Avalos#
2849f86ab30SPeter Avalos
285c30bd091SSascha Wildner# 3DS (3d Studio files)
286c30bd091SSascha Wildner0	leshort		0x4d4d
287c30bd091SSascha Wildner>6	leshort		0x2
288c30bd091SSascha Wildner>>8	lelong		0xa
289c30bd091SSascha Wildner>>>16	leshort		0x3d3d	3D Studio model
290*3b9cdfa3SAntonio Huete Jimenez# Beat sgi MMV
291*3b9cdfa3SAntonio Huete Jimenez!:strength +20
292c30bd091SSascha Wildner!:mime	image/x-3ds
2936fca56fbSSascha Wildner!:ext 3ds
294e8af9738SPeter Avalos
295e8af9738SPeter Avalos# MegaCAD 2D/3D drawing (.prt)
2966fca56fbSSascha Wildner# https://megacad.de/
297e8af9738SPeter Avalos# From: Markus Heidelberg <markus.heidelberg@web.de>
298e8af9738SPeter Avalos0	string	MegaCad23\0	MegaCAD 2D/3D drawing
2996fca56fbSSascha Wildner
3006fca56fbSSascha Wildner# Hoops CAD files
3016fca56fbSSascha Wildner# https://docs.techsoft3d.com/visualize/3df/latest/build/general/hsf/\
3026fca56fbSSascha Wildner# HSF_architecture.html
3036fca56fbSSascha Wildner# Stephane Charette <stephane.charette@gmail.com>
3046fca56fbSSascha Wildner0	string	;;\020HSF\020V		OpenHSF (Hoops Stream Format)
3056fca56fbSSascha Wildner>7	regex/9 V[.0-9]{4,5}\020	%s
3066fca56fbSSascha Wildner!:ext hsf
3076fca56fbSSascha Wildner
3086fca56fbSSascha Wildner# AutoCAD Drawing Exchange Format
3096fca56fbSSascha Wildner0	regex		\^[\ \t]*0\r?\000$
3106fca56fbSSascha Wildner>1	regex		\^[\ \t]*SECTION\r?$
3116fca56fbSSascha Wildner>>2	regex		\^[\ \t]*2\r?$
3126fca56fbSSascha Wildner>>>3	regex		\^[\ \t]*HEADER\r?$	AutoCAD Drawing Exchange Format
3136fca56fbSSascha Wildner!:mime	application/x-dxf
3146fca56fbSSascha Wildner!:ext	dxf
3156fca56fbSSascha Wildner>>>>&1	search/8192	AC1006			\b, R10
3166fca56fbSSascha Wildner>>>>&1	search/8192	AC1009			\b, R11/R12
3176fca56fbSSascha Wildner>>>>&1	search/8192	AC1012			\b, R13
318970935fdSSascha Wildner>>>>&1	search/8192	AC1013			\b, R13c3
3196fca56fbSSascha Wildner>>>>&1	search/8192	AC1014			\b, R14
3206fca56fbSSascha Wildner>>>>&1	search/8192	AC1015			\b, version 2000
3216fca56fbSSascha Wildner>>>>&1	search/8192	AC1018			\b, version 2004
3226fca56fbSSascha Wildner>>>>&1	search/8192	AC1021			\b, version 2007
3236fca56fbSSascha Wildner>>>>&1	search/8192	AC1024			\b, version 2010
324970935fdSSascha Wildner>>>>&1	search/8192	AC1027			\b, version 2013
325970935fdSSascha Wildner>>>>&1	search/8192	AC1032			\b, version 2018
326970935fdSSascha Wildner>>>>&1	search/8192	AC1035			\b, version 2021
3276fca56fbSSascha Wildner
3286fca56fbSSascha Wildner# The Sketchup 3D model format https://www.sketchup.com/
3296fca56fbSSascha Wildner0	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
3306fca56fbSSascha Wildner!:mime application/vnd.sketchup.skp
3316fca56fbSSascha Wildner!:ext skp
332c990e5baSDaniel Fojt
333c990e5baSDaniel Fojt4	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
334c990e5baSDaniel Fojt!:strength +40
335614728caSSascha Wildner
336614728caSSascha Wildner# glTF (GL Transmission Format) - by the Khronos Group
337614728caSSascha Wildner# Reference: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#glb-file-format-specification
338614728caSSascha Wildner0	string		glTF		glTF binary model
339614728caSSascha Wildner>4	ulelong		x		\b, version %d
340614728caSSascha Wildner>8	ulelong		x		\b, length %d bytes
341614728caSSascha Wildner!:mime	model/gltf-binary
342614728caSSascha Wildner!:ext	glb
343614728caSSascha Wildner
344614728caSSascha Wildner# FBX (FilmBoX) - by Kaydara/Autodesk
345614728caSSascha Wildner# Reference: https://code.blender.org/2013/08/fbx-binary-file-format-specification
346614728caSSascha Wildner0	string	Kaydara\ FBX\ Binary\ \ \0	Kaydara FBX model,
347614728caSSascha Wildner>&2	ulelong	x	version %d
348614728caSSascha Wildner!:ext	fbx
349614728caSSascha Wildner
350614728caSSascha Wildner# PLY (Polygon File Format/Stanford Triangle Format) - by Greg Turk
351614728caSSascha Wildner# Reference: https://web.archive.org/web/20161204152348/http://www.dcs.ed.ac.uk/teaching/cs4/www/graphics/Web/ply.html
352614728caSSascha Wildner0	string	ply\n          	PLY model,
353614728caSSascha Wildner!:ext	ply
354614728caSSascha Wildner>4	string	format\ ascii\ 	ASCII,
355614728caSSascha Wildner>>&0	regex/6	[0-9.]+        	version %s
356614728caSSascha Wildner>4	string	format\ binary  	binary,
357614728caSSascha Wildner>>&0	string	_little_endian\ 	little endian,
358614728caSSascha Wildner>>>&0	regex/6	[0-9.]+         	version %s
359614728caSSascha Wildner>>&0	string	_big_endian\ 	big endian,
360614728caSSascha Wildner>>>&0	regex/6	[0-9.]+      	version %s
361614728caSSascha Wildner
362614728caSSascha Wildner# VRML (Virtual Reality Modeling Language) - by the Web3D Consortium
363614728caSSascha Wildner# From:      Michel Briand <michelbriand@free.fr>
364614728caSSascha Wildner# Reference: https://www.web3d.org/standards
365614728caSSascha Wildner0	string/w	#VRML\ V1.0\ ascii	VRML 1 file
366614728caSSascha Wildner!:mime	model/vrml
367614728caSSascha Wildner!:ext	wrl
368614728caSSascha Wildner0	string/w	#VRML\ V2.0\ utf8	ISO/IEC 14772 VRML 97 file
369614728caSSascha Wildner!:mime	model/vrml
370614728caSSascha Wildner!:ext	wrl
371614728caSSascha Wildner# X3D, VRML encoded
372614728caSSascha Wildner0	string	#X3D	X3D (Extensible 3D) model, VRML format
373614728caSSascha Wildner>4	string	V
374614728caSSascha Wildner>>5	regex/6	[0-9.]+	\b, version %s
375614728caSSascha Wildner!:mime	model/x3d+vrml
376614728caSSascha Wildner!:ext	x3dv
377614728caSSascha Wildner
378614728caSSascha Wildner## XML-based 3D CAD Formats
379614728caSSascha Wildner# From: Michel Briand <michelbriand@free.fr>, Oliver Galvin <odg@riseup.net>
380614728caSSascha Wildner0	string/w        \<?xml\ version=
381614728caSSascha Wildner!:strength + 5
382614728caSSascha Wildner# X3D (Extensible 3D)
383614728caSSascha Wildner# Schema:    https://www.web3d.org/specifications/x3d-3.2.dtd
384614728caSSascha Wildner# MIME Type: https://www.iana.org/assignments/media-types/model/x3d+xml
385614728caSSascha Wildner# Example:   https://www.web3d.org/x3d/content/examples/Basic/course/CreateX3DFromStringRandomSpheres.x3d
386614728caSSascha Wildner>20	search/1000/w   \<!DOCTYPE\ X3D         X3D (Extensible 3D) model, XML document
387614728caSSascha Wildner!:mime	model/x3d+xml
388614728caSSascha Wildner!:ext	x3d
389614728caSSascha Wildner# COLLADA (COLLAborative Design Activity) - by the Khronos Group
390614728caSSascha Wildner# Schema:    http://www.collada.org/2005/11/COLLADASchema
391614728caSSascha Wildner# Reference: https://www.khronos.org/collada
392614728caSSascha Wildner>20	search/1000/w	\<COLLADA	COLLADA model, XML document
393614728caSSascha Wildner!:mime	model/vnd.collada+xml
394614728caSSascha Wildner!:ext	dae
395614728caSSascha Wildner# 3MF (3D Manufacturing Format) - by the 3MF Consortium
396614728caSSascha Wildner# Schema:    http://schemas.microsoft.com/3dmanufacturing/core/2015/02
397614728caSSascha Wildner# Reference: https://3mf.io/specification
398614728caSSascha Wildner>20	search/1000/w	xmlns="http://schemas.microsoft.com/3dmanufacturing	3MF (3D Manufacturing Format) model, XML document
399614728caSSascha Wildner!:mime	model/3mf
400614728caSSascha Wildner!:ext	3mf
401614728caSSascha Wildner# AMF (Additive Manufacturing File)
402614728caSSascha Wildner# Reference: https://www.astm.org/Standards/ISOASTM52915.htm
403614728caSSascha Wildner>20	search/1000/w	\<amf	AMF (Additive Manufacturing Format) model, XML document
404614728caSSascha Wildner!:mime	application/x-amf
405614728caSSascha Wildner!:ext	amf
406