| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324 | 
							
- #------------------------------------------------------------------------------
 
- # $File: cad,v 1.23 2020/05/30 23:58:07 christos Exp $
 
- # autocad:  file(1) magic for cad files
 
- #
 
- # Microstation DGN/CIT Files (www.bentley.com)
 
- # Last updated July 29, 2005 by Lester Hightower
 
- # DGN is the default file extension of Microstation/Intergraph CAD files.
 
- # CIT is the proprietary raster format (similar to TIFF) used to attach
 
- # raster underlays to Microstation DGN (vector) drawings.
 
- #
 
- # http://www.wotsit.org/search.asp
 
- # https://filext.com/detaillist.php?extdetail=DGN
 
- # https://filext.com/detaillist.php?extdetail=CIT
 
- #
 
- # https://www.bentley.com/products/default.cfm?objectid=97F351F5-9C35-4E5E-89C2
 
- # 3F86C928&method=display&p_objectid=97F351F5-9C35-4E5E-89C280A93F86C928
 
- # https://www.bentley.com/products/default.cfm?objectid=A5C2FD43-3AC9-4C71-B682
 
- # 721C479F&method=display&p_objectid=A5C2FD43-3AC9-4C71-B682C7BE721C479F
 
- # 
 
- # URL:		https://en.wikipedia.org/wiki/MicroStation
 
- # reference:	http://dgnlib.maptools.org/dgn.html
 
- #		http://dgnlib.maptools.org/dl/ref18.pdf
 
- # Update:	Joerg Jenderek
 
- # Note: verfied by command like `dgndump seed2d_b.dgn`
 
- # test for level 8 and type 5 or 9
 
- 0	beshort&0x3F73	0x0801
 
- # level of element like 8
 
- #>0	ubyte&0x3F	x			\b, level %u
 
- #>0	ubyte		&0x80			\b, complex
 
- #>0	ubyte		&0x40			\b, reserved
 
- # type of element 9~TCB 8~Digitizer setup 5~Group Data Elements
 
- #>1	ubyte&0x7F	x			\b, type %u
 
- # words to follow in element: 17H~CEL libray 2FEh~DGN 9FEh,DFEh~CIT
 
- #>2	uleshort	x			\b, words 0x%4.4x to follow
 
- # test for 3 reserved 0 bytes in CIT or "conversion" in ViewInfo structure (DGN CEL)
 
- #>508	ubelong		x			\b, RESERVED %8.8x
 
- >508	ubelong&0xFFffFF00	=0
 
- # test for level 8 and type 9 for INGR raster image
 
- >>0	beshort		0x0809
 
- # test for length of 1st element is multiple of blocks a 512 bytes
 
- >>>2	ubyte		0xfe
 
- >>>>0 	use		ingr-image
 
- # test for DGN or CEL by jump words (uleshort) forward to next element
 
- >(2.s*2)	ulong		x
 
- # 2nd element type: 8~Digitizer~DesiGNfile 1~library cell header other~CIT
 
- #>>&1		ubyte&0x7F	x		\b, 2nd type %u
 
- # DGN
 
- >>&1		ubyte&0x7F	8
 
- >>>2		uleshort	=0x02FE		Bentley/Intergraph Microstation CAD drawing
 
- !:mime		application/x-bentley-dgn
 
- !:ext		dgn
 
- # The 0x40 bit of this byte is 1 if the file is 3D, otherwise 0
 
- >>>>1214	ubyte  		&0x40		3D
 
- >>>>1214	ubyte  		^0x40		2D
 
- # 2 chars for name of subunits like ft FT in IN mu m mm '\0 '\040
 
- >>>>1120	string		x		\b, units %-.2s
 
- # 2 chars for name of master unit like IN in ML SU tn th TH HU mm "\0 "\040 \0\0
 
- >>>>1122	string		>\0		%-.2s
 
- #>>>>1120	ubelong		x		\b, units 0x%8.8x
 
