From 946605234c7cf35cadfe9bde5531ebe6655f1b42 Mon Sep 17 00:00:00 2001 From: Marius Kintel Date: Sat, 3 Sep 2011 22:42:48 +0200 Subject: [PATCH] Added import_dxf-tests --- testdata/dxf/multiple-layers.dxf | 2140 +++++++++++++++++ testdata/scad/features/import_dxf-tests.scad | 9 + tests/CMakeLists.txt | 3 +- .../cgalpngtest/import_dxf-tests-expected.png | Bin 0 -> 9919 bytes 4 files changed, 2151 insertions(+), 1 deletion(-) create mode 100644 testdata/dxf/multiple-layers.dxf create mode 100644 testdata/scad/features/import_dxf-tests.scad create mode 100644 tests/regression/cgalpngtest/import_dxf-tests-expected.png diff --git a/testdata/dxf/multiple-layers.dxf b/testdata/dxf/multiple-layers.dxf new file mode 100644 index 00000000..88b530f2 --- /dev/null +++ b/testdata/dxf/multiple-layers.dxf @@ -0,0 +1,2140 @@ +999 +dxflib 2.2.0.0 + 0 +SECTION + 2 +HEADER + 9 +$ACADVER + 1 +AC1015 + 9 +$HANDSEED + 5 +FFFF + 9 +$DIMASZ + 40 +2.5 + 9 +$PLIMMIN + 10 +0.0 + 20 +0.0 + 9 +$DIMEXE + 40 +1.25 + 9 +$DIMGAP + 40 +0.625 + 9 +$PLIMMAX + 10 +210.0 + 20 +297.0 + 9 +$INSUNITS + 70 +4 + 9 +$DIMEXO + 40 +0.625 + 9 +$DIMTXT + 40 +2.5 + 9 +$CLAYER + 8 +Layer with a pretty long name including \ "special" /'\\ characters + 0 +ENDSEC + 0 +SECTION + 2 +TABLES + 0 +TABLE + 2 +VPORT + 5 +8 +100 +AcDbSymbolTable + 70 +1 + 0 +VPORT + 5 +30 +100 +AcDbSymbolTableRecord +100 +AcDbViewportTableRecord + 2 +*Active + 70 +0 + 10 +0.0 + 20 +0.0 + 11 +1.0 + 21 +1.0 + 12 +286.3055555555554861 + 22 +148.5 + 13 +0.0 + 23 +0.0 + 14 +10.0 + 24 +10.0 + 15 +10.0 + 25 +10.0 + 16 +0.0 + 26 +0.0 + 36 +1.0 + 17 +0.0 + 27 +0.0 + 37 +0.0 + 40 +297.0 + 41 +1.92798353909465 + 42 +50.0 + 43 +0.0 + 44 +0.0 + 50 +0.0 + 51 +0.0 + 71 +0 + 72 +100 + 73 +1 + 74 +3 + 75 +1 + 76 +1 + 77 +0 + 78 +0 +281 +0 + 65 +1 +110 +0.0 +120 +0.0 +130 +0.0 +111 +1.0 +121 +0.0 +131 +0.0 +112 +0.0 +122 +1.0 +132 +0.0 + 79 +0 +146 +0.0 + 0 +ENDTAB + 0 +TABLE + 2 +LTYPE + 5 +5 +100 +AcDbSymbolTable + 70 +21 + 0 +LTYPE + 5 +14 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +ByBlock + 70 +0 + 3 + + 72 +65 + 73 +0 + 40 +0.0 + 0 +LTYPE + 5 +15 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +ByLayer + 70 +0 + 3 + + 72 +65 + 73 +0 + 40 +0.0 + 0 +LTYPE + 5 +16 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +CONTINUOUS + 70 +0 + 3 +Solid line + 72 +65 + 73 +0 + 40 +0.0 + 0 +LTYPE + 5 +31 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +DOT + 70 +0 + 3 +Dot . . . . . . . . . . . . . . . . . . . . . . + 72 +65 + 73 +2 + 40 +6.3499999999999996 + 49 +0.0 + 74 +0 + 49 +-6.3499999999999996 + 74 +0 + 0 +LTYPE + 5 +32 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +DOT2 + 70 +0 + 3 +Dot (.5x) ..................................... + 72 +65 + 73 +2 + 40 +3.1749999999999998 + 49 +0.0 + 74 +0 + 49 +-3.1749999999999998 + 74 +0 + 0 +LTYPE + 5 +33 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +DOTX2 + 70 +0 + 3 +Dot (2x) . . . . . . . . . . . . . + 72 +65 + 73 +2 + 40 +12.6999999999999993 + 49 +0.0 + 74 +0 + 49 +-12.6999999999999993 + 74 +0 + 0 +LTYPE + 5 +34 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +DASHED + 70 +0 + 3 +Dashed __ __ __ __ __ __ __ __ __ __ __ __ __ _ + 72 +65 + 73 +2 + 40 +19.0500000000000007 + 49 +12.6999999999999993 + 74 +0 + 49 +-6.3499999999999996 + 74 +0 + 0 +LTYPE + 5 +35 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +DASHED2 + 70 +0 + 3 +Dashed (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + 72 +65 + 73 +2 + 40 +9.5250000000000004 + 49 +6.3499999999999996 + 74 +0 + 49 +-3.1749999999999998 + 74 +0 + 0 +LTYPE + 5 +36 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +DASHEDX2 + 70 +0 + 3 +Dashed (2x) ____ ____ ____ ____ ____ ___ + 72 +65 + 73 +2 + 40 +38.1000000000000014 + 49 +25.3999999999999986 + 74 +0 + 49 +-12.6999999999999993 + 74 +0 + 0 +LTYPE + 5 +37 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +DASHDOT + 70 +0 + 3 +Dash dot __ . __ . __ . __ . __ . __ . __ . __ + 72 +65 + 73 +4 + 40 +25.3999999999999986 + 49 +12.6999999999999993 + 74 +0 + 49 +-6.3499999999999996 + 74 +0 + 49 +0.0 + 74 +0 + 49 +-6.3499999999999996 + 74 +0 + 0 +LTYPE + 5 +38 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +DASHDOT2 + 70 +0 + 3 +Dash dot (.5x) _._._._._._._._._._._._._._._. + 72 +65 + 73 +4 + 40 +12.6999999999999993 + 49 +6.3499999999999996 + 74 +0 + 49 +-3.1749999999999998 + 74 +0 + 49 +0.0 + 74 +0 + 49 +-3.1749999999999998 + 74 +0 + 0 +LTYPE + 5 +39 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +DASHDOTX2 + 70 +0 + 3 +Dash dot (2x) ____ . ____ . ____ . ___ + 72 +65 + 73 +4 + 40 +50.7999999999999972 + 49 +25.3999999999999986 + 74 +0 + 49 +-12.6999999999999993 + 74 +0 + 49 +0.0 + 74 +0 + 49 +-12.6999999999999993 + 74 +0 + 0 +LTYPE + 5 +3A +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +DIVIDE + 70 +0 + 3 +Divide ____ . . ____ . . ____ . . ____ . . ____ + 72 +65 + 73 +6 + 40 +31.75 + 49 +12.6999999999999993 + 74 +0 + 49 +-6.3499999999999996 + 74 +0 + 49 +0.0 + 74 +0 + 49 +-6.3499999999999996 + 74 +0 + 49 +0.0 + 74 +0 + 49 +-6.3499999999999996 + 74 +0 + 0 +LTYPE + 5 +3B +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +DIVIDE2 + 70 +0 + 3 +Divide (.5x) __..__..__..__..__..__..__..__.._ + 72 +65 + 73 +6 + 40 +15.875 + 49 +6.3499999999999996 + 74 +0 + 49 +-3.1749999999999998 + 74 +0 + 49 +0.0 + 74 +0 + 49 +-3.1749999999999998 + 74 +0 + 49 +0.0 + 74 +0 + 49 +-3.1749999999999998 + 74 +0 + 0 +LTYPE + 5 +3C +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +DIVIDEX2 + 70 +0 + 3 +Divide (2x) ________ . . ________ . . _ + 72 +65 + 73 +6 + 40 +63.5 + 49 +25.3999999999999986 + 74 +0 + 49 +-12.6999999999999993 + 74 +0 + 49 +0.0 + 74 +0 + 49 +-12.6999999999999993 + 74 +0 + 49 +0.0 + 74 +0 + 49 +-12.6999999999999993 + 74 +0 + 0 +LTYPE + 5 +3D +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +CENTER + 70 +0 + 3 +Center ____ _ ____ _ ____ _ ____ _ ____ _ ____ + 72 +65 + 73 +4 + 40 +50.7999999999999972 + 49 +31.75 + 74 +0 + 49 +-6.3499999999999996 + 74 +0 + 49 +6.3499999999999996 + 74 +0 + 49 +-6.3499999999999996 + 74 +0 + 0 +LTYPE + 5 +3E +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +CENTER2 + 70 +0 + 3 +Center (.5x) ___ _ ___ _ ___ _ ___ _ ___ _ ___ + 72 +65 + 73 +4 + 40 +28.5749999999999993 + 49 +19.0500000000000007 + 74 +0 + 49 +-3.1749999999999998 + 74 +0 + 49 +3.1749999999999998 + 74 +0 + 49 +-3.1749999999999998 + 74 +0 + 0 +LTYPE + 5 +3F +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +CENTERX2 + 70 +0 + 3 +Center (2x) ________ __ ________ __ _____ + 72 +65 + 73 +4 + 40 +101.5999999999999943 + 49 +63.5 + 74 +0 + 49 +-12.6999999999999993 + 74 +0 + 49 +12.6999999999999993 + 74 +0 + 49 +-12.6999999999999993 + 74 +0 + 0 +LTYPE + 5 +40 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +BORDER + 70 +0 + 3 +Border __ __ . __ __ . __ __ . __ __ . __ __ . + 72 +65 + 73 +6 + 40 +44.4500000000000028 + 49 +12.6999999999999993 + 74 +0 + 49 +-6.3499999999999996 + 74 +0 + 49 +12.6999999999999993 + 74 +0 + 49 +-6.3499999999999996 + 74 +0 + 49 +0.0 + 74 +0 + 49 +-6.3499999999999996 + 74 +0 + 0 +LTYPE + 5 +41 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +BORDER2 + 70 +0 + 3 +Border (.5x) __.__.__.__.__.__.__.__.__.__.__. + 72 +65 + 73 +6 + 40 +22.2250000000000014 + 49 +6.3499999999999996 + 74 +0 + 49 +-3.1749999999999998 + 74 +0 + 49 +6.3499999999999996 + 74 +0 + 49 +-3.1749999999999998 + 74 +0 + 49 +0.0 + 74 +0 + 49 +-3.1749999999999998 + 74 +0 + 0 +LTYPE + 5 +42 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +BORDERX2 + 70 +0 + 3 +Border (2x) ____ ____ . ____ ____ . ___ + 72 +65 + 73 +6 + 40 +88.9000000000000057 + 49 +25.3999999999999986 + 74 +0 + 49 +-12.6999999999999993 + 74 +0 + 49 +25.3999999999999986 + 74 +0 + 49 +-12.6999999999999993 + 74 +0 + 49 +0.0 + 74 +0 + 49 +-12.6999999999999993 + 74 +0 + 0 +ENDTAB + 0 +TABLE + 2 +LAYER + 5 +2 +100 +AcDbSymbolTable + 70 +3 + 0 +LAYER + 5 +10 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +0 + 70 +0 + 62 +7 +420 +0 + 6 +CONTINUOUS +370 +25 +390 +F + 0 +LAYER + 5 +43 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +noname + 70 +0 + 62 +7 +420 +0 + 6 +CONTINUOUS +370 +0 +390 +F + 0 +LAYER + 5 +44 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +Layer with a pretty long name including \ "special" /'\\ characters + 70 +0 + 62 +7 +420 +0 + 6 +CONTINUOUS +370 +0 +390 +F + 0 +ENDTAB + 0 +TABLE + 2 +STYLE + 5 +3 +100 +AcDbSymbolTable + 70 +1 + 0 +STYLE + 5 +11 +100 +AcDbSymbolTableRecord +100 +AcDbTextStyleTableRecord + 2 +Standard + 70 +0 + 40 +0.0 + 41 +0.75 + 50 +0.0 + 71 +0 + 42 +2.5 + 3 +txt + 4 + + 0 +ENDTAB + 0 +TABLE + 2 +VIEW + 5 +6 +100 +AcDbSymbolTable + 70 +0 + 0 +ENDTAB + 0 +TABLE + 2 +UCS + 5 +7 +100 +AcDbSymbolTable + 70 +0 + 0 +ENDTAB + 0 +TABLE + 2 +APPID + 5 +9 +100 +AcDbSymbolTable + 70 +1 + 0 +APPID + 5 +12 +100 +AcDbSymbolTableRecord +100 +AcDbRegAppTableRecord + 2 +ACAD + 70 +0 + 0 +ENDTAB + 0 +TABLE + 2 +DIMSTYLE + 5 +A +100 +AcDbSymbolTable + 70 +1 +100 +AcDbDimStyleTable + 71 +0 + 0 +DIMSTYLE +105 +27 +100 +AcDbSymbolTableRecord +100 +AcDbDimStyleTableRecord + 2 +Standard + 41 +2.5 + 42 +0.625 + 43 +3.75 + 44 +1.25 + 70 +0 + 73 +0 + 74 +0 + 77 +1 + 78 +8 +140 +2.5 +141 +2.5 +143 +0.03937007874016 +147 +0.625 +171 +3 +172 +1 +271 +2 +272 +2 +274 +3 +278 +44 +283 +0 +284 +8 +340 +11 + 0 +ENDTAB + 0 +TABLE + 2 +BLOCK_RECORD + 5 +1 +100 +AcDbSymbolTable + 70 +1 + 0 +BLOCK_RECORD + 5 +1F +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +*Model_Space +340 +22 + 0 +BLOCK_RECORD + 5 +1B +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +*Paper_Space +340 +1E + 0 +BLOCK_RECORD + 5 +23 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +*Paper_Space0 +340 +26 + 0 +ENDTAB + 0 +ENDSEC + 0 +SECTION + 2 +BLOCKS + 0 +BLOCK + 5 +20 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +*Model_Space + 70 +0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +*Model_Space + 1 + + 0 +ENDBLK + 5 +21 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +1C +100 +AcDbEntity + 67 +1 + 8 +0 +100 +AcDbBlockBegin + 2 +*Paper_Space + 70 +0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +*Paper_Space + 1 + + 0 +ENDBLK + 5 +1D +100 +AcDbEntity + 67 +1 + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +24 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +*Paper_Space0 + 70 +0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +*Paper_Space0 + 1 + + 0 +ENDBLK + 5 +25 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +ENDSEC + 0 +SECTION + 2 +ENTITIES + 0 +LINE + 5 +45 +100 +AcDbEntity +100 +AcDbLine + 8 +0 + 62 +256 +370 +-1 + 6 +ByLayer + 10 +-40.0 + 20 +40.0 + 30 +0.0 + 11 +40.0 + 21 +40.0 + 31 +0.0 + 0 +LINE + 5 +46 +100 +AcDbEntity +100 +AcDbLine + 8 +0 + 62 +256 +370 +-1 + 6 +ByLayer + 10 +40.0 + 20 +40.0 + 30 +0.0 + 11 +40.0 + 21 +-40.0 + 31 +0.0 + 0 +LINE + 5 +47 +100 +AcDbEntity +100 +AcDbLine + 8 +0 + 62 +256 +370 +-1 + 6 +ByLayer + 10 +40.0 + 20 +-40.0 + 30 +0.0 + 11 +-40.0 + 21 +-40.0 + 31 +0.0 + 0 +LINE + 5 +48 +100 +AcDbEntity +100 +AcDbLine + 8 +0 + 62 +256 +370 +-1 + 6 +ByLayer + 10 +-40.0 + 20 +-40.0 + 30 +0.0 + 11 +-40.0 + 21 +40.0 + 31 +0.0 + 0 +CIRCLE + 5 +49 +100 +AcDbEntity +100 +AcDbCircle + 8 +noname + 62 +256 +370 +-1 + 6 +ByLayer + 10 +0.0 + 20 +0.0 + 30 +0.0 + 40 +70.7106781186547551 + 0 +LINE + 5 +4A +100 +AcDbEntity +100 +AcDbLine + 8 +Layer with a pretty long name including \ "special" /'\\ characters + 62 +256 +370 +-1 + 6 +ByLayer + 10 +100.0 + 20 +0.0 + 30 +0.0 + 11 +50.0000000000000142 + 21 +86.6025403784438623 + 31 +0.0 + 0 +LINE + 5 +4B +100 +AcDbEntity +100 +AcDbLine + 8 +Layer with a pretty long name including \ "special" /'\\ characters + 62 +256 +370 +-1 + 6 +ByLayer + 10 +50.0000000000000142 + 20 +86.6025403784438623 + 30 +0.0 + 11 +-49.9999999999999858 + 21 +86.6025403784438907 + 31 +0.0 + 0 +LINE + 5 +4C +100 +AcDbEntity +100 +AcDbLine + 8 +Layer with a pretty long name including \ "special" /'\\ characters + 62 +256 +370 +-1 + 6 +ByLayer + 10 +-49.9999999999999858 + 20 +86.6025403784438907 + 30 +0.0 + 11 +-100.0000000000000142 + 21 +0.0000000000000122 + 31 +0.0 + 0 +LINE + 5 +4D +100 +AcDbEntity +100 +AcDbLine + 8 +Layer with a pretty long name including \ "special" /'\\ characters + 62 +256 +370 +-1 + 6 +ByLayer + 10 +-100.0000000000000142 + 20 +0.0000000000000122 + 30 +0.0 + 11 +-50.0000000000000497 + 21 +-86.6025403784438481 + 31 +0.0 + 0 +LINE + 5 +4E +100 +AcDbEntity +100 +AcDbLine + 8 +Layer with a pretty long name including \ "special" /'\\ characters + 62 +256 +370 +-1 + 6 +ByLayer + 10 +-50.0000000000000497 + 20 +-86.6025403784438481 + 30 +0.0 + 11 +49.9999999999998579 + 21 +-86.6025403784439618 + 31 +0.0 + 0 +LINE + 5 +4F +100 +AcDbEntity +100 +AcDbLine + 8 +Layer with a pretty long name including \ "special" /'\\ characters + 62 +256 +370 +-1 + 6 +ByLayer + 10 +49.9999999999998579 + 20 +-86.6025403784439618 + 30 +0.0 + 11 +100.0000000000000142 + 21 +-0.0000000000002021 + 31 +0.0 + 0 +ENDSEC + 0 +SECTION + 2 +OBJECTS + 0 +DICTIONARY + 5 +C +100 +AcDbDictionary +280 +0 +281 +1 + 3 +ACAD_GROUP +350 +D + 3 +ACAD_LAYOUT +350 +1A + 3 +ACAD_MLINESTYLE +350 +17 + 3 +ACAD_PLOTSETTINGS +350 +19 + 3 +ACAD_PLOTSTYLENAME +350 +E + 3 +AcDbVariableDictionary +350 +50 + 0 +DICTIONARY + 5 +D +100 +AcDbDictionary +280 +0 +281 +1 + 0 +ACDBDICTIONARYWDFLT + 5 +E +100 +AcDbDictionary +281 +1 + 3 +Normal +350 +F +100 +AcDbDictionaryWithDefault +340 +F + 0 +ACDBPLACEHOLDER + 5 +F + 0 +DICTIONARY + 5 +17 +100 +AcDbDictionary +280 +0 +281 +1 + 3 +Standard +350 +18 + 0 +MLINESTYLE + 5 +18 +100 +AcDbMlineStyle + 2 +STANDARD + 70 +0 + 3 + + 62 +256 + 51 +90.0 + 52 +90.0 + 71 +2 + 49 +0.5 + 62 +256 + 6 +BYLAYER + 49 +-0.5 + 62 +256 + 6 +BYLAYER + 0 +DICTIONARY + 5 +19 +100 +AcDbDictionary +280 +0 +281 +1 + 0 +DICTIONARY + 5 +1A +100 +AcDbDictionary +281 +1 + 3 +Layout1 +350 +1E + 3 +Layout2 +350 +26 + 3 +Model +350 +22 + 0 +LAYOUT + 5 +1E +100 +AcDbPlotSettings + 1 + + 2 +C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 + 4 + + 6 + + 40 +0.0 + 41 +0.0 + 42 +0.0 + 43 +0.0 + 44 +0.0 + 45 +0.0 + 46 +0.0 + 47 +0.0 + 48 +0.0 + 49 +0.0 +140 +0.0 +141 +0.0 +142 +1.0 +143 +1.0 + 70 +688 + 72 +0 + 73 +0 + 74 +5 + 7 + + 75 +16 +147 +1.0 +148 +0.0 +149 +0.0 +100 +AcDbLayout + 1 +Layout1 + 70 +1 + 71 +1 + 10 +0.0 + 20 +0.0 + 11 +420.0 + 21 +297.0 + 12 +0.0 + 22 +0.0 + 32 +0.0 + 14 +100000000000000000000.0 + 24 +100000000000000000000.0 + 34 +100000000000000000000.0 + 15 +-100000000000000000000.0 + 25 +-100000000000000000000.0 + 35 +-100000000000000000000.0 +146 +0.0 + 13 +0.0 + 23 +0.0 + 33 +0.0 + 16 +1.0 + 26 +0.0 + 36 +0.0 + 17 +0.0 + 27 +1.0 + 37 +0.0 + 76 +0 +330 +1B + 0 +LAYOUT + 5 +22 +100 +AcDbPlotSettings + 1 + + 2 +C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 + 4 + + 6 + + 40 +0.0 + 41 +0.0 + 42 +0.0 + 43 +0.0 + 44 +0.0 + 45 +0.0 + 46 +0.0 + 47 +0.0 + 48 +0.0 + 49 +0.0 +140 +0.0 +141 +0.0 +142 +1.0 +143 +1.0 + 70 +1712 + 72 +0 + 73 +0 + 74 +0 + 7 + + 75 +0 +147 +1.0 +148 +0.0 +149 +0.0 +100 +AcDbLayout + 1 +Model + 70 +1 + 71 +0 + 10 +0.0 + 20 +0.0 + 11 +12.0 + 21 +9.0 + 12 +0.0 + 22 +0.0 + 32 +0.0 + 14 +0.0 + 24 +0.0 + 34 +0.0 + 15 +0.0 + 25 +0.0 + 35 +0.0 +146 +0.0 + 13 +0.0 + 23 +0.0 + 33 +0.0 + 16 +1.0 + 26 +0.0 + 36 +0.0 + 17 +0.0 + 27 +1.0 + 37 +0.0 + 76 +0 +330 +1F + 0 +LAYOUT + 5 +26 +100 +AcDbPlotSettings + 1 + + 2 +C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 + 4 + + 6 + + 40 +0.0 + 41 +0.0 + 42 +0.0 + 43 +0.0 + 44 +0.0 + 45 +0.0 + 46 +0.0 + 47 +0.0 + 48 +0.0 + 49 +0.0 +140 +0.0 +141 +0.0 +142 +1.0 +143 +1.0 + 70 +688 + 72 +0 + 73 +0 + 74 +5 + 7 + + 75 +16 +147 +1.0 +148 +0.0 +149 +0.0 +100 +AcDbLayout + 1 +Layout2 + 70 +1 + 71 +2 + 10 +0.0 + 20 +0.0 + 11 +12.0 + 21 +9.0 + 12 +0.0 + 22 +0.0 + 32 +0.0 + 14 +0.0 + 24 +0.0 + 34 +0.0 + 15 +0.0 + 25 +0.0 + 35 +0.0 +146 +0.0 + 13 +0.0 + 23 +0.0 + 33 +0.0 + 16 +1.0 + 26 +0.0 + 36 +0.0 + 17 +0.0 + 27 +1.0 + 37 +0.0 + 76 +0 +330 +23 + 0 +DICTIONARY + 5 +50 +100 +AcDbDictionary +281 +1 + 3 +DIMASSOC +350 +52 + 3 +HIDETEXT +350 +51 + 0 +DICTIONARYVAR + 5 +51 +100 +DictionaryVariables +280 +0 + 1 +2 + 0 +DICTIONARYVAR + 5 +52 +100 +DictionaryVariables +280 +0 + 1 +1 + 0 +ENDSEC + 0 +EOF diff --git a/testdata/scad/features/import_dxf-tests.scad b/testdata/scad/features/import_dxf-tests.scad new file mode 100644 index 00000000..814a46c0 --- /dev/null +++ b/testdata/scad/features/import_dxf-tests.scad @@ -0,0 +1,9 @@ +import_dxf(); +translate([-210,0,0]) import_dxf(file="../../dxf/polygons.dxf"); +translate([-210,0,0]) import_dxf(file="../../dxf/polygons.dxf", origin=[0,110]); +translate([-210,0,0]) import_dxf(file="../../dxf/polygons.dxf", origin=[110,110], scale=0.5); +import_dxf(file="../../dxf/multiple-layers.dxf"); +translate([-200,200,0]) import_dxf(file="../../dxf/multiple-layers.dxf", layer="0"); +translate([0,200,0]) import_dxf(file="../../dxf/multiple-layers.dxf", layer="0"); +translate([200,200,0]) import_dxf(file="../../dxf/multiple-layers.dxf", layer="noname"); +translate([0,200,0]) import_dxf(file="../../dxf/multiple-layers.dxf", layer="Layer with a pretty long name including \\ \"special\" /'\\\\ characters"); diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 2bdef54c..c274435d 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -205,13 +205,14 @@ add_cmdline_test(cgaltest stl ${CGALTEST_FILES}) LIST(APPEND CGALPNGTEST_FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/features/circle-tests.scad ${CMAKE_SOURCE_DIR}/../testdata/scad/features/square-tests.scad + ${CMAKE_SOURCE_DIR}/../testdata/scad/features/polygon-tests.scad ${CMAKE_SOURCE_DIR}/../testdata/scad/features/cube-tests.scad ${CMAKE_SOURCE_DIR}/../testdata/scad/features/sphere-tests.scad ${CMAKE_SOURCE_DIR}/../testdata/scad/features/cylinder-tests.scad - ${CMAKE_SOURCE_DIR}/../testdata/scad/features/polygon-tests.scad ${CMAKE_SOURCE_DIR}/../testdata/scad/features/union-tests.scad ${CMAKE_SOURCE_DIR}/../testdata/scad/features/difference-tests.scad ${CMAKE_SOURCE_DIR}/../testdata/scad/features/intersection-tests.scad + ${CMAKE_SOURCE_DIR}/../testdata/scad/features/import_dxf-tests.scad ${CMAKE_SOURCE_DIR}/../testdata/scad/features/color-tests.scad) #LIST(APPEND CGALPNGTEST_FILES ${CMAKE_SOURCE_DIR}/../examples/example001.scad) add_cmdline_test(cgalpngtest png ${CGALPNGTEST_FILES}) diff --git a/tests/regression/cgalpngtest/import_dxf-tests-expected.png b/tests/regression/cgalpngtest/import_dxf-tests-expected.png new file mode 100644 index 0000000000000000000000000000000000000000..7c8a63ebbd5a87958454ed0b10c0ac64c0cd62e7 GIT binary patch literal 9919 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 literal 0 HcmV?d00001