- # element range low,high x y z like xlow=0 08010000h 01080000h
 
- #>>>>4		ubelong	  	!0		\b, xlow %8.8x
 
- #>>>>8		ubelong	  	!0		\b, ylow %8.8x
 
- #>>>>12		ubelong	  	!0		\b, zlow %8.8x
 
- #>>>>16		ubelong	  	!0		\b, xhigh %8.8x
 
- #>>>>20		ubelong	  	!0		\b, yhigh %8.8x
 
- #>>>>24		ubelong	  	!0		\b, zhigh %8.8x
 
- # graphic group number; all other elements in that group have same non-0 number
 
- #>>>>28		leshort		x		\b, grphgrp 0x%4.4x
 
- # words to optional attribute linkage
 
- #>>>>30		ubyte		x		\b, attindx \%o
 
- #>>>>31		ubyte		x		\b\%o
 
- # >>30	string	\026\105			DGNFile
 
- # >>30	string	\034\105			DGNFile
 
- # >>30	string	\073\107			DGNFile
 
- # >>30	string	\073\110			DGNFile
 
- # >>30	string	\106\107			DGNFile
 
- # >>30	string	\110\103			DGNFile
 
- # >>30	string	\120\104			DGNFile
 
- # >>30	string	\172\104			DGNFile
 
- # >>30	string	\172\105			DGNFile
 
- # >>30	string	\172\106			DGNFile
 
- # >>30	string	\234\106			DGNFile
 
- # >>30	string	\273\105			DGNFile
 
- # >>30	string	\306\106			DGNFile
 
- # >>30	string	\310\104			DGNFile
 
- # >>30	string	\341\104			DGNFile
 
- # >>30	string	\372\103			DGNFile
 
- # >>30	string	\372\104			DGNFile
 
- # >>30	string	\372\106			DGNFile
 
- # >>30	string	\376\103			DGNFile
 
- # elements properties indicator
 
- #>>>>32		uleshort	!0		\b, properties 0x%4.4x
 
- # class 0~Primary
 
- #>>>>>32		uleshort&0x000F	!0		\b, class 0x%4.4x
 
- # Symbology
 
- #>>>>>34		uleshort	x		\b, Symbology 0x%4.4x
 
- # test for 2nd element type 1~library cell header
 
- >>&1		ubyte&0x7F	1
 
- # test for 1st element with level 8 and type 5 for cell library
 
- >>>0		beshort		0x0805		Bentley/Intergraph Microstation CAD cell library
 
- !:mime		application/x-bentley-cel
 
- !:ext		cel
 
- #
 
- # URL:		http://fileformats.archiveteam.org/wiki/Intergraph_Raster
 
- # reference:	https://web.archive.org/web/20140903185431/
 
- #		http://oreilly.com/www/centers/gff/formats/ingr/index.htm
 
- # note:		verfied by command like `nconvert -fullinfo LONGLAT.CIT`
 
- # display information for intergraph raster bitmap
 
- 0	name	ingr-image
 
- # in 5.37 "Microstation CITFile" "Bentley/Intergraph MicroStation CIT raster CAD"
 
- # DataTypeCode indicates format, depth of the pixel data and used compression 
 
- >4	uleshort	x			Intergraph raster image
 
- >>4	uleshort	0x0009			\b, Run-Length Encoded 1-bit
 
- !:mime	image/x-intergraph-rle
 
- !:ext	rel
 
- >>4	uleshort	0x0018			\b, CCITT Group 4 1-bit
 
- !:mime	image/x-intergraph-cit
 
- !:ext	cit
 
- >>4	uleshort	27			\b, Adaptive RLE RGB
 
- !:mime	image/x-intergraph-rgb
 
- !:ext	rgb
 
- >>4	default		x
 
- >>>4	uleshort	x			\b, Type %u
 
- !:mime	image/x-intergraph
 
- # TODO:
 
- #>4	uleshort	0			\b, no data
 
- # ...
 
- #>4	uleshort	0x0045			\b, Continuous Tone CMKY (Uncompressed)
 
- # ApplicationType: 0~generic raster image 3~drawing, scanning
 
- # 8~I/IMAGE and MicroStation Imager 9~ModelView
 
- >6	uleshort	!0			\b, ApplicationType %u
 
- #>6	uleshort	x			\b, ApplicationType %u
 
- # XViewOrigin; Raster grid data X origin
 
- #>8	ulequad		!0			\b, XViewOrigin %llx
 
- # PixelsPerLine is the number of pixels in a scan line of bitmapp
 
- >184	ulelong		x			\b, %u x
 
- # NumberOfLines is height of the raster data in scanlines
 
- >188	ulelong		x			%u
 
- # DeviceResolution; resolution of scanning device
 
- # positive indicates number of micros between lines; negative indicates DPI
 
- #>192	leshort		x			\b, DeviceResolution %d
 
- # ScanlineOrient indicates the origin and the orientation of the scan lines
 
- #>194	ubyte		x			\b, ScanlineOrient %x
 
- >194	ubyte		x			\b, orientation
 
- >194	ubyte		&0x01			right
 
- >194	ubyte		^0x01			left
 
- >194	ubyte		&0x02			down
 
- >194	ubyte		^0x02			top
 
- >194	ubyte		&0x04			horizontal
 
- >194	ubyte		^0x04			vertical
 
- # ScannableFlag; Scanline indexing method used
 
- #>195	ubyte		!0			\b, ScannableFlag 0x%x
 
- # RotationAngle; Rotation angle of raster data
 
- #>196	ubequad		!0			\b, RotationAngle 0x%llx
 
- # SkewAngle; Skew angle of raster data
 
- #>204	ubequad		!0			\b, SkewAngle %llx
 
- # DataTypeModifier; Additional raster data format info
 
- #>212	uleshort	!0			\b, DataTypeModifier 0x%4.4x
 
- # DesignFile[66]; Name of the design file
 
- >214	string		>\0			\b, DesignFile %-.66s
 
- # DatabaseFile[66]; Name of the database file
 
- >280	string		>\0			\b, DatabaseFile %-.66s
 
- # ParentGridFile[66]; Name of parent grid file
 
- >346	string		>\0			\b, ParentGridFile %-.66s
 
- # FileDescription[80]; Text description of file and contents
 
- >412	string		>\0			\b, FileDescription %-.80s
 
- # MinValue
 
- #>492	ubequad		!0			\b, MinValue 0x%llx
 
- # MaxValue
 
- #>500	ubequad		!0			\b, MaxValue 0x%llx
 
- # Reserved[3]; Unused (always 0)
 
- #>508	ubelong&0xFFffFF00	x		\b, RESERVED %8.8x
 
- # GridFileVersion; Grid File Version like 2 3
 
- #>511	ubyte		x			\b, GridFileVersion %x
 
- # AutoCAD
 
- # Merge of the different contributions and updates from https://en.wikipedia.org/wiki/Dwg
 
- # and https://www.iana.org/assignments/media-types/image/vnd.dwg
 
- 0	string	MC0.0	DWG AutoDesk AutoCAD Release 1.0
 
- !:mime image/vnd.dwg
 
- 0	string	AC1.2	DWG AutoDesk AutoCAD Release 1.2
 
- !:mime image/vnd.dwg
 
- 0	string	AC1.3	DWG AutoDesk AutoCAD Release 1.3
 
- !:mime image/vnd.dwg
 
- 0	string	AC1.40	DWG AutoDesk AutoCAD Release 1.40
 
- !:mime image/vnd.dwg
 
- 0	string	AC1.50	DWG AutoDesk AutoCAD Release 2.05
 
- !:mime image/vnd.dwg
 
- 0	string	AC2.10	DWG AutoDesk AutoCAD Release 2.10
 
- !:mime image/vnd.dwg
 
- 0	string	AC2.21	DWG AutoDesk AutoCAD Release 2.21
 
- !:mime image/vnd.dwg
 
- 0	string	AC2.22	DWG AutoDesk AutoCAD Release 2.22
 
- !:mime image/vnd.dwg
 
- 0	string	AC1001	DWG AutoDesk AutoCAD Release 2.22
 
- !:mime image/vnd.dwg
 
- 0	string	AC1002	DWG AutoDesk AutoCAD Release 2.50
 
- !:mime image/vnd.dwg
 
- 0	string	AC1003	DWG AutoDesk AutoCAD Release 2.60
 
- !:mime image/vnd.dwg
 
- 0	string	AC1004	DWG AutoDesk AutoCAD Release 9
 
- !:mime image/vnd.dwg
 
- 0	string	AC1006	DWG AutoDesk AutoCAD Release 10
 
- !:mime image/vnd.dwg
 
- 0	string	AC1009	DWG AutoDesk AutoCAD Release 11/12
 
- !:mime image/vnd.dwg
 
- # AutoCAD DWG versions R13/R14 (www.autodesk.com)
 
- # Written December 01, 2003 by Lester Hightower
 
- # Based on the DWG File Format Specifications at http://www.opendwg.org/
 
- # AutoCad, from Nahuel Greco
 
- # AutoCAD DWG versions R12/R13/R14 (www.autodesk.com)
 
- 0	string	AC1012	DWG AutoDesk AutoCAD Release 13
 
- !:mime image/vnd.dwg
 
- 0	string	AC1014	DWG AutoDesk AutoCAD Release 14
 
- !:mime image/vnd.dwg
 
- 0	string	AC1015	DWG AutoDesk AutoCAD 2000/2002
 
- !:mime image/vnd.dwg
 
- # A new version of AutoCAD DWG
 
- # Sergey Zaykov (mail_of_sergey@mail.ru, sergey_zaikov@rambler.ru,
 
- # ICQ 358572321)
 
- # From various sources like:
 
- # https://autodesk.blogs.com/between_the_lines/autocad-release-history.html
 
- 0	string	AC1018	DWG AutoDesk AutoCAD 2004/2005/2006
 
- !:mime image/vnd.dwg
 
- 0	string	AC1021	DWG AutoDesk AutoCAD 2007/2008/2009
 
- !:mime image/vnd.dwg
 
- 0	string	AC1024	DWG AutoDesk AutoCAD 2010/2011/2012
 
- !:mime image/vnd.dwg
 
- 0	string	AC1027	DWG AutoDesk AutoCAD 2013-2017
 
- !:mime image/vnd.dwg
 
- # From GNU LibreDWG
 
- 0	string	AC1032	DWG AutoDesk AutoCAD 2018/2019
 
- !:mime image/vnd.dwg
 
- # KOMPAS 2D drawing from ASCON
 
- # This is KOMPAS 2D drawing or fragment of drawing but is not detailed nor
 
- # gathered nor specification
 
- # ASCON https://ascon.net/main/ in English,
 
- #	https://ascon.ru/ main site in Russian
 
- # Extension is CDW for drawing and FRW for fragment of drawing
 
- # Sergey Zaykov (mail_of_sergey@mail.ru, sergey_zaikov@rambler.ru,
 
- # ICQ 358572321, https://vkontakte.ru/id16076543)
 
- # From:
 
- # https://sd.ascon.ru/otrs/customer.pl?Action=CustomerFAQ&CategoryID=4&ItemID=292
 
- # (in russian) and my experiments
 
- 0	string	KF
 
- >2	belong	0x4E00000C	Kompas drawing 12.0 SP1
 
- >2	belong	0x4D00000C	Kompas drawing 12.0
 
- >2	belong	0x3200000B	Kompas drawing 11.0 SP1
 
- >2	belong	0x3100000B	Kompas drawing 11.0
 
- >2	belong	0x2310000A	Kompas drawing 10.0 SP1
 
- >2	belong	0x2110000A	Kompas drawing 10.0
 
- >2	belong	0x08000009	Kompas drawing 9.0 SP1
 
- >2	belong	0x05000009	Kompas drawing 9.0
 
- >2	belong	0x33010008	Kompas drawing 8+
 
- >2	belong	0x1A000008	Kompas drawing 8.0
 
- >2	belong	0x2C010107	Kompas drawing 7+
 
- >2	belong	0x05000007	Kompas drawing 7.0
 
- >2	belong	0x32000006	Kompas drawing 6+
 
- >2	belong	0x09000006	Kompas drawing 6.0
 
- >2	belong	0x5C009005	Kompas drawing 5.11R03
 
- >2	belong	0x54009005	Kompas drawing 5.11R02
 
- >2	belong	0x51009005	Kompas drawing 5.11R01
 
- >2	belong	0x22009005	Kompas drawing 5.10R03
 
- >2	belong	0x22009005	Kompas drawing 5.10R02 mar
 
- >2	belong	0x21009005	Kompas drawing 5.10R02 febr
 
- >2	belong	0x19009005	Kompas drawing 5.10R01
 
- >2	belong	0xF4008005	Kompas drawing 5.9R01.003
 
- >2	belong	0x1C008005	Kompas drawing 5.9R01.002
 
- >2	belong	0x11008005	Kompas drawing 5.8R01.003
 
- # CAD: file(1) magic for computer aided design files
 
- # Phillip Griffith <phillip dot griffith at gmail dot com>
 
- # AutoCAD magic taken from the Open Design Alliance's OpenDWG specifications.
 
- #
 
- # 3DS (3d Studio files)
 
- 0	leshort		0x4d4d
 
- >6	leshort		0x2
 
- >>8	lelong		0xa
 
- >>>16	leshort		0x3d3d	3D Studio model
 
- !:mime	image/x-3ds
 
- !:ext 3ds
 
- # MegaCAD 2D/3D drawing (.prt)
 
- # https://megacad.de/
 
- # From: Markus Heidelberg <markus.heidelberg@web.de>
 
- 0	string	MegaCad23\0	MegaCAD 2D/3D drawing
 
- # Hoops CAD files
 
- # https://docs.techsoft3d.com/visualize/3df/latest/build/general/hsf/\
 
- # HSF_architecture.html
 
- # Stephane Charette <stephane.charette@gmail.com>
 
- 0	string	;;\020HSF\020V		OpenHSF (Hoops Stream Format)
 
- >7	regex/9 V[.0-9]{4,5}\020	%s
 
- !:ext hsf
 
- # AutoCAD Drawing Exchange Format
 
- 0	regex		\^[\ \t]*0\r?\000$
 
- >1	regex		\^[\ \t]*SECTION\r?$
 
- >>2	regex		\^[\ \t]*2\r?$
 
- >>>3	regex		\^[\ \t]*HEADER\r?$	AutoCAD Drawing Exchange Format
 
- !:mime	application/x-dxf
 
- !:ext	dxf
 
- >>>>&1	search/8192	AC1006			\b, R10
 
- >>>>&1	search/8192	AC1009			\b, R11/R12
 
- >>>>&1	search/8192	AC1012			\b, R13
 
- >>>>&1	search/8192	AC1014			\b, R14
 
- >>>>&1	search/8192	AC1015			\b, version 2000
 
- >>>>&1	search/8192	AC1018			\b, version 2004
 
- >>>>&1	search/8192	AC1021			\b, version 2007
 
- >>>>&1	search/8192	AC1024			\b, version 2010
 
- # The Sketchup 3D model format https://www.sketchup.com/
 
- 0	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
 
- !:mime application/vnd.sketchup.skp
 
- !:ext skp
 
- 4	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
 
- !:strength +40
 
 
  |