├── demo ├── .gitignore ├── demo4.png ├── misc.png ├── ellipse.png ├── ellipse2.png ├── ellipse3.png ├── peludito.png ├── demo3.php ├── demo2.php ├── demo1.php ├── demo3.dxf ├── demo2.dxf └── demo1.dxf ├── .gitignore ├── LICENSE.md ├── composer.json ├── README.md ├── LineType.php ├── Color.php ├── template.dxf └── Creator.php /demo/.gitignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | test 2 | .idea 3 | vendor/ 4 | *.lock -------------------------------------------------------------------------------- /demo/demo4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KOYU-Tech/DXF-Creator-for-PHP/HEAD/demo/demo4.png -------------------------------------------------------------------------------- /demo/misc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KOYU-Tech/DXF-Creator-for-PHP/HEAD/demo/misc.png -------------------------------------------------------------------------------- /demo/ellipse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KOYU-Tech/DXF-Creator-for-PHP/HEAD/demo/ellipse.png -------------------------------------------------------------------------------- /demo/ellipse2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KOYU-Tech/DXF-Creator-for-PHP/HEAD/demo/ellipse2.png -------------------------------------------------------------------------------- /demo/ellipse3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KOYU-Tech/DXF-Creator-for-PHP/HEAD/demo/ellipse3.png -------------------------------------------------------------------------------- /demo/peludito.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KOYU-Tech/DXF-Creator-for-PHP/HEAD/demo/peludito.png -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | GNU AGPL 2 | GNU AFFERO GENERAL PUBLIC LICENSE 3 | Version 3, 19 November 2007 4 | https://www.gnu.org/licenses/agpl-3.0.en.html 5 | 6 | 7 | Code added to this version. 8 | addImage Function 9 | was developed by Universidad de Buenos Aires. UBA. 10 | http://www.uba.ar/ 11 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "adamasantares/dxf", 3 | "description": "A simple DXF creator for PHP", 4 | "keywords": ["php", "dxf"], 5 | "homepage": "https://github.com/KOYU-Tech/DXF-Creator-for-PHP#readme", 6 | "type": "library", 7 | "license": "MIT", 8 | "authors": [ 9 | { 10 | "name": "Konstantin Kutsevalov", 11 | "email": "konstantin@kutsevalov.name" 12 | } 13 | ], 14 | "require": { 15 | "php": ">=5.4.0" 16 | }, 17 | "autoload": { 18 | "psr-4": { 19 | "adamasantares\\dxf\\": "" 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /demo/demo3.php: -------------------------------------------------------------------------------- 1 | setColor(Color::rgb(0, 100, 0)) 16 | ->addEllipse(-20, 0, 0, -20, 30, 0, 0.5) 17 | ->setLayer('2', Color::MAGENTA, LineType::SOLID) 18 | ->addEllipseBy3Points(20, 0, 0, 20, 30, 0, 35, 0, 0) 19 | ->saveToFile(dirname(__FILE__) . '/demo3.dxf'); 20 | 21 | exit(" Done (" . dirname(__FILE__) . "/demo3.dxf)\n"); 22 | 23 | 24 | -------------------------------------------------------------------------------- /demo/demo2.php: -------------------------------------------------------------------------------- 1 | setColor(Color::rgb(0, 100, 0)) 16 | ->setLineType(LineType::DASHDOTX2) 17 | ->addCircle(0, 0, 0, 33) 18 | ->setLayer('poly', Color::MAGENTA, LineType::SOLID) 19 | ->addPolyline([ 20 | 100, 100, 21 | 100, 50, 22 | 50, 50, 23 | 50, 100, 24 | 30, 100, 25 | 30, 40, 26 | 35, 40, 27 | 35, 20, 28 | ]) 29 | ->saveToFile(dirname(__FILE__) . '/demo2.dxf'); 30 | 31 | exit(" Done (" . dirname(__FILE__) . "/demo2.dxf)\n"); 32 | 33 | 34 | -------------------------------------------------------------------------------- /demo/demo1.php: -------------------------------------------------------------------------------- 1 | setTextStyle('Consolas Regular', 'consola') 22 | ->addText(26, 46, 0, 'DXF testing', 8) 23 | ->setLayer('cyan', Color::CYAN) 24 | ->addLine(25, 0, 0, 100, 0, 0) 25 | ->addLine(100, 0, 0, 100, 75, 0) 26 | ->addLine(75, 100, 0, 0, 100, 0) 27 | ->addLine(0, 100, 0, 0, 25, 0) 28 | ->setLayer('blue', Color::BLUE, LineType::DASHDOT) 29 | ->addCircle(0, 0, 0, 25) 30 | ->setLayer('custom', Color::rgb(10, 145, 230))//, LineType::DASHED) 31 | ->addCircle(100, 100, 0, 25) 32 | ->setLayer('red', Color::RED) 33 | ->addArc(0, 100, 0, 25, 0.0, 270.0) 34 | ->setLayer('magenta', Color::MAGENTA) 35 | ->addArc(100, 0, 0, 25, 180.0, 90.0) 36 | ->setLayer('black') 37 | ->addPoint(0, 0, 0) 38 | ->addPoint(0, 100, 0) 39 | ->addPoint(100, 100, 0) 40 | ->addPoint(100, 0, 0) 41 | ->addImage(0, 0, 0, 50, 50, 0, $path, $width, $height) 42 | ->saveToFile(dirname(__FILE__) . '/demo1.dxf'); 43 | 44 | exit(" Done (" . dirname(__FILE__) . "/demo1.dxf)\n"); -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # DXF Creator for PHP 2 | 3 | A simple DXF creator for PHP. 4 | This code is the upgrade of [DXF-Writer](http://www.phpclasses.org/package/7954-PHP-Generate-CAD-files-in-the-AutoCAD-DXF-format.html). 5 | 6 | ## Examples 7 | 8 | Miscellaneous with image: 9 | 10 | ``` 11 | // Setting image data 12 | $path="./peludito.png"; 13 | $size=getimagesize($path); 14 | $width=$size[0]; 15 | $height=$size[1]; 16 | 17 | $dxf = new Creator(Creator::MILLIMETERS); 18 | $dxf->setTextStyle('Consolas Regular', 'consola') 19 | ->addText(26, 46, 0, 'DXF testing', 8) 20 | ->setColor(Color::CYAN) // change color of default layer 21 | ->addLine(25, 0, 0, 100, 0, 0) 22 | ->addLine(100, 0, 0, 100, 75, 0) 23 | ->addLine(75, 100, 0, 0, 100, 0) 24 | ->addLine(0, 100, 0, 0, 25, 0) 25 | ->setLayer('blue', Color::BLUE, LineType::DASHDOT) // create new layer 26 | ->addCircle(0, 0, 0, 25) 27 | ->setLayer('custom', Color::rgb(10, 145, 230), LineType::DASHED) 28 | ->addCircle(100, 100, 0, 25) 29 | ->setLayer('red', Color::RED) 30 | ->addArc(0, 100, 0, 25, 0.0, 270.0) 31 | ->setLayer('magenta', Color::MAGENTA) 32 | ->addArc(100, 0, 0, 25, 180.0, 90.0) 33 | ->setLayer('black') 34 | ->addPoint(0, 0, 0) 35 | ->addPoint(0, 100, 0) 36 | ->addPoint(100, 100, 0) 37 | ->addPoint(100, 0, 0) 38 | ->addImage(0, 0, 0, 50, 50, 0, $path, $width, $height) 39 | ->saveToFile('demo.dxf'); 40 | ``` 41 | 42 | Result: 43 | 44 | 45 | 46 | 47 | ## Install by Composer 48 | 49 | ``` 50 | composer require adamasantares/dxf "0.1.6" 51 | ``` 52 | 53 | or 54 | 55 | ``` 56 | "require": { 57 | "adamasantares/dxf": "0.1.6" 58 | } 59 | ``` 60 | 61 | -------------------------------------------------------------------------------- /LineType.php: -------------------------------------------------------------------------------- 1 | http://speleoalex.altervista.org 5 | * @copyright Copyright (c) 2013 6 | * @license http://opensource.org/licenses/gpl-license.php GNU General Public License 7 | * 8 | * Upgrade script to "Creator" 9 | * @author Konstantin Kutsevalov 10 | * @since 2015/08 11 | * 12 | * @see http://www.autodesk.com/techpubs/autocad/acad2000/dxf/ 13 | */ 14 | 15 | namespace adamasantares\dxf; 16 | 17 | 18 | /** 19 | * Class LineType 20 | * @package adamasantares\dxf 21 | * 22 | * @see https://pythonhosted.org/dxfwrite/entities/linepattern.html#linepattern 23 | */ 24 | final class LineType { 25 | 26 | const SOLID = 'CONTINUOUS'; 27 | const CENTER = 'CENTER'; 28 | const CENTERX2 = 'CENTERX2'; 29 | const CENTER2 = 'CENTER2'; 30 | const DASHED = 'DASHED'; 31 | const DASHEDX2 = 'DASHEDX2'; 32 | const DASHED2 = 'DASHED2'; 33 | const PHANTOM = 'PHANTOM'; 34 | const PHANTOMX2 = 'PHANTOMX2'; 35 | const PHANTOM2 = 'PHANTOM2'; 36 | const DASHDOT = 'DASHDOT'; 37 | const DASHDOTX2 = 'DASHDOTX2'; 38 | const DASHDOT2 = 'DASHDOT2'; 39 | const DOT = 'DOT'; 40 | const DOTX2 = 'DOTX2'; 41 | const DOT2 = 'DOT2'; 42 | const DIVIDE = 'DIVIDE'; 43 | const DIVIDEX2 = 'DIVIDEX2'; 44 | const DIVIDE2 = 'DIVIDE2'; 45 | 46 | 47 | public static $lines = [ 48 | self::SOLID => ['Solid line', "73\n0\n40\n0.0"], 49 | self::CENTER => ['Center ____ _ ____ _ ____ _ ____ _ ____ _ ____', "73\n4\n40\n50.8\n49\n31.75\n74\n0\n49\n-6.35\n74\n0\n49\n6.35\n74\n0\n49\n-6.35\n74\n0"], 50 | self::CENTERX2 => ['Center (2x) ________ __ ________ __ _____', "73\n4\n40\n101.6\n49\n63.5\n74\n0\n49\n-12.7\n74\n0\n49\n12.7\n74\n0\n49\n-12.7\n74\n0"], 51 | self::CENTER2 => ['Center (.5x) ___ _ ___ _ ___ _ ___ _ ___ _ ___', "73\n4\n40\n28.575\n49\n19.05\n74\n0\n49\n-3.175\n74\n0\n49\n3.175\n74\n0\n49\n-3.175\n74\n0"], 52 | self::DASHED => ['Dashed _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _', "73\n2\n40\n19.05\n49\n12.7\n74\n0\n49\n-6.35\n74\n0"], 53 | self::DASHEDX2 => ['Dashed (2x) ____ ____ ____ ____ ____ ___', "73\n2\n40\n38.09\n49\n25.4\n74\n0\n49\n-12.7\n74\n0"], 54 | self::DASHED2 => ['Dashed (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _', "73\n2\n40\n9.5249\n49\n6.35\n74\n0\n49\n-3.175\n74\n0"], 55 | self::PHANTOM => ['Phantom ______ __ __ ______ __ __ ______', "73\n6\n40\n12.7\n49\n6.35\n74\n0\n49\n-1.27\n74\n0\n49\n1.27\n74\n0\n49\n-1.27\n74\n0\n49\n1.27\n74\n0\n49\n-1.27\n74\n0"], 56 | 57 | // TODO wrong pattern 58 | self::PHANTOMX2 => ['Phantom (2x)____________ ____ ____ ____________', "73\n6\n40\n12.7\n49\n6.35\n74\n0\n49\n-1.27\n74\n0\n49\n1.27\n74\n0\n49\n-1.27\n74\n0\n49\n1.27\n74\n0\n49\n-1.27\n74\n0"], 59 | // TODO wrong pattern 60 | self::PHANTOM2 => ['Phantom (.5x) ___ _ _ ___ _ _ ___ _ _ ___ _ _ ___', "73\n6\n40\n12.7\n49\n6.35\n74\n0\n49\n-1.27\n74\n0\n49\n1.27\n74\n0\n49\n-1.27\n74\n0\n49\n1.27\n74\n0\n49\n-1.27\n74\n0"], 61 | 62 | self::DASHDOT => ['Dash dot __ . __ . __ . __ . __ . __ . __ . __', "73\n4\n40\n25.4\n49\n12.7\n74\n0\n49\n-6.35\n74\n0\n49\n0\n74\n0\n49\n-6.35\n74\n0"], 63 | self::DASHDOTX2 => ['Dash dot (2x) ____ . ____ . ____ . ___', "73\n4\n40\n50.8\n49\n25.4\n74\n0\n49\n-12.7\n74\n0\n49\n0\n74\n0\n49\n-12.7\n74\n0"], 64 | self::DASHDOT2 => ['Dash dot (.5x) _._._._._._._._._._._._._._._.', "73\n4\n40\n12.7\n49\n6.35\n74\n0\n49\n-3.175\n74\n0\n49\n0\n74\n0\n49\n-3.175\n74\n0"], 65 | self::DOT => ['Dot . . . . . . . . . . . . . . . . . . . . . .', "73\n2\n40\n6.35\n49\n0\n74\n0\n49\n-6.35\n74\n0"], 66 | self::DOTX2 => ['Dot (2x) . . . . . . . . . . . . .', "73\n2\n40\n12.7\n49\n0\n74\n0\n49\n-12.7\n74\n0"], 67 | self::DOT2 => ['Dot (.5x) .....................................', "73\n2\n40\n3.175\n49\n0\n74\n0\n49\n-3.175\n74\n0"], 68 | self::DIVIDE => ['Divide ____ . . ____ . . ____ . . ____ . . ____', "73\n6\n40\n31.75\n49\n12.7\n74\n0\n49\n-6.35\n74\n0\n49\n0\n74\n0\n49\n-6.35\n74\n0\n49\n0\n74\n0\n49\n-6.35\n74\n0"], 69 | self::DIVIDEX2 => ['Divide (2x) ________ . . ________ . . _', "73\n6\n40\n63.5\n49\n25.4\n74\n0\n49\n-12.7\n74\n0\n49\n0\n74\n0\n49\n-12.7\n74\n0\n49\n0\n74\n0\n49\n-12.7\n74\n0"], 70 | self::DIVIDE2 => ['Divide (.5x) __..__..__..__..__..__..__..__.._', "73\n6\n40\n15.875\n49\n6.35\n74\n0\n49\n-3.175\n74\n0\n49\n0\n74\n0\n49\n-3.175\n74\n0\n49\n0\n74\n0\n49\n-3.175\n74\n0"], 71 | ]; 72 | 73 | } 74 | -------------------------------------------------------------------------------- /Color.php: -------------------------------------------------------------------------------- 1 | http://speleoalex.altervista.org 5 | * @copyright Copyright (c) 2013 6 | * @license http://opensource.org/licenses/gpl-license.php GNU General Public License 7 | * 8 | * Upgrade script to "Creator" 9 | * @author Konstantin Kutsevalov 10 | * @since 2015/08 11 | * 12 | * @see http://www.autodesk.com/techpubs/autocad/acad2000/dxf/ 13 | */ 14 | 15 | namespace adamasantares\dxf; 16 | 17 | 18 | /** 19 | * Class Color 20 | * @package adamasantares\dxf 21 | */ 22 | class Color { 23 | 24 | const RED = 1; 25 | 26 | const YELLOW = 2; 27 | 28 | const GREEN = 3; 29 | 30 | const CYAN = 4; 31 | 32 | const BLUE = 5; 33 | 34 | const MAGENTA = 6; 35 | 36 | const WHITE = 7; 37 | 38 | const GRAY = 8; 39 | 40 | const LIGHT_GRAY = 9; 41 | 42 | const BLACK = 250; 43 | 44 | 45 | /** 46 | * All ACI colors 47 | * @var array 48 | * @see ./this_project/DXF Colortable.ods 49 | */ 50 | private static $all = [ 51 | // DXF Color Number => [Red, Green, Blue] 52 | 1 => [255, 0, 0], 2 => [255, 255, 0], 3 => [0, 255, 0], 4 => [0, 255, 255], 5 => [0, 0, 255], 53 | 6 => [255, 0, 255], 7 => [255, 255, 255], 8 => [128, 128, 128], 9 => [192, 192, 192], 10 => [255, 0, 0], 54 | 11 => [255, 127, 127], 12 => [165, 0, 0], 13 => [165, 82, 82], 14 => [127, 0, 0], 15 => [127, 63, 63], 55 | 16 => [76, 0, 0], 17 => [76, 38, 38], 18 => [38, 0, 0], 19 => [38, 19, 19], 20 => [255, 63, 0], 56 | 21 => [255, 159, 127], 22 => [165, 41, 0], 23 => [165, 103, 82], 24 => [127, 31, 0], 25 => [127, 79, 63], 57 | 26 => [76, 19, 0], 27 => [76, 47, 38], 28 => [38, 9, 0], 29 => [38, 23, 19], 30 => [255, 127, 0], 58 | 31 => [255, 191, 127], 32 => [165, 82, 0], 33 => [165, 124, 82], 34 => [127, 63, 0], 35 => [127, 95, 63], 59 | 36 => [76, 38, 0], 37 => [76, 57, 38], 38 => [38, 19, 0], 39 => [38, 28, 19], 40 => [255, 191, 0], 60 | 41 => [255, 223, 127], 42 => [165, 124, 0], 43 => [165, 145, 82], 44 => [127, 95, 0], 45 => [127, 111, 63], 61 | 46 => [76, 57, 0], 47 => [76, 66, 38], 48 => [38, 28, 0], 49 => [38, 33, 19], 50 => [255, 255, 0], 62 | 51 => [255, 255, 127], 52 => [165, 165, 0], 53 => [165, 165, 82], 54 => [127, 127, 0], 55 => [127, 127, 63], 63 | 56 => [76, 76, 0], 57 => [76, 76, 38], 58 => [38, 38, 0], 59 => [38, 38, 19], 60 => [191, 255, 0], 64 | 61 => [223, 255, 127], 62 => [124, 165, 0], 63 => [145, 165, 82], 64 => [95, 127, 0], 65 => [111, 127, 63], 65 | 66 => [57, 76, 0], 67 => [66, 76, 38], 68 => [28, 38, 0], 69 => [33, 38, 19], 70 => [127, 255, 0], 66 | 71 => [191, 255, 127], 72 => [82, 165, 0], 73 => [124, 165, 82], 74 => [63, 127, 0], 75 => [95, 127, 63], 67 | 76 => [38, 76, 0], 77 => [57, 76, 38], 78 => [19, 38, 0], 79 => [28, 38, 19], 80 => [63, 255, 0], 68 | 81 => [159, 255, 127], 82 => [41, 165, 0], 83 => [103, 165, 82], 84 => [31, 127, 0], 85 => [79, 127, 63], 69 | 86 => [19, 76, 0], 87 => [47, 76, 38], 88 => [9, 38, 0], 89 => [23, 38, 19], 90 => [0, 255, 0], 70 | 91 => [127, 255, 127], 92 => [0, 165, 0], 93 => [82, 165, 82], 94 => [0, 127, 0], 95 => [63, 127, 63], 71 | 96 => [0, 76, 0], 97 => [38, 76, 38], 98 => [0, 38, 0], 99 => [19, 38, 19], 100 => [0, 255, 63], 72 | 101 => [127, 255, 159], 102 => [0, 165, 41], 103 => [82, 165, 103], 104 => [0, 127, 31], 105 => [63, 127, 79], 73 | 106 => [0, 76, 19], 107 => [38, 76, 47], 108 => [0, 38, 9], 109 => [19, 38, 23], 110 => [0, 255, 127], 74 | 111 => [127, 255, 191], 112 => [0, 165, 82], 113 => [82, 165, 124], 114 => [0, 127, 63], 115 => [63, 127, 95], 75 | 116 => [0, 76, 38], 117 => [38, 76, 57], 118 => [0, 38, 19], 119 => [19, 38, 28], 120 => [0, 255, 191], 76 | 121 => [127, 255, 223], 122 => [0, 165, 124], 123 => [82, 165, 145], 124 => [0, 127, 95], 125 => [63, 127, 111], 77 | 126 => [0, 76, 57], 127 => [38, 76, 66], 128 => [0, 38, 28], 129 => [19, 38, 33], 130 => [0, 255, 255], 78 | 131 => [127, 255, 255], 132 => [0, 165, 165], 133 => [82, 165, 165], 134 => [0, 127, 127], 135 => [63, 127, 127], 79 | 136 => [0, 76, 76], 137 => [38, 76, 76], 138 => [0, 38, 38], 139 => [19, 38, 38], 140 => [0, 191, 255], 80 | 141 => [127, 223, 255], 142 => [0, 124, 165], 143 => [82, 145, 165], 144 => [0, 95, 127], 145 => [63, 111, 127], 81 | 146 => [0, 57, 76], 147 => [38, 66, 76], 148 => [0, 28, 38], 149 => [19, 33, 38], 150 => [0, 127, 255], 82 | 151 => [127, 191, 255], 152 => [0, 82, 165], 153 => [82, 124, 165], 154 => [0, 63, 127], 155 => [63, 95, 127], 83 | 156 => [0, 38, 76], 157 => [38, 57, 76], 158 => [0, 19, 38], 159 => [19, 28, 38], 160 => [0, 63, 255], 84 | 161 => [127, 159, 255], 162 => [0, 41, 165], 163 => [82, 103, 165], 164 => [0, 31, 127], 165 => [63, 79, 127], 85 | 166 => [0, 19, 76], 167 => [38, 47, 76], 168 => [0, 9, 38], 169 => [19, 23, 38], 170 => [0, 0, 255], 86 | 171 => [127, 127, 255], 172 => [0, 0, 165], 173 => [82, 82, 165], 174 => [0, 0, 127], 175 => [63, 63, 127], 87 | 176 => [0, 0, 76], 177 => [38, 38, 76], 178 => [0, 0, 38], 179 => [19, 19, 38], 180 => [63, 0, 255], 88 | 181 => [159, 127, 255], 182 => [41, 0, 165], 183 => [103, 82, 165], 184 => [31, 0, 127], 185 => [79, 63, 127], 89 | 186 => [19, 0, 76], 187 => [47, 38, 76], 188 => [9, 0, 38], 189 => [23, 19, 38], 190 => [127, 0, 255], 90 | 191 => [191, 127, 255], 192 => [82, 0, 165], 193 => [124, 82, 165], 194 => [63, 0, 127], 195 => [95, 63, 127], 91 | 196 => [38, 0, 76], 197 => [57, 38, 76], 198 => [19, 0, 38], 199 => [28, 19, 38], 200 => [191, 0, 255], 92 | 201 => [223, 127, 255], 202 => [124, 0, 165], 203 => [145, 82, 165], 204 => [95, 0, 127], 205 => [111, 63, 127], 93 | 206 => [57, 0, 76], 207 => [66, 38, 76], 208 => [28, 0, 38], 209 => [33, 19, 38], 210 => [255, 0, 255], 94 | 211 => [255, 127, 255], 212 => [165, 0, 165], 213 => [165, 82, 165], 214 => [127, 0, 127], 215 => [127, 63, 127], 95 | 216 => [76, 0, 76], 217 => [76, 38, 76], 218 => [38, 0, 38], 219 => [38, 19, 38], 220 => [255, 0, 191], 96 | 221 => [255, 127, 223], 222 => [165, 0, 124], 223 => [165, 82, 145], 224 => [127, 0, 95], 225 => [127, 63, 111], 97 | 226 => [76, 0, 57], 227 => [76, 38, 66], 228 => [38, 0, 28], 229 => [38, 19, 33], 230 => [255, 0, 127], 98 | 231 => [255, 127, 191], 232 => [165, 0, 82], 233 => [165, 82, 124], 234 => [127, 0, 63],235 => [127, 63, 95], 99 | 236 => [76, 0, 38], 237 => [76, 38, 57], 238 => [38, 0, 19], 239 => [38, 19, 28], 240 => [255, 0, 63], 100 | 241 => [255, 127, 159], 242 => [165, 0, 41], 243 => [165, 82, 103], 244 => [127, 0, 31], 245 => [127, 63, 79], 101 | 246 => [76, 0, 19], 247 => [76, 38, 47], 248 => [38, 0, 9], 249 => [38, 19, 23], 250 => [84, 84, 84], 102 | 251 => [118, 118, 118], 252 => [160, 160, 160], 253 => [192, 192, 192], 254 => [224, 224, 224], 255 => [0, 0, 0] 103 | ]; 104 | 105 | 106 | /** 107 | * Convert RGB color to DXF color code 108 | * @param int $red 109 | * @param int $green 110 | * @param int $blue 111 | * @return int 112 | * @see http://stackoverflow.com/questions/4485229/rgb-to-closest-predefined-color 113 | */ 114 | public static function rgb($red, $green, $blue) 115 | { 116 | $best = 1000; 117 | $match = 0; 118 | foreach (self::$all as $key => $color) { 119 | // sqrt(((r - r1) * .299)^2 + ((g - g1) * .587)^2 + ((b - b1) * .114)^2) 120 | $r = pow((($red - $color[0]) * 0.299), 2); 121 | $g = pow(($green - $color[1]) * 0.587, 2); 122 | $b = pow(($blue - $color[2]) * 0.114, 2); 123 | $c = sqrt($r + $g + $b); 124 | if ($c < $best) { 125 | $best = $c; 126 | $match = $key; 127 | } 128 | } 129 | return $match; 130 | } 131 | 132 | } 133 | -------------------------------------------------------------------------------- /template.dxf: -------------------------------------------------------------------------------- 1 | 0 2 | SECTION 3 | 2 4 | HEADER 5 | 9 6 | $ACADVER 7 | 1 8 | AC1021 9 | 9 10 | $DWGCODEPAGE 11 | 3 12 | ANSI_1252 13 | 9 14 | $INSBASE 15 | 10 16 | 0 17 | 20 18 | 0 19 | 30 20 | 0 21 | 9 22 | $EXTMIN 23 | 10 24 | -35 25 | 20 26 | -30 27 | 30 28 | 0 29 | 9 30 | $EXTMAX 31 | 10 32 | 35 33 | 20 34 | 30 35 | 30 36 | 0 37 | 9 38 | $LIMMIN 39 | 10 40 | 0 41 | 20 42 | 0 43 | 9 44 | $LIMMAX 45 | 10 46 | 420 47 | 20 48 | 297 49 | 9 50 | $ORTHOMODE 51 | 70 52 | 0 53 | 9 54 | $REGENMODE 55 | 70 56 | 1 57 | 9 58 | $FILLMODE 59 | 70 60 | 1 61 | 9 62 | $QTEXTMODE 63 | 70 64 | 0 65 | 9 66 | $MIRRTEXT 67 | 70 68 | 1 69 | 9 70 | $LTSCALE 71 | 40 72 | 1 73 | 9 74 | $ATTMODE 75 | 70 76 | 1 77 | 9 78 | $TEXTSIZE 79 | 40 80 | 3.5 81 | 9 82 | $TRACEWID 83 | 40 84 | 1 85 | 9 86 | $TEXTSTYLE 87 | 7 88 | Standard 89 | 9 90 | $CLAYER 91 | 8 92 | red 93 | 9 94 | $CELTYPE 95 | 6 96 | ByLayer 97 | 9 98 | $CECOLOR 99 | 62 100 | 256 101 | 9 102 | $CELTSCALE 103 | 40 104 | 1 105 | 9 106 | $DISPSILH 107 | 70 108 | 0 109 | 9 110 | $DIMSCALE 111 | 40 112 | 1 113 | 9 114 | $DIMASZ 115 | 40 116 | 3.302 117 | 9 118 | $DIMEXO 119 | 40 120 | 1 121 | 9 122 | $DIMDLI 123 | 40 124 | 3.75 125 | 9 126 | $DIMRND 127 | 40 128 | 0 129 | 9 130 | $DIMDLE 131 | 40 132 | 0 133 | 9 134 | $DIMEXE 135 | 40 136 | 1 137 | 9 138 | $DIMTP 139 | 40 140 | 0 141 | 9 142 | $DIMTM 143 | 40 144 | 0 145 | 9 146 | $DIMTXT 147 | 40 148 | 3.5 149 | 9 150 | $DIMCEN 151 | 40 152 | 2.5 153 | 9 154 | $DIMTSZ 155 | 40 156 | 0 157 | 9 158 | $DIMTOL 159 | 70 160 | 0 161 | 9 162 | $DIMLIM 163 | 70 164 | 0 165 | 9 166 | $DIMTIH 167 | 70 168 | 1 169 | 9 170 | $DIMTOH 171 | 70 172 | 1 173 | 9 174 | $DIMSE1 175 | 70 176 | 0 177 | 9 178 | $DIMSE2 179 | 70 180 | 0 181 | 9 182 | $DIMTAD 183 | 70 184 | 1 185 | 9 186 | $DIMZIN 187 | 70 188 | 0 189 | 9 190 | $DIMBLK 191 | 1 192 | 193 | 9 194 | $DIMASO 195 | 70 196 | 1 197 | 9 198 | $DIMSHO 199 | 70 200 | 1 201 | 9 202 | $DIMPOST 203 | 1 204 | 205 | 9 206 | $DIMAPOST 207 | 1 208 | 209 | 9 210 | $DIMALT 211 | 70 212 | 0 213 | 9 214 | $DIMALTD 215 | 70 216 | 3 217 | 9 218 | $DIMALTF 219 | 40 220 | 0.0393700787 221 | 9 222 | $DIMLFAC 223 | 40 224 | 1 225 | 9 226 | $DIMTOFL 227 | 70 228 | 1 229 | 9 230 | $DIMTVP 231 | 40 232 | 0 233 | 9 234 | $DIMTIX 235 | 70 236 | 0 237 | 9 238 | $DIMSOXD 239 | 70 240 | 0 241 | 9 242 | $DIMSAH 243 | 70 244 | 0 245 | 9 246 | $DIMBLK1 247 | 1 248 | 249 | 9 250 | $DIMBLK2 251 | 1 252 | 253 | 9 254 | $DIMSTYLE 255 | 2 256 | ISO-25 257 | 9 258 | $DIMCLRD 259 | 70 260 | 0 261 | 9 262 | $DIMCLRE 263 | 70 264 | 0 265 | 9 266 | $DIMCLRT 267 | 70 268 | 0 269 | 9 270 | $DIMTFAC 271 | 40 272 | 1 273 | 9 274 | $DIMGAP 275 | 40 276 | 1.524 277 | 9 278 | $DIMJUST 279 | 70 280 | 0 281 | 9 282 | $DIMSD1 283 | 70 284 | 0 285 | 9 286 | $DIMSD2 287 | 70 288 | 0 289 | 9 290 | $DIMTOLJ 291 | 70 292 | 0 293 | 9 294 | $DIMTZIN 295 | 70 296 | 0 297 | 9 298 | $DIMALTZ 299 | 70 300 | 0 301 | 9 302 | $DIMALTTZ 303 | 70 304 | 0 305 | 9 306 | $DIMUPT 307 | 70 308 | 0 309 | 9 310 | $DIMDEC 311 | 70 312 | 2 313 | 9 314 | $DIMTDEC 315 | 70 316 | 2 317 | 9 318 | $DIMALTU 319 | 70 320 | 2 321 | 9 322 | $DIMALTTD 323 | 70 324 | 3 325 | 9 326 | $DIMTXSTY 327 | 7 328 | Standard 329 | 9 330 | $DIMAUNIT 331 | 70 332 | 0 333 | 9 334 | $DIMADEC 335 | 70 336 | 0 337 | 9 338 | $DIMALTRND 339 | 40 340 | 0 341 | 9 342 | $DIMAZIN 343 | 70 344 | 0 345 | 9 346 | $DIMDSEP 347 | 70 348 | 44 349 | 9 350 | $DIMATFIT 351 | 70 352 | 3 353 | 9 354 | $DIMFRAC 355 | 70 356 | 0 357 | 9 358 | $DIMLDRBLK 359 | 1 360 | 361 | 9 362 | $DIMLUNIT 363 | 70 364 | 2 365 | 9 366 | $DIMLWD 367 | 70 368 | -2 369 | 9 370 | $DIMLWE 371 | 70 372 | -2 373 | 9 374 | $DIMTMOVE 375 | 70 376 | 0 377 | 9 378 | $DIMFXL 379 | 40 380 | 1 381 | 9 382 | $DIMFXLON 383 | 70 384 | 0 385 | 9 386 | $DIMJOGANG 387 | 40 388 | 0.7854 389 | 9 390 | $DIMTFILL 391 | 70 392 | 0 393 | 9 394 | $DIMTFILLCLR 395 | 70 396 | 0 397 | 9 398 | $DIMARCSYM 399 | 70 400 | 0 401 | 9 402 | $DIMLTYPE 403 | 6 404 | 405 | 9 406 | $DIMLTEX1 407 | 6 408 | 409 | 9 410 | $DIMLTEX2 411 | 6 412 | 413 | 9 414 | $LUNITS 415 | 70 416 | 2 417 | 9 418 | $LUPREC 419 | 70 420 | 2 421 | 9 422 | $SKETCHINC 423 | 40 424 | 1 425 | 9 426 | $FILLETRAD 427 | 40 428 | 10 429 | 9 430 | $AUNITS 431 | 70 432 | 0 433 | 9 434 | $AUPREC 435 | 70 436 | 2 437 | 9 438 | $MENU 439 | 1 440 | . 441 | 9 442 | $ELEVATION 443 | 40 444 | 0 445 | 9 446 | $PELEVATION 447 | 40 448 | 0 449 | 9 450 | $THICKNESS 451 | 40 452 | 0 453 | 9 454 | $LIMCHECK 455 | 70 456 | 0 457 | 9 458 | $CHAMFERA 459 | 40 460 | 0 461 | 9 462 | $CHAMFERB 463 | 40 464 | 0 465 | 9 466 | $CHAMFERC 467 | 40 468 | 0 469 | 9 470 | $CHAMFERD 471 | 40 472 | 0 473 | 9 474 | $SKPOLY 475 | 70 476 | 0 477 | 9 478 | $USRTIMER 479 | 70 480 | 1 481 | 9 482 | $ANGBASE 483 | 50 484 | 0 485 | 9 486 | $ANGDIR 487 | 70 488 | 0 489 | 9 490 | $PDMODE 491 | 70 492 | 0 493 | 9 494 | $PDSIZE 495 | 40 496 | -1 497 | 9 498 | $PLINEWID 499 | 40 500 | 0 501 | 9 502 | $SPLFRAME 503 | 70 504 | 0 505 | 9 506 | $SPLINETYPE 507 | 70 508 | 6 509 | 9 510 | $SPLINESEGS 511 | 70 512 | 8 513 | 9 514 | $HANDSEED 515 | 5 516 | 20000 517 | 9 518 | $SURFTAB1 519 | 70 520 | 6 521 | 9 522 | $SURFTAB2 523 | 70 524 | 6 525 | 9 526 | $SURFTYPE 527 | 70 528 | 6 529 | 9 530 | $SURFU 531 | 70 532 | 6 533 | 9 534 | $SURFV 535 | 70 536 | 6 537 | 9 538 | $UCSBASE 539 | 2 540 | 541 | 9 542 | $UCSNAME 543 | 2 544 | 545 | 9 546 | $UCSORG 547 | 10 548 | 0 549 | 20 550 | 0 551 | 30 552 | 0 553 | 9 554 | $UCSXDIR 555 | 10 556 | 1 557 | 20 558 | 0 559 | 30 560 | 0 561 | 9 562 | $UCSYDIR 563 | 10 564 | 0 565 | 20 566 | 1 567 | 30 568 | 0 569 | 9 570 | $UCSORTHOREF 571 | 2 572 | 573 | 9 574 | $UCSORTHOVIEW 575 | 70 576 | 0 577 | 9 578 | $UCSORGTOP 579 | 10 580 | 0 581 | 20 582 | 0 583 | 30 584 | 0 585 | 9 586 | $UCSORGBOTTOM 587 | 10 588 | 0 589 | 20 590 | 0 591 | 30 592 | 0 593 | 9 594 | $UCSORGLEFT 595 | 10 596 | 0 597 | 20 598 | 0 599 | 30 600 | 0 601 | 9 602 | $UCSORGRIGHT 603 | 10 604 | 0 605 | 20 606 | 0 607 | 30 608 | 0 609 | 9 610 | $UCSORGFRONT 611 | 10 612 | 0 613 | 20 614 | 0 615 | 30 616 | 0 617 | 9 618 | $UCSORGBACK 619 | 10 620 | 0 621 | 20 622 | 0 623 | 30 624 | 0 625 | 9 626 | $PUCSBASE 627 | 2 628 | 629 | 9 630 | $PUCSNAME 631 | 2 632 | 633 | 9 634 | $PUCSORG 635 | 10 636 | 0 637 | 20 638 | 0 639 | 30 640 | 0 641 | 9 642 | $PUCSXDIR 643 | 10 644 | 1 645 | 20 646 | 0 647 | 30 648 | 0 649 | 9 650 | $PUCSYDIR 651 | 10 652 | 0 653 | 20 654 | 1 655 | 30 656 | 0 657 | 9 658 | $PUCSORTHOREF 659 | 2 660 | 661 | 9 662 | $PUCSORTHOVIEW 663 | 70 664 | 0 665 | 9 666 | $PUCSORGTOP 667 | 10 668 | 0 669 | 20 670 | 0 671 | 30 672 | 0 673 | 9 674 | $PUCSORGBOTTOM 675 | 10 676 | 0 677 | 20 678 | 0 679 | 30 680 | 0 681 | 9 682 | $PUCSORGLEFT 683 | 10 684 | 0 685 | 20 686 | 0 687 | 30 688 | 0 689 | 9 690 | $PUCSORGRIGHT 691 | 10 692 | 0 693 | 20 694 | 0 695 | 30 696 | 0 697 | 9 698 | $PUCSORGFRONT 699 | 10 700 | 0 701 | 20 702 | 0 703 | 30 704 | 0 705 | 9 706 | $PUCSORGBACK 707 | 10 708 | 0 709 | 20 710 | 0 711 | 30 712 | 0 713 | 9 714 | $USERI1 715 | 70 716 | 0 717 | 9 718 | $USERI2 719 | 70 720 | 0 721 | 9 722 | $USERI3 723 | 70 724 | 0 725 | 9 726 | $USERI4 727 | 70 728 | 0 729 | 9 730 | $USERI5 731 | 70 732 | 0 733 | 9 734 | $USERR1 735 | 40 736 | 0 737 | 9 738 | $USERR2 739 | 40 740 | 0 741 | 9 742 | $USERR3 743 | 40 744 | 0 745 | 9 746 | $USERR4 747 | 40 748 | 0 749 | 9 750 | $USERR5 751 | 40 752 | 0 753 | 9 754 | $WORLDVIEW 755 | 70 756 | 1 757 | 9 758 | $SHADEDGE 759 | 70 760 | 3 761 | 9 762 | $SHADEDIF 763 | 70 764 | 70 765 | 9 766 | $TILEMODE 767 | 70 768 | 1 769 | 9 770 | $MAXACTVP 771 | 70 772 | 64 773 | 9 774 | $PINSBASE 775 | 10 776 | 0 777 | 20 778 | 0 779 | 30 780 | 0 781 | 9 782 | $PLIMCHECK 783 | 70 784 | 0 785 | 9 786 | $PEXTMIN 787 | 10 788 | 1e+20 789 | 20 790 | 1e+20 791 | 30 792 | 1e+20 793 | 9 794 | $PEXTMAX 795 | 10 796 | -1e+20 797 | 20 798 | -1e+20 799 | 30 800 | -1e+20 801 | 9 802 | $GRIDMODE 803 | 70 804 | 0 805 | 9 806 | $SNAPSTYLE 807 | 70 808 | 0 809 | 9 810 | $PLIMMIN 811 | 10 812 | 0 813 | 20 814 | 0 815 | 9 816 | $PLIMMAX 817 | 10 818 | 420 819 | 20 820 | 297 821 | 9 822 | $UNITMODE 823 | 70 824 | 0 825 | 9 826 | $VISRETAIN 827 | 70 828 | 1 829 | 9 830 | $PLINEGEN 831 | 70 832 | 0 833 | 9 834 | $PSLTSCALE 835 | 70 836 | 1 837 | 9 838 | $TREEDEPTH 839 | 70 840 | 3020 841 | 9 842 | $CMLSTYLE 843 | 2 844 | Standard 845 | 9 846 | $CMLJUST 847 | 70 848 | 0 849 | 9 850 | $CMLSCALE 851 | 40 852 | 20 853 | 9 854 | $PROXYGRAPHICS 855 | 70 856 | 1 857 | 9 858 | $MEASUREMENT 859 | 70 860 | 1 861 | 9 862 | $CELWEIGHT 863 | 370 864 | -1 865 | 9 866 | $ENDCAPS 867 | 280 868 | 0 869 | 9 870 | $JOINSTYLE 871 | 280 872 | 0 873 | 9 874 | $LWDISPLAY 875 | 290 876 | 1 877 | 9 878 | $INSUNITS 879 | 70 880 | {UNITS} 881 | 9 882 | $HYPERLINKBASE 883 | 1 884 | 885 | 9 886 | $STYLESHEET 887 | 1 888 | 889 | 9 890 | $XEDIT 891 | 290 892 | 1 893 | 9 894 | $CEPSNTYPE 895 | 380 896 | 0 897 | 9 898 | $PSTYLEMODE 899 | 290 900 | 1 901 | 9 902 | $EXTNAMES 903 | 290 904 | 1 905 | 9 906 | $PSVPSCALE 907 | 40 908 | 0 909 | 9 910 | $OLESTARTUP 911 | 290 912 | 0 913 | 9 914 | $SORTENTS 915 | 280 916 | 127 917 | 9 918 | $INDEXCTL 919 | 280 920 | 0 921 | 9 922 | $HIDETEXT 923 | 280 924 | 1 925 | 9 926 | $XCLIPFRAME 927 | 290 928 | 0 929 | 9 930 | $HALOGAP 931 | 280 932 | 0 933 | 9 934 | $OBSCOLOR 935 | 70 936 | 257 937 | 9 938 | $OBSLTYPE 939 | 280 940 | 0 941 | 9 942 | $INTERSECTIONDISPLAY 943 | 280 944 | 0 945 | 9 946 | $INTERSECTIONCOLOR 947 | 70 948 | 257 949 | 9 950 | $DIMASSOC 951 | 280 952 | 1 953 | 9 954 | $PROJECTNAME 955 | 1 956 | 957 | 9 958 | $CAMERADISPLAY 959 | 290 960 | 0 961 | 9 962 | $LENSLENGTH 963 | 40 964 | 50 965 | 9 966 | $CAMERAHEIGHT 967 | 40 968 | 0 969 | 9 970 | $STEPSPERSEC 971 | 40 972 | 2 973 | 9 974 | $STEPSIZE 975 | 40 976 | 50 977 | 9 978 | $3DDWFPREC 979 | 40 980 | 2 981 | 9 982 | $PSOLWIDTH 983 | 40 984 | 5 985 | 9 986 | $PSOLHEIGHT 987 | 40 988 | 80 989 | 9 990 | $LOFTANG1 991 | 40 992 | 1.570796326794897 993 | 9 994 | $LOFTANG2 995 | 40 996 | 1.570796326794897 997 | 9 998 | $LOFTMAG1 999 | 40 1000 | 0 1001 | 9 1002 | $LOFTMAG2 1003 | 40 1004 | 0 1005 | 9 1006 | $LOFTPARAM 1007 | 70 1008 | 7 1009 | 9 1010 | $LOFTNORMALS 1011 | 280 1012 | 1 1013 | 9 1014 | $LATITUDE 1015 | 40 1016 | 1 1017 | 9 1018 | $LONGITUDE 1019 | 40 1020 | 1 1021 | 9 1022 | $NORTHDIRECTION 1023 | 40 1024 | 0 1025 | 9 1026 | $TIMEZONE 1027 | 70 1028 | -8000 1029 | 9 1030 | $LIGHTGLYPHDISPLAY 1031 | 280 1032 | 1 1033 | 9 1034 | $TILEMODELIGHTSYNCH 1035 | 280 1036 | 1 1037 | 9 1038 | $SOLIDHIST 1039 | 280 1040 | 1 1041 | 9 1042 | $SHOWHIST 1043 | 280 1044 | 1 1045 | 9 1046 | $DWFFRAME 1047 | 280 1048 | 2 1049 | 9 1050 | $DGNFRAME 1051 | 280 1052 | 0 1053 | 9 1054 | $REALWORLDSCALE 1055 | 290 1056 | 1 1057 | 9 1058 | $INTERFERECOLOR 1059 | 62 1060 | 1 1061 | 9 1062 | $CSHADOW 1063 | 280 1064 | 0 1065 | 9 1066 | $SHADOWPLANELOCATION 1067 | 40 1068 | 0 1069 | 0 1070 | ENDSEC 1071 | 0 1072 | SECTION 1073 | 2 1074 | CLASSES 1075 | 0{CLASSES_FOR_IMAGES} 1076 | ENDSEC 1077 | 0 1078 | SECTION 1079 | 2 1080 | TABLES 1081 | 0 1082 | TABLE 1083 | 2 1084 | VPORT 1085 | 5 1086 | 8 1087 | 330 1088 | 0 1089 | 100 1090 | AcDbSymbolTable 1091 | 70 1092 | 1 1093 | 0 1094 | VPORT 1095 | 5 1096 | 31 1097 | 330 1098 | 2 1099 | 100 1100 | AcDbSymbolTableRecord 1101 | 100 1102 | AcDbViewportTableRecord 1103 | 2 1104 | *ACTIVE 1105 | 70 1106 | 0 1107 | 10 1108 | 0 1109 | 20 1110 | 0 1111 | 11 1112 | 1 1113 | 21 1114 | 1 1115 | 12 1116 | 44.22616565550683 1117 | 22 1118 | 23.67269572240605 1119 | 13 1120 | 0 1121 | 23 1122 | 0 1123 | 14 1124 | 10 1125 | 24 1126 | 10 1127 | 15 1128 | 10 1129 | 25 1130 | 10 1131 | 16 1132 | 0 1133 | 26 1134 | 0 1135 | 36 1136 | 1 1137 | 17 1138 | 0 1139 | 27 1140 | 0 1141 | 37 1142 | 0 1143 | 40 1144 | 89.12073683729336 1145 | 41 1146 | 1.97625 1147 | 42 1148 | 50 1149 | 43 1150 | 0 1151 | 44 1152 | 0 1153 | 50 1154 | 0 1155 | 51 1156 | 0 1157 | 71 1158 | 0 1159 | 72 1160 | 100 1161 | 73 1162 | 1 1163 | 74 1164 | 3 1165 | 75 1166 | 0 1167 | 76 1168 | 0 1169 | 77 1170 | 0 1171 | 78 1172 | 0 1173 | 281 1174 | 0 1175 | 65 1176 | 1 1177 | 110 1178 | 0 1179 | 120 1180 | 0 1181 | 130 1182 | 0 1183 | 111 1184 | 1 1185 | 121 1186 | 0 1187 | 131 1188 | 0 1189 | 112 1190 | 0 1191 | 122 1192 | 1 1193 | 132 1194 | 0 1195 | 79 1196 | 0 1197 | 146 1198 | 0 1199 | 348 1200 | 10020 1201 | 60 1202 | 7 1203 | 61 1204 | 5 1205 | 292 1206 | 1 1207 | 282 1208 | 1 1209 | 141 1210 | 0 1211 | 142 1212 | 0 1213 | 63 1214 | 250 1215 | 421 1216 | 3358443 1217 | 0 1218 | ENDTAB 1219 | 0 1220 | TABLE 1221 | 2 1222 | {LTYPES_TABLE} 1223 | ENDTAB 1224 | 0 1225 | TABLE 1226 | 2 1227 | {LAYERS_TABLE} 1228 | ENDTAB 1229 | 0 1230 | TABLE 1231 | 2 1232 | STYLE 1233 | 5 1234 | 3 1235 | 330 1236 | 0 1237 | 100 1238 | AcDbSymbolTable 1239 | 70 1240 | 3 1241 | 0 1242 | STYLE 1243 | 5 1244 | 51 1245 | 330 1246 | 2 1247 | 100 1248 | AcDbSymbolTableRecord 1249 | 100 1250 | AcDbTextStyleTableRecord 1251 | 2 1252 | Standard 1253 | 70 1254 | 0 1255 | 40 1256 | 0 1257 | 41 1258 | 1 1259 | 50 1260 | 0 1261 | 71 1262 | 0 1263 | 42 1264 | 1 1265 | 3 1266 | txt 1267 | 4 1268 | 1269 | 0 1270 | ENDTAB 1271 | 0 1272 | TABLE 1273 | 2 1274 | VIEW 1275 | 5 1276 | 6 1277 | 330 1278 | 0 1279 | 100 1280 | AcDbSymbolTable 1281 | 70 1282 | 0 1283 | 0 1284 | ENDTAB 1285 | 0 1286 | TABLE 1287 | 2 1288 | UCS 1289 | 5 1290 | 7 1291 | 330 1292 | 0 1293 | 100 1294 | AcDbSymbolTable 1295 | 70 1296 | 0 1297 | 0 1298 | ENDTAB 1299 | 0 1300 | TABLE 1301 | 2 1302 | APPID 1303 | 5 1304 | 9 1305 | 330 1306 | 0 1307 | 100 1308 | AcDbSymbolTable 1309 | 70 1310 | 1 1311 | 0 1312 | APPID 1313 | 5 1314 | 12 1315 | 330 1316 | 9 1317 | 100 1318 | AcDbSymbolTableRecord 1319 | 100 1320 | AcDbRegAppTableRecord 1321 | 2 1322 | ACAD 1323 | 70 1324 | 0 1325 | 0 1326 | APPID 1327 | 5 1328 | 52 1329 | 330 1330 | 9 1331 | 100 1332 | AcDbSymbolTableRecord 1333 | 100 1334 | AcDbRegAppTableRecord 1335 | 2 1336 | LibreCad 1337 | 70 1338 | 0 1339 | 0 1340 | ENDTAB 1341 | 0 1342 | TABLE 1343 | 2 1344 | DIMSTYLE 1345 | 5 1346 | A 1347 | 330 1348 | 0 1349 | 100 1350 | AcDbSymbolTable 1351 | 70 1352 | 1 1353 | 100 1354 | AcDbDimStyleTable 1355 | 71 1356 | 1 1357 | 0 1358 | DIMSTYLE 1359 | 105 1360 | 53 1361 | 330 1362 | A 1363 | 100 1364 | AcDbSymbolTableRecord 1365 | 100 1366 | AcDbDimStyleTableRecord 1367 | 2 1368 | Standard 1369 | 70 1370 | 0 1371 | 40 1372 | 1 1373 | 41 1374 | 3.302 1375 | 42 1376 | 1 1377 | 43 1378 | 0.38 1379 | 44 1380 | 1 1381 | 45 1382 | 0 1383 | 46 1384 | 0 1385 | 47 1386 | 0 1387 | 48 1388 | 0 1389 | 49 1390 | 1 1391 | 140 1392 | 3.5 1393 | 141 1394 | 0.09 1395 | 142 1396 | 0 1397 | 143 1398 | 25.4 1399 | 144 1400 | 1 1401 | 145 1402 | 0 1403 | 146 1404 | 1 1405 | 147 1406 | 1.524 1407 | 148 1408 | 0 1409 | 71 1410 | 0 1411 | 72 1412 | 0 1413 | 73 1414 | 1 1415 | 74 1416 | 1 1417 | 75 1418 | 0 1419 | 76 1420 | 0 1421 | 77 1422 | 0 1423 | 78 1424 | 0 1425 | 79 1426 | 0 1427 | 170 1428 | 0 1429 | 171 1430 | 2 1431 | 172 1432 | 0 1433 | 173 1434 | 0 1435 | 174 1436 | 0 1437 | 175 1438 | 0 1439 | 176 1440 | 0 1441 | 177 1442 | 0 1443 | 178 1444 | 0 1445 | 179 1446 | 0 1447 | 271 1448 | 2 1449 | 272 1450 | 4 1451 | 273 1452 | 2 1453 | 274 1454 | 2 1455 | 275 1456 | 0 1457 | 276 1458 | 0 1459 | 277 1460 | 2 1461 | 278 1462 | 44 1463 | 279 1464 | 0 1465 | 280 1466 | 0 1467 | 281 1468 | 0 1469 | 282 1470 | 0 1471 | 283 1472 | 1 1473 | 284 1474 | 0 1475 | 285 1476 | 0 1477 | 286 1478 | 0 1479 | 288 1480 | 0 1481 | 289 1482 | 3 1483 | 340 1484 | Standard 1485 | 341 1486 | 1487 | 371 1488 | -2 1489 | 372 1490 | -2 1491 | 0 1492 | ENDTAB 1493 | 0 1494 | TABLE 1495 | 2 1496 | BLOCK_RECORD 1497 | 5 1498 | 1 1499 | 330 1500 | 0 1501 | 100 1502 | AcDbSymbolTable 1503 | 70 1504 | 2 1505 | 0 1506 | BLOCK_RECORD 1507 | 5 1508 | 1F 1509 | 330 1510 | 1 1511 | 100 1512 | AcDbSymbolTableRecord 1513 | 100 1514 | AcDbBlockTableRecord 1515 | 2 1516 | *Model_Space 1517 | 70 1518 | 0 1519 | 280 1520 | 1 1521 | 281 1522 | 0 1523 | 0 1524 | BLOCK_RECORD 1525 | 5 1526 | 1E 1527 | 330 1528 | 1 1529 | 100 1530 | AcDbSymbolTableRecord 1531 | 100 1532 | AcDbBlockTableRecord 1533 | 2 1534 | *Paper_Space 1535 | 70 1536 | 0 1537 | 280 1538 | 1 1539 | 281 1540 | 0 1541 | 0 1542 | ENDTAB 1543 | 0 1544 | ENDSEC 1545 | 0 1546 | SECTION 1547 | 2 1548 | BLOCKS 1549 | 0 1550 | BLOCK 1551 | 5 1552 | 20 1553 | 330 1554 | 1F 1555 | 100 1556 | AcDbEntity 1557 | 8 1558 | 0 1559 | 100 1560 | AcDbBlockBegin 1561 | 2 1562 | *Model_Space 1563 | 70 1564 | 0 1565 | 10 1566 | 0.0 1567 | 20 1568 | 0.0 1569 | 30 1570 | 0.0 1571 | 3 1572 | *Model_Space 1573 | 1 1574 | 1575 | 0 1576 | ENDBLK 1577 | 5 1578 | 21 1579 | 330 1580 | 1F 1581 | 100 1582 | AcDbEntity 1583 | 8 1584 | 0 1585 | 100 1586 | AcDbBlockEnd 1587 | 0 1588 | BLOCK 1589 | 5 1590 | 1C 1591 | 330 1592 | 1B 1593 | 100 1594 | AcDbEntity 1595 | 8 1596 | 0 1597 | 100 1598 | AcDbBlockBegin 1599 | 2 1600 | *Paper_Space 1601 | 70 1602 | 0 1603 | 10 1604 | 0.0 1605 | 20 1606 | 0.0 1607 | 30 1608 | 0.0 1609 | 3 1610 | *Paper_Space 1611 | 1 1612 | 1613 | 0 1614 | ENDBLK 1615 | 5 1616 | 1D 1617 | 330 1618 | 1F 1619 | 100 1620 | AcDbEntity 1621 | 8 1622 | 0 1623 | 100 1624 | AcDbBlockEnd 1625 | 0 1626 | ENDSEC 1627 | 0 1628 | SECTION 1629 | 2 1630 | ENTITIES 1631 | 0 1632 | {ENTITIES_SECTION} 1633 | ENDSEC 1634 | 0 1635 | SECTION 1636 | 2 1637 | OBJECTS 1638 | 0 1639 | DICTIONARY 1640 | 5 1641 | C 1642 | 330 1643 | 0 1644 | 100 1645 | AcDbDictionary 1646 | 281 1647 | 1 1648 | 3 1649 | ACAD_GROUP 1650 | 350 1651 | D{DICTIONARY_IMAGE_VAR}{IMAGEDEF_REACTOR}{DICTIONARY_IMAGES} 1652 | DICTIONARY 1653 | 5 1654 | D 1655 | 330 1656 | C 1657 | 100 1658 | AcDbDictionary 1659 | 281 1660 | 1 1661 | 0{IMAGEDEFS} 1662 | ENDSEC 1663 | 0 1664 | EOF 1665 | -------------------------------------------------------------------------------- /demo/demo3.dxf: -------------------------------------------------------------------------------- 1 | 0 2 | SECTION 3 | 2 4 | HEADER 5 | 9 6 | $ACADVER 7 | 1 8 | AC1021 9 | 9 10 | $DWGCODEPAGE 11 | 3 12 | ANSI_1252 13 | 9 14 | $INSBASE 15 | 10 16 | 0 17 | 20 18 | 0 19 | 30 20 | 0 21 | 9 22 | $EXTMIN 23 | 10 24 | -35 25 | 20 26 | -30 27 | 30 28 | 0 29 | 9 30 | $EXTMAX 31 | 10 32 | 35 33 | 20 34 | 30 35 | 30 36 | 0 37 | 9 38 | $LIMMIN 39 | 10 40 | 0 41 | 20 42 | 0 43 | 9 44 | $LIMMAX 45 | 10 46 | 420 47 | 20 48 | 297 49 | 9 50 | $ORTHOMODE 51 | 70 52 | 0 53 | 9 54 | $REGENMODE 55 | 70 56 | 1 57 | 9 58 | $FILLMODE 59 | 70 60 | 1 61 | 9 62 | $QTEXTMODE 63 | 70 64 | 0 65 | 9 66 | $MIRRTEXT 67 | 70 68 | 1 69 | 9 70 | $LTSCALE 71 | 40 72 | 1 73 | 9 74 | $ATTMODE 75 | 70 76 | 1 77 | 9 78 | $TEXTSIZE 79 | 40 80 | 3.5 81 | 9 82 | $TRACEWID 83 | 40 84 | 1 85 | 9 86 | $TEXTSTYLE 87 | 7 88 | Standard 89 | 9 90 | $CLAYER 91 | 8 92 | red 93 | 9 94 | $CELTYPE 95 | 6 96 | ByLayer 97 | 9 98 | $CECOLOR 99 | 62 100 | 256 101 | 9 102 | $CELTSCALE 103 | 40 104 | 1 105 | 9 106 | $DISPSILH 107 | 70 108 | 0 109 | 9 110 | $DIMSCALE 111 | 40 112 | 1 113 | 9 114 | $DIMASZ 115 | 40 116 | 3.302 117 | 9 118 | $DIMEXO 119 | 40 120 | 1 121 | 9 122 | $DIMDLI 123 | 40 124 | 3.75 125 | 9 126 | $DIMRND 127 | 40 128 | 0 129 | 9 130 | $DIMDLE 131 | 40 132 | 0 133 | 9 134 | $DIMEXE 135 | 40 136 | 1 137 | 9 138 | $DIMTP 139 | 40 140 | 0 141 | 9 142 | $DIMTM 143 | 40 144 | 0 145 | 9 146 | $DIMTXT 147 | 40 148 | 3.5 149 | 9 150 | $DIMCEN 151 | 40 152 | 2.5 153 | 9 154 | $DIMTSZ 155 | 40 156 | 0 157 | 9 158 | $DIMTOL 159 | 70 160 | 0 161 | 9 162 | $DIMLIM 163 | 70 164 | 0 165 | 9 166 | $DIMTIH 167 | 70 168 | 1 169 | 9 170 | $DIMTOH 171 | 70 172 | 1 173 | 9 174 | $DIMSE1 175 | 70 176 | 0 177 | 9 178 | $DIMSE2 179 | 70 180 | 0 181 | 9 182 | $DIMTAD 183 | 70 184 | 1 185 | 9 186 | $DIMZIN 187 | 70 188 | 0 189 | 9 190 | $DIMBLK 191 | 1 192 | 193 | 9 194 | $DIMASO 195 | 70 196 | 1 197 | 9 198 | $DIMSHO 199 | 70 200 | 1 201 | 9 202 | $DIMPOST 203 | 1 204 | 205 | 9 206 | $DIMAPOST 207 | 1 208 | 209 | 9 210 | $DIMALT 211 | 70 212 | 0 213 | 9 214 | $DIMALTD 215 | 70 216 | 3 217 | 9 218 | $DIMALTF 219 | 40 220 | 0.0393700787 221 | 9 222 | $DIMLFAC 223 | 40 224 | 1 225 | 9 226 | $DIMTOFL 227 | 70 228 | 1 229 | 9 230 | $DIMTVP 231 | 40 232 | 0 233 | 9 234 | $DIMTIX 235 | 70 236 | 0 237 | 9 238 | $DIMSOXD 239 | 70 240 | 0 241 | 9 242 | $DIMSAH 243 | 70 244 | 0 245 | 9 246 | $DIMBLK1 247 | 1 248 | 249 | 9 250 | $DIMBLK2 251 | 1 252 | 253 | 9 254 | $DIMSTYLE 255 | 2 256 | ISO-25 257 | 9 258 | $DIMCLRD 259 | 70 260 | 0 261 | 9 262 | $DIMCLRE 263 | 70 264 | 0 265 | 9 266 | $DIMCLRT 267 | 70 268 | 0 269 | 9 270 | $DIMTFAC 271 | 40 272 | 1 273 | 9 274 | $DIMGAP 275 | 40 276 | 1.524 277 | 9 278 | $DIMJUST 279 | 70 280 | 0 281 | 9 282 | $DIMSD1 283 | 70 284 | 0 285 | 9 286 | $DIMSD2 287 | 70 288 | 0 289 | 9 290 | $DIMTOLJ 291 | 70 292 | 0 293 | 9 294 | $DIMTZIN 295 | 70 296 | 0 297 | 9 298 | $DIMALTZ 299 | 70 300 | 0 301 | 9 302 | $DIMALTTZ 303 | 70 304 | 0 305 | 9 306 | $DIMUPT 307 | 70 308 | 0 309 | 9 310 | $DIMDEC 311 | 70 312 | 2 313 | 9 314 | $DIMTDEC 315 | 70 316 | 2 317 | 9 318 | $DIMALTU 319 | 70 320 | 2 321 | 9 322 | $DIMALTTD 323 | 70 324 | 3 325 | 9 326 | $DIMTXSTY 327 | 7 328 | Standard 329 | 9 330 | $DIMAUNIT 331 | 70 332 | 0 333 | 9 334 | $DIMADEC 335 | 70 336 | 0 337 | 9 338 | $DIMALTRND 339 | 40 340 | 0 341 | 9 342 | $DIMAZIN 343 | 70 344 | 0 345 | 9 346 | $DIMDSEP 347 | 70 348 | 44 349 | 9 350 | $DIMATFIT 351 | 70 352 | 3 353 | 9 354 | $DIMFRAC 355 | 70 356 | 0 357 | 9 358 | $DIMLDRBLK 359 | 1 360 | 361 | 9 362 | $DIMLUNIT 363 | 70 364 | 2 365 | 9 366 | $DIMLWD 367 | 70 368 | -2 369 | 9 370 | $DIMLWE 371 | 70 372 | -2 373 | 9 374 | $DIMTMOVE 375 | 70 376 | 0 377 | 9 378 | $DIMFXL 379 | 40 380 | 1 381 | 9 382 | $DIMFXLON 383 | 70 384 | 0 385 | 9 386 | $DIMJOGANG 387 | 40 388 | 0.7854 389 | 9 390 | $DIMTFILL 391 | 70 392 | 0 393 | 9 394 | $DIMTFILLCLR 395 | 70 396 | 0 397 | 9 398 | $DIMARCSYM 399 | 70 400 | 0 401 | 9 402 | $DIMLTYPE 403 | 6 404 | 405 | 9 406 | $DIMLTEX1 407 | 6 408 | 409 | 9 410 | $DIMLTEX2 411 | 6 412 | 413 | 9 414 | $LUNITS 415 | 70 416 | 2 417 | 9 418 | $LUPREC 419 | 70 420 | 2 421 | 9 422 | $SKETCHINC 423 | 40 424 | 1 425 | 9 426 | $FILLETRAD 427 | 40 428 | 10 429 | 9 430 | $AUNITS 431 | 70 432 | 0 433 | 9 434 | $AUPREC 435 | 70 436 | 2 437 | 9 438 | $MENU 439 | 1 440 | . 441 | 9 442 | $ELEVATION 443 | 40 444 | 0 445 | 9 446 | $PELEVATION 447 | 40 448 | 0 449 | 9 450 | $THICKNESS 451 | 40 452 | 0 453 | 9 454 | $LIMCHECK 455 | 70 456 | 0 457 | 9 458 | $CHAMFERA 459 | 40 460 | 0 461 | 9 462 | $CHAMFERB 463 | 40 464 | 0 465 | 9 466 | $CHAMFERC 467 | 40 468 | 0 469 | 9 470 | $CHAMFERD 471 | 40 472 | 0 473 | 9 474 | $SKPOLY 475 | 70 476 | 0 477 | 9 478 | $USRTIMER 479 | 70 480 | 1 481 | 9 482 | $ANGBASE 483 | 50 484 | 0 485 | 9 486 | $ANGDIR 487 | 70 488 | 0 489 | 9 490 | $PDMODE 491 | 70 492 | 0 493 | 9 494 | $PDSIZE 495 | 40 496 | -1 497 | 9 498 | $PLINEWID 499 | 40 500 | 0 501 | 9 502 | $SPLFRAME 503 | 70 504 | 0 505 | 9 506 | $SPLINETYPE 507 | 70 508 | 6 509 | 9 510 | $SPLINESEGS 511 | 70 512 | 8 513 | 9 514 | $HANDSEED 515 | 5 516 | 20000 517 | 9 518 | $SURFTAB1 519 | 70 520 | 6 521 | 9 522 | $SURFTAB2 523 | 70 524 | 6 525 | 9 526 | $SURFTYPE 527 | 70 528 | 6 529 | 9 530 | $SURFU 531 | 70 532 | 6 533 | 9 534 | $SURFV 535 | 70 536 | 6 537 | 9 538 | $UCSBASE 539 | 2 540 | 541 | 9 542 | $UCSNAME 543 | 2 544 | 545 | 9 546 | $UCSORG 547 | 10 548 | 0 549 | 20 550 | 0 551 | 30 552 | 0 553 | 9 554 | $UCSXDIR 555 | 10 556 | 1 557 | 20 558 | 0 559 | 30 560 | 0 561 | 9 562 | $UCSYDIR 563 | 10 564 | 0 565 | 20 566 | 1 567 | 30 568 | 0 569 | 9 570 | $UCSORTHOREF 571 | 2 572 | 573 | 9 574 | $UCSORTHOVIEW 575 | 70 576 | 0 577 | 9 578 | $UCSORGTOP 579 | 10 580 | 0 581 | 20 582 | 0 583 | 30 584 | 0 585 | 9 586 | $UCSORGBOTTOM 587 | 10 588 | 0 589 | 20 590 | 0 591 | 30 592 | 0 593 | 9 594 | $UCSORGLEFT 595 | 10 596 | 0 597 | 20 598 | 0 599 | 30 600 | 0 601 | 9 602 | $UCSORGRIGHT 603 | 10 604 | 0 605 | 20 606 | 0 607 | 30 608 | 0 609 | 9 610 | $UCSORGFRONT 611 | 10 612 | 0 613 | 20 614 | 0 615 | 30 616 | 0 617 | 9 618 | $UCSORGBACK 619 | 10 620 | 0 621 | 20 622 | 0 623 | 30 624 | 0 625 | 9 626 | $PUCSBASE 627 | 2 628 | 629 | 9 630 | $PUCSNAME 631 | 2 632 | 633 | 9 634 | $PUCSORG 635 | 10 636 | 0 637 | 20 638 | 0 639 | 30 640 | 0 641 | 9 642 | $PUCSXDIR 643 | 10 644 | 1 645 | 20 646 | 0 647 | 30 648 | 0 649 | 9 650 | $PUCSYDIR 651 | 10 652 | 0 653 | 20 654 | 1 655 | 30 656 | 0 657 | 9 658 | $PUCSORTHOREF 659 | 2 660 | 661 | 9 662 | $PUCSORTHOVIEW 663 | 70 664 | 0 665 | 9 666 | $PUCSORGTOP 667 | 10 668 | 0 669 | 20 670 | 0 671 | 30 672 | 0 673 | 9 674 | $PUCSORGBOTTOM 675 | 10 676 | 0 677 | 20 678 | 0 679 | 30 680 | 0 681 | 9 682 | $PUCSORGLEFT 683 | 10 684 | 0 685 | 20 686 | 0 687 | 30 688 | 0 689 | 9 690 | $PUCSORGRIGHT 691 | 10 692 | 0 693 | 20 694 | 0 695 | 30 696 | 0 697 | 9 698 | $PUCSORGFRONT 699 | 10 700 | 0 701 | 20 702 | 0 703 | 30 704 | 0 705 | 9 706 | $PUCSORGBACK 707 | 10 708 | 0 709 | 20 710 | 0 711 | 30 712 | 0 713 | 9 714 | $USERI1 715 | 70 716 | 0 717 | 9 718 | $USERI2 719 | 70 720 | 0 721 | 9 722 | $USERI3 723 | 70 724 | 0 725 | 9 726 | $USERI4 727 | 70 728 | 0 729 | 9 730 | $USERI5 731 | 70 732 | 0 733 | 9 734 | $USERR1 735 | 40 736 | 0 737 | 9 738 | $USERR2 739 | 40 740 | 0 741 | 9 742 | $USERR3 743 | 40 744 | 0 745 | 9 746 | $USERR4 747 | 40 748 | 0 749 | 9 750 | $USERR5 751 | 40 752 | 0 753 | 9 754 | $WORLDVIEW 755 | 70 756 | 1 757 | 9 758 | $SHADEDGE 759 | 70 760 | 3 761 | 9 762 | $SHADEDIF 763 | 70 764 | 70 765 | 9 766 | $TILEMODE 767 | 70 768 | 1 769 | 9 770 | $MAXACTVP 771 | 70 772 | 64 773 | 9 774 | $PINSBASE 775 | 10 776 | 0 777 | 20 778 | 0 779 | 30 780 | 0 781 | 9 782 | $PLIMCHECK 783 | 70 784 | 0 785 | 9 786 | $PEXTMIN 787 | 10 788 | 1e+20 789 | 20 790 | 1e+20 791 | 30 792 | 1e+20 793 | 9 794 | $PEXTMAX 795 | 10 796 | -1e+20 797 | 20 798 | -1e+20 799 | 30 800 | -1e+20 801 | 9 802 | $GRIDMODE 803 | 70 804 | 0 805 | 9 806 | $SNAPSTYLE 807 | 70 808 | 0 809 | 9 810 | $PLIMMIN 811 | 10 812 | 0 813 | 20 814 | 0 815 | 9 816 | $PLIMMAX 817 | 10 818 | 420 819 | 20 820 | 297 821 | 9 822 | $UNITMODE 823 | 70 824 | 0 825 | 9 826 | $VISRETAIN 827 | 70 828 | 1 829 | 9 830 | $PLINEGEN 831 | 70 832 | 0 833 | 9 834 | $PSLTSCALE 835 | 70 836 | 1 837 | 9 838 | $TREEDEPTH 839 | 70 840 | 3020 841 | 9 842 | $CMLSTYLE 843 | 2 844 | Standard 845 | 9 846 | $CMLJUST 847 | 70 848 | 0 849 | 9 850 | $CMLSCALE 851 | 40 852 | 20 853 | 9 854 | $PROXYGRAPHICS 855 | 70 856 | 1 857 | 9 858 | $MEASUREMENT 859 | 70 860 | 1 861 | 9 862 | $CELWEIGHT 863 | 370 864 | -1 865 | 9 866 | $ENDCAPS 867 | 280 868 | 0 869 | 9 870 | $JOINSTYLE 871 | 280 872 | 0 873 | 9 874 | $LWDISPLAY 875 | 290 876 | 1 877 | 9 878 | $INSUNITS 879 | 70 880 | 4 881 | 9 882 | $HYPERLINKBASE 883 | 1 884 | 885 | 9 886 | $STYLESHEET 887 | 1 888 | 889 | 9 890 | $XEDIT 891 | 290 892 | 1 893 | 9 894 | $CEPSNTYPE 895 | 380 896 | 0 897 | 9 898 | $PSTYLEMODE 899 | 290 900 | 1 901 | 9 902 | $EXTNAMES 903 | 290 904 | 1 905 | 9 906 | $PSVPSCALE 907 | 40 908 | 0 909 | 9 910 | $OLESTARTUP 911 | 290 912 | 0 913 | 9 914 | $SORTENTS 915 | 280 916 | 127 917 | 9 918 | $INDEXCTL 919 | 280 920 | 0 921 | 9 922 | $HIDETEXT 923 | 280 924 | 1 925 | 9 926 | $XCLIPFRAME 927 | 290 928 | 0 929 | 9 930 | $HALOGAP 931 | 280 932 | 0 933 | 9 934 | $OBSCOLOR 935 | 70 936 | 257 937 | 9 938 | $OBSLTYPE 939 | 280 940 | 0 941 | 9 942 | $INTERSECTIONDISPLAY 943 | 280 944 | 0 945 | 9 946 | $INTERSECTIONCOLOR 947 | 70 948 | 257 949 | 9 950 | $DIMASSOC 951 | 280 952 | 1 953 | 9 954 | $PROJECTNAME 955 | 1 956 | 957 | 9 958 | $CAMERADISPLAY 959 | 290 960 | 0 961 | 9 962 | $LENSLENGTH 963 | 40 964 | 50 965 | 9 966 | $CAMERAHEIGHT 967 | 40 968 | 0 969 | 9 970 | $STEPSPERSEC 971 | 40 972 | 2 973 | 9 974 | $STEPSIZE 975 | 40 976 | 50 977 | 9 978 | $3DDWFPREC 979 | 40 980 | 2 981 | 9 982 | $PSOLWIDTH 983 | 40 984 | 5 985 | 9 986 | $PSOLHEIGHT 987 | 40 988 | 80 989 | 9 990 | $LOFTANG1 991 | 40 992 | 1.570796326794897 993 | 9 994 | $LOFTANG2 995 | 40 996 | 1.570796326794897 997 | 9 998 | $LOFTMAG1 999 | 40 1000 | 0 1001 | 9 1002 | $LOFTMAG2 1003 | 40 1004 | 0 1005 | 9 1006 | $LOFTPARAM 1007 | 70 1008 | 7 1009 | 9 1010 | $LOFTNORMALS 1011 | 280 1012 | 1 1013 | 9 1014 | $LATITUDE 1015 | 40 1016 | 1 1017 | 9 1018 | $LONGITUDE 1019 | 40 1020 | 1 1021 | 9 1022 | $NORTHDIRECTION 1023 | 40 1024 | 0 1025 | 9 1026 | $TIMEZONE 1027 | 70 1028 | -8000 1029 | 9 1030 | $LIGHTGLYPHDISPLAY 1031 | 280 1032 | 1 1033 | 9 1034 | $TILEMODELIGHTSYNCH 1035 | 280 1036 | 1 1037 | 9 1038 | $SOLIDHIST 1039 | 280 1040 | 1 1041 | 9 1042 | $SHOWHIST 1043 | 280 1044 | 1 1045 | 9 1046 | $DWFFRAME 1047 | 280 1048 | 2 1049 | 9 1050 | $DGNFRAME 1051 | 280 1052 | 0 1053 | 9 1054 | $REALWORLDSCALE 1055 | 290 1056 | 1 1057 | 9 1058 | $INTERFERECOLOR 1059 | 62 1060 | 1 1061 | 9 1062 | $CSHADOW 1063 | 280 1064 | 0 1065 | 9 1066 | $SHADOWPLANELOCATION 1067 | 40 1068 | 0 1069 | 0 1070 | ENDSEC 1071 | 0 1072 | SECTION 1073 | 2 1074 | CLASSES 1075 | 0 1076 | ENDSEC 1077 | 0 1078 | SECTION 1079 | 2 1080 | TABLES 1081 | 0 1082 | TABLE 1083 | 2 1084 | VPORT 1085 | 5 1086 | 8 1087 | 330 1088 | 0 1089 | 100 1090 | AcDbSymbolTable 1091 | 70 1092 | 1 1093 | 0 1094 | VPORT 1095 | 5 1096 | 31 1097 | 330 1098 | 2 1099 | 100 1100 | AcDbSymbolTableRecord 1101 | 100 1102 | AcDbViewportTableRecord 1103 | 2 1104 | *ACTIVE 1105 | 70 1106 | 0 1107 | 10 1108 | 0 1109 | 20 1110 | 0 1111 | 11 1112 | 1 1113 | 21 1114 | 1 1115 | 12 1116 | 44.22616565550683 1117 | 22 1118 | 23.67269572240605 1119 | 13 1120 | 0 1121 | 23 1122 | 0 1123 | 14 1124 | 10 1125 | 24 1126 | 10 1127 | 15 1128 | 10 1129 | 25 1130 | 10 1131 | 16 1132 | 0 1133 | 26 1134 | 0 1135 | 36 1136 | 1 1137 | 17 1138 | 0 1139 | 27 1140 | 0 1141 | 37 1142 | 0 1143 | 40 1144 | 89.12073683729336 1145 | 41 1146 | 1.97625 1147 | 42 1148 | 50 1149 | 43 1150 | 0 1151 | 44 1152 | 0 1153 | 50 1154 | 0 1155 | 51 1156 | 0 1157 | 71 1158 | 0 1159 | 72 1160 | 100 1161 | 73 1162 | 1 1163 | 74 1164 | 3 1165 | 75 1166 | 0 1167 | 76 1168 | 0 1169 | 77 1170 | 0 1171 | 78 1172 | 0 1173 | 281 1174 | 0 1175 | 65 1176 | 1 1177 | 110 1178 | 0 1179 | 120 1180 | 0 1181 | 130 1182 | 0 1183 | 111 1184 | 1 1185 | 121 1186 | 0 1187 | 131 1188 | 0 1189 | 112 1190 | 0 1191 | 122 1192 | 1 1193 | 132 1194 | 0 1195 | 79 1196 | 0 1197 | 146 1198 | 0 1199 | 348 1200 | 10020 1201 | 60 1202 | 7 1203 | 61 1204 | 5 1205 | 292 1206 | 1 1207 | 282 1208 | 1 1209 | 141 1210 | 0 1211 | 142 1212 | 0 1213 | 63 1214 | 250 1215 | 421 1216 | 3358443 1217 | 0 1218 | ENDTAB 1219 | 0 1220 | TABLE 1221 | 2 1222 | LTYPE 1223 | 5 1224 | 500 1225 | 330 1226 | 0 1227 | 100 1228 | AcDbSymbolTable 1229 | 70 1230 | 4 1231 | 0 1232 | LTYPE 1233 | 5 1234 | 501 1235 | 330 1236 | 500 1237 | 100 1238 | AcDbSymbolTableRecord 1239 | 100 1240 | AcDbLinetypeTableRecord 1241 | 2 1242 | ByBlock 1243 | 70 1244 | 0 1245 | 3 1246 | 1247 | 72 1248 | 65 1249 | 73 1250 | 0 1251 | 40 1252 | 0 1253 | 0 1254 | LTYPE 1255 | 5 1256 | 502 1257 | 330 1258 | 500 1259 | 100 1260 | AcDbSymbolTableRecord 1261 | 100 1262 | AcDbLinetypeTableRecord 1263 | 2 1264 | ByLayer 1265 | 70 1266 | 0 1267 | 3 1268 | 1269 | 72 1270 | 65 1271 | 73 1272 | 0 1273 | 40 1274 | 0 1275 | 0 1276 | LTYPE 1277 | 5 1278 | 503 1279 | 330 1280 | 500 1281 | 100 1282 | AcDbSymbolTableRecord 1283 | 100 1284 | AcDbLinetypeTableRecord 1285 | 2 1286 | CONTINUOUS 1287 | 70 1288 | 64 1289 | 3 1290 | Solid line 1291 | 72 1292 | 65 1293 | 73 1294 | 0 1295 | 40 1296 | 0.0 1297 | 0 1298 | ENDTAB 1299 | 0 1300 | TABLE 1301 | 2 1302 | LAYER 1303 | 5 1304 | 504 1305 | 330 1306 | 0 1307 | 100 1308 | AcDbSymbolTable 1309 | 70 1310 | 1 1311 | 0 1312 | LAYER 1313 | 5 1314 | 505 1315 | 330 1316 | 504 1317 | 100 1318 | AcDbSymbolTableRecord 1319 | 100 1320 | AcDbLayerTableRecord 1321 | 2 1322 | 0 1323 | 70 1324 | 64 1325 | 62 1326 | 96 1327 | 6 1328 | CONTINUOUS 1329 | 390 1330 | F 1331 | 0 1332 | LAYER 1333 | 5 1334 | 506 1335 | 330 1336 | 504 1337 | 100 1338 | AcDbSymbolTableRecord 1339 | 100 1340 | AcDbLayerTableRecord 1341 | 2 1342 | 2 1343 | 70 1344 | 64 1345 | 62 1346 | 6 1347 | 6 1348 | CONTINUOUS 1349 | 390 1350 | F 1351 | 0 1352 | ENDTAB 1353 | 0 1354 | TABLE 1355 | 2 1356 | STYLE 1357 | 5 1358 | 3 1359 | 330 1360 | 0 1361 | 100 1362 | AcDbSymbolTable 1363 | 70 1364 | 3 1365 | 0 1366 | STYLE 1367 | 5 1368 | 51 1369 | 330 1370 | 2 1371 | 100 1372 | AcDbSymbolTableRecord 1373 | 100 1374 | AcDbTextStyleTableRecord 1375 | 2 1376 | Standard 1377 | 70 1378 | 0 1379 | 40 1380 | 0 1381 | 41 1382 | 1 1383 | 50 1384 | 0 1385 | 71 1386 | 0 1387 | 42 1388 | 1 1389 | 3 1390 | txt 1391 | 4 1392 | 1393 | 0 1394 | ENDTAB 1395 | 0 1396 | TABLE 1397 | 2 1398 | VIEW 1399 | 5 1400 | 6 1401 | 330 1402 | 0 1403 | 100 1404 | AcDbSymbolTable 1405 | 70 1406 | 0 1407 | 0 1408 | ENDTAB 1409 | 0 1410 | TABLE 1411 | 2 1412 | UCS 1413 | 5 1414 | 7 1415 | 330 1416 | 0 1417 | 100 1418 | AcDbSymbolTable 1419 | 70 1420 | 0 1421 | 0 1422 | ENDTAB 1423 | 0 1424 | TABLE 1425 | 2 1426 | APPID 1427 | 5 1428 | 9 1429 | 330 1430 | 0 1431 | 100 1432 | AcDbSymbolTable 1433 | 70 1434 | 1 1435 | 0 1436 | APPID 1437 | 5 1438 | 12 1439 | 330 1440 | 9 1441 | 100 1442 | AcDbSymbolTableRecord 1443 | 100 1444 | AcDbRegAppTableRecord 1445 | 2 1446 | ACAD 1447 | 70 1448 | 0 1449 | 0 1450 | APPID 1451 | 5 1452 | 52 1453 | 330 1454 | 9 1455 | 100 1456 | AcDbSymbolTableRecord 1457 | 100 1458 | AcDbRegAppTableRecord 1459 | 2 1460 | LibreCad 1461 | 70 1462 | 0 1463 | 0 1464 | ENDTAB 1465 | 0 1466 | TABLE 1467 | 2 1468 | DIMSTYLE 1469 | 5 1470 | A 1471 | 330 1472 | 0 1473 | 100 1474 | AcDbSymbolTable 1475 | 70 1476 | 1 1477 | 100 1478 | AcDbDimStyleTable 1479 | 71 1480 | 1 1481 | 0 1482 | DIMSTYLE 1483 | 105 1484 | 53 1485 | 330 1486 | A 1487 | 100 1488 | AcDbSymbolTableRecord 1489 | 100 1490 | AcDbDimStyleTableRecord 1491 | 2 1492 | Standard 1493 | 70 1494 | 0 1495 | 40 1496 | 1 1497 | 41 1498 | 3.302 1499 | 42 1500 | 1 1501 | 43 1502 | 0.38 1503 | 44 1504 | 1 1505 | 45 1506 | 0 1507 | 46 1508 | 0 1509 | 47 1510 | 0 1511 | 48 1512 | 0 1513 | 49 1514 | 1 1515 | 140 1516 | 3.5 1517 | 141 1518 | 0.09 1519 | 142 1520 | 0 1521 | 143 1522 | 25.4 1523 | 144 1524 | 1 1525 | 145 1526 | 0 1527 | 146 1528 | 1 1529 | 147 1530 | 1.524 1531 | 148 1532 | 0 1533 | 71 1534 | 0 1535 | 72 1536 | 0 1537 | 73 1538 | 1 1539 | 74 1540 | 1 1541 | 75 1542 | 0 1543 | 76 1544 | 0 1545 | 77 1546 | 0 1547 | 78 1548 | 0 1549 | 79 1550 | 0 1551 | 170 1552 | 0 1553 | 171 1554 | 2 1555 | 172 1556 | 0 1557 | 173 1558 | 0 1559 | 174 1560 | 0 1561 | 175 1562 | 0 1563 | 176 1564 | 0 1565 | 177 1566 | 0 1567 | 178 1568 | 0 1569 | 179 1570 | 0 1571 | 271 1572 | 2 1573 | 272 1574 | 4 1575 | 273 1576 | 2 1577 | 274 1578 | 2 1579 | 275 1580 | 0 1581 | 276 1582 | 0 1583 | 277 1584 | 2 1585 | 278 1586 | 44 1587 | 279 1588 | 0 1589 | 280 1590 | 0 1591 | 281 1592 | 0 1593 | 282 1594 | 0 1595 | 283 1596 | 1 1597 | 284 1598 | 0 1599 | 285 1600 | 0 1601 | 286 1602 | 0 1603 | 288 1604 | 0 1605 | 289 1606 | 3 1607 | 340 1608 | Standard 1609 | 341 1610 | 1611 | 371 1612 | -2 1613 | 372 1614 | -2 1615 | 0 1616 | ENDTAB 1617 | 0 1618 | TABLE 1619 | 2 1620 | BLOCK_RECORD 1621 | 5 1622 | 1 1623 | 330 1624 | 0 1625 | 100 1626 | AcDbSymbolTable 1627 | 70 1628 | 2 1629 | 0 1630 | BLOCK_RECORD 1631 | 5 1632 | 1F 1633 | 330 1634 | 1 1635 | 100 1636 | AcDbSymbolTableRecord 1637 | 100 1638 | AcDbBlockTableRecord 1639 | 2 1640 | *Model_Space 1641 | 70 1642 | 0 1643 | 280 1644 | 1 1645 | 281 1646 | 0 1647 | 0 1648 | BLOCK_RECORD 1649 | 5 1650 | 1E 1651 | 330 1652 | 1 1653 | 100 1654 | AcDbSymbolTableRecord 1655 | 100 1656 | AcDbBlockTableRecord 1657 | 2 1658 | *Paper_Space 1659 | 70 1660 | 0 1661 | 280 1662 | 1 1663 | 281 1664 | 0 1665 | 0 1666 | ENDTAB 1667 | 0 1668 | ENDSEC 1669 | 0 1670 | SECTION 1671 | 2 1672 | BLOCKS 1673 | 0 1674 | BLOCK 1675 | 5 1676 | 20 1677 | 330 1678 | 1F 1679 | 100 1680 | AcDbEntity 1681 | 8 1682 | 0 1683 | 100 1684 | AcDbBlockBegin 1685 | 2 1686 | *Model_Space 1687 | 70 1688 | 0 1689 | 10 1690 | 0.0 1691 | 20 1692 | 0.0 1693 | 30 1694 | 0.0 1695 | 3 1696 | *Model_Space 1697 | 1 1698 | 1699 | 0 1700 | ENDBLK 1701 | 5 1702 | 21 1703 | 330 1704 | 1F 1705 | 100 1706 | AcDbEntity 1707 | 8 1708 | 0 1709 | 100 1710 | AcDbBlockEnd 1711 | 0 1712 | BLOCK 1713 | 5 1714 | 1C 1715 | 330 1716 | 1B 1717 | 100 1718 | AcDbEntity 1719 | 8 1720 | 0 1721 | 100 1722 | AcDbBlockBegin 1723 | 2 1724 | *Paper_Space 1725 | 70 1726 | 0 1727 | 10 1728 | 0.0 1729 | 20 1730 | 0.0 1731 | 30 1732 | 0.0 1733 | 3 1734 | *Paper_Space 1735 | 1 1736 | 1737 | 0 1738 | ENDBLK 1739 | 5 1740 | 1D 1741 | 330 1742 | 1F 1743 | 100 1744 | AcDbEntity 1745 | 8 1746 | 0 1747 | 100 1748 | AcDbBlockEnd 1749 | 0 1750 | ENDSEC 1751 | 0 1752 | SECTION 1753 | 2 1754 | ENTITIES 1755 | 0 1756 | ELLIPSE 1757 | 5 1758 | 507 1759 | 100 1760 | AcDbEntity 1761 | 8 1762 | 0 1763 | 100 1764 | AcDbEllipse 1765 | 10 1766 | -20 1767 | 20 1768 | 0 1769 | 30 1770 | 0 1771 | 11 1772 | 0 1773 | 21 1774 | 30 1775 | 31 1776 | 0 1777 | 40 1778 | 0.5 1779 | 41 1780 | 0 1781 | 42 1782 | 6.2831853071796 1783 | 0 1784 | ELLIPSE 1785 | 5 1786 | 508 1787 | 100 1788 | AcDbEntity 1789 | 8 1790 | 2 1791 | 100 1792 | AcDbEllipse 1793 | 10 1794 | 20 1795 | 20 1796 | 0 1797 | 30 1798 | 0 1799 | 11 1800 | 0 1801 | 21 1802 | 30 1803 | 31 1804 | 0 1805 | 40 1806 | 0.5 1807 | 41 1808 | 0 1809 | 42 1810 | 6.2831853071796 1811 | 0 1812 | ENDSEC 1813 | 0 1814 | SECTION 1815 | 2 1816 | OBJECTS 1817 | 0 1818 | DICTIONARY 1819 | 5 1820 | C 1821 | 330 1822 | 0 1823 | 100 1824 | AcDbDictionary 1825 | 281 1826 | 1 1827 | 3 1828 | ACAD_GROUP 1829 | 350 1830 | D 1831 | 0 1832 | DICTIONARY 1833 | 5 1834 | D 1835 | 330 1836 | C 1837 | 100 1838 | AcDbDictionary 1839 | 281 1840 | 1 1841 | 0 1842 | ENDSEC 1843 | 0 1844 | EOF 1845 | -------------------------------------------------------------------------------- /demo/demo2.dxf: -------------------------------------------------------------------------------- 1 | 0 2 | SECTION 3 | 2 4 | HEADER 5 | 9 6 | $ACADVER 7 | 1 8 | AC1021 9 | 9 10 | $DWGCODEPAGE 11 | 3 12 | ANSI_1252 13 | 9 14 | $INSBASE 15 | 10 16 | 0 17 | 20 18 | 0 19 | 30 20 | 0 21 | 9 22 | $EXTMIN 23 | 10 24 | -35 25 | 20 26 | -30 27 | 30 28 | 0 29 | 9 30 | $EXTMAX 31 | 10 32 | 35 33 | 20 34 | 30 35 | 30 36 | 0 37 | 9 38 | $LIMMIN 39 | 10 40 | 0 41 | 20 42 | 0 43 | 9 44 | $LIMMAX 45 | 10 46 | 420 47 | 20 48 | 297 49 | 9 50 | $ORTHOMODE 51 | 70 52 | 0 53 | 9 54 | $REGENMODE 55 | 70 56 | 1 57 | 9 58 | $FILLMODE 59 | 70 60 | 1 61 | 9 62 | $QTEXTMODE 63 | 70 64 | 0 65 | 9 66 | $MIRRTEXT 67 | 70 68 | 1 69 | 9 70 | $LTSCALE 71 | 40 72 | 1 73 | 9 74 | $ATTMODE 75 | 70 76 | 1 77 | 9 78 | $TEXTSIZE 79 | 40 80 | 3.5 81 | 9 82 | $TRACEWID 83 | 40 84 | 1 85 | 9 86 | $TEXTSTYLE 87 | 7 88 | Standard 89 | 9 90 | $CLAYER 91 | 8 92 | red 93 | 9 94 | $CELTYPE 95 | 6 96 | ByLayer 97 | 9 98 | $CECOLOR 99 | 62 100 | 256 101 | 9 102 | $CELTSCALE 103 | 40 104 | 1 105 | 9 106 | $DISPSILH 107 | 70 108 | 0 109 | 9 110 | $DIMSCALE 111 | 40 112 | 1 113 | 9 114 | $DIMASZ 115 | 40 116 | 3.302 117 | 9 118 | $DIMEXO 119 | 40 120 | 1 121 | 9 122 | $DIMDLI 123 | 40 124 | 3.75 125 | 9 126 | $DIMRND 127 | 40 128 | 0 129 | 9 130 | $DIMDLE 131 | 40 132 | 0 133 | 9 134 | $DIMEXE 135 | 40 136 | 1 137 | 9 138 | $DIMTP 139 | 40 140 | 0 141 | 9 142 | $DIMTM 143 | 40 144 | 0 145 | 9 146 | $DIMTXT 147 | 40 148 | 3.5 149 | 9 150 | $DIMCEN 151 | 40 152 | 2.5 153 | 9 154 | $DIMTSZ 155 | 40 156 | 0 157 | 9 158 | $DIMTOL 159 | 70 160 | 0 161 | 9 162 | $DIMLIM 163 | 70 164 | 0 165 | 9 166 | $DIMTIH 167 | 70 168 | 1 169 | 9 170 | $DIMTOH 171 | 70 172 | 1 173 | 9 174 | $DIMSE1 175 | 70 176 | 0 177 | 9 178 | $DIMSE2 179 | 70 180 | 0 181 | 9 182 | $DIMTAD 183 | 70 184 | 1 185 | 9 186 | $DIMZIN 187 | 70 188 | 0 189 | 9 190 | $DIMBLK 191 | 1 192 | 193 | 9 194 | $DIMASO 195 | 70 196 | 1 197 | 9 198 | $DIMSHO 199 | 70 200 | 1 201 | 9 202 | $DIMPOST 203 | 1 204 | 205 | 9 206 | $DIMAPOST 207 | 1 208 | 209 | 9 210 | $DIMALT 211 | 70 212 | 0 213 | 9 214 | $DIMALTD 215 | 70 216 | 3 217 | 9 218 | $DIMALTF 219 | 40 220 | 0.0393700787 221 | 9 222 | $DIMLFAC 223 | 40 224 | 1 225 | 9 226 | $DIMTOFL 227 | 70 228 | 1 229 | 9 230 | $DIMTVP 231 | 40 232 | 0 233 | 9 234 | $DIMTIX 235 | 70 236 | 0 237 | 9 238 | $DIMSOXD 239 | 70 240 | 0 241 | 9 242 | $DIMSAH 243 | 70 244 | 0 245 | 9 246 | $DIMBLK1 247 | 1 248 | 249 | 9 250 | $DIMBLK2 251 | 1 252 | 253 | 9 254 | $DIMSTYLE 255 | 2 256 | ISO-25 257 | 9 258 | $DIMCLRD 259 | 70 260 | 0 261 | 9 262 | $DIMCLRE 263 | 70 264 | 0 265 | 9 266 | $DIMCLRT 267 | 70 268 | 0 269 | 9 270 | $DIMTFAC 271 | 40 272 | 1 273 | 9 274 | $DIMGAP 275 | 40 276 | 1.524 277 | 9 278 | $DIMJUST 279 | 70 280 | 0 281 | 9 282 | $DIMSD1 283 | 70 284 | 0 285 | 9 286 | $DIMSD2 287 | 70 288 | 0 289 | 9 290 | $DIMTOLJ 291 | 70 292 | 0 293 | 9 294 | $DIMTZIN 295 | 70 296 | 0 297 | 9 298 | $DIMALTZ 299 | 70 300 | 0 301 | 9 302 | $DIMALTTZ 303 | 70 304 | 0 305 | 9 306 | $DIMUPT 307 | 70 308 | 0 309 | 9 310 | $DIMDEC 311 | 70 312 | 2 313 | 9 314 | $DIMTDEC 315 | 70 316 | 2 317 | 9 318 | $DIMALTU 319 | 70 320 | 2 321 | 9 322 | $DIMALTTD 323 | 70 324 | 3 325 | 9 326 | $DIMTXSTY 327 | 7 328 | Standard 329 | 9 330 | $DIMAUNIT 331 | 70 332 | 0 333 | 9 334 | $DIMADEC 335 | 70 336 | 0 337 | 9 338 | $DIMALTRND 339 | 40 340 | 0 341 | 9 342 | $DIMAZIN 343 | 70 344 | 0 345 | 9 346 | $DIMDSEP 347 | 70 348 | 44 349 | 9 350 | $DIMATFIT 351 | 70 352 | 3 353 | 9 354 | $DIMFRAC 355 | 70 356 | 0 357 | 9 358 | $DIMLDRBLK 359 | 1 360 | 361 | 9 362 | $DIMLUNIT 363 | 70 364 | 2 365 | 9 366 | $DIMLWD 367 | 70 368 | -2 369 | 9 370 | $DIMLWE 371 | 70 372 | -2 373 | 9 374 | $DIMTMOVE 375 | 70 376 | 0 377 | 9 378 | $DIMFXL 379 | 40 380 | 1 381 | 9 382 | $DIMFXLON 383 | 70 384 | 0 385 | 9 386 | $DIMJOGANG 387 | 40 388 | 0.7854 389 | 9 390 | $DIMTFILL 391 | 70 392 | 0 393 | 9 394 | $DIMTFILLCLR 395 | 70 396 | 0 397 | 9 398 | $DIMARCSYM 399 | 70 400 | 0 401 | 9 402 | $DIMLTYPE 403 | 6 404 | 405 | 9 406 | $DIMLTEX1 407 | 6 408 | 409 | 9 410 | $DIMLTEX2 411 | 6 412 | 413 | 9 414 | $LUNITS 415 | 70 416 | 2 417 | 9 418 | $LUPREC 419 | 70 420 | 2 421 | 9 422 | $SKETCHINC 423 | 40 424 | 1 425 | 9 426 | $FILLETRAD 427 | 40 428 | 10 429 | 9 430 | $AUNITS 431 | 70 432 | 0 433 | 9 434 | $AUPREC 435 | 70 436 | 2 437 | 9 438 | $MENU 439 | 1 440 | . 441 | 9 442 | $ELEVATION 443 | 40 444 | 0 445 | 9 446 | $PELEVATION 447 | 40 448 | 0 449 | 9 450 | $THICKNESS 451 | 40 452 | 0 453 | 9 454 | $LIMCHECK 455 | 70 456 | 0 457 | 9 458 | $CHAMFERA 459 | 40 460 | 0 461 | 9 462 | $CHAMFERB 463 | 40 464 | 0 465 | 9 466 | $CHAMFERC 467 | 40 468 | 0 469 | 9 470 | $CHAMFERD 471 | 40 472 | 0 473 | 9 474 | $SKPOLY 475 | 70 476 | 0 477 | 9 478 | $USRTIMER 479 | 70 480 | 1 481 | 9 482 | $ANGBASE 483 | 50 484 | 0 485 | 9 486 | $ANGDIR 487 | 70 488 | 0 489 | 9 490 | $PDMODE 491 | 70 492 | 0 493 | 9 494 | $PDSIZE 495 | 40 496 | -1 497 | 9 498 | $PLINEWID 499 | 40 500 | 0 501 | 9 502 | $SPLFRAME 503 | 70 504 | 0 505 | 9 506 | $SPLINETYPE 507 | 70 508 | 6 509 | 9 510 | $SPLINESEGS 511 | 70 512 | 8 513 | 9 514 | $HANDSEED 515 | 5 516 | 20000 517 | 9 518 | $SURFTAB1 519 | 70 520 | 6 521 | 9 522 | $SURFTAB2 523 | 70 524 | 6 525 | 9 526 | $SURFTYPE 527 | 70 528 | 6 529 | 9 530 | $SURFU 531 | 70 532 | 6 533 | 9 534 | $SURFV 535 | 70 536 | 6 537 | 9 538 | $UCSBASE 539 | 2 540 | 541 | 9 542 | $UCSNAME 543 | 2 544 | 545 | 9 546 | $UCSORG 547 | 10 548 | 0 549 | 20 550 | 0 551 | 30 552 | 0 553 | 9 554 | $UCSXDIR 555 | 10 556 | 1 557 | 20 558 | 0 559 | 30 560 | 0 561 | 9 562 | $UCSYDIR 563 | 10 564 | 0 565 | 20 566 | 1 567 | 30 568 | 0 569 | 9 570 | $UCSORTHOREF 571 | 2 572 | 573 | 9 574 | $UCSORTHOVIEW 575 | 70 576 | 0 577 | 9 578 | $UCSORGTOP 579 | 10 580 | 0 581 | 20 582 | 0 583 | 30 584 | 0 585 | 9 586 | $UCSORGBOTTOM 587 | 10 588 | 0 589 | 20 590 | 0 591 | 30 592 | 0 593 | 9 594 | $UCSORGLEFT 595 | 10 596 | 0 597 | 20 598 | 0 599 | 30 600 | 0 601 | 9 602 | $UCSORGRIGHT 603 | 10 604 | 0 605 | 20 606 | 0 607 | 30 608 | 0 609 | 9 610 | $UCSORGFRONT 611 | 10 612 | 0 613 | 20 614 | 0 615 | 30 616 | 0 617 | 9 618 | $UCSORGBACK 619 | 10 620 | 0 621 | 20 622 | 0 623 | 30 624 | 0 625 | 9 626 | $PUCSBASE 627 | 2 628 | 629 | 9 630 | $PUCSNAME 631 | 2 632 | 633 | 9 634 | $PUCSORG 635 | 10 636 | 0 637 | 20 638 | 0 639 | 30 640 | 0 641 | 9 642 | $PUCSXDIR 643 | 10 644 | 1 645 | 20 646 | 0 647 | 30 648 | 0 649 | 9 650 | $PUCSYDIR 651 | 10 652 | 0 653 | 20 654 | 1 655 | 30 656 | 0 657 | 9 658 | $PUCSORTHOREF 659 | 2 660 | 661 | 9 662 | $PUCSORTHOVIEW 663 | 70 664 | 0 665 | 9 666 | $PUCSORGTOP 667 | 10 668 | 0 669 | 20 670 | 0 671 | 30 672 | 0 673 | 9 674 | $PUCSORGBOTTOM 675 | 10 676 | 0 677 | 20 678 | 0 679 | 30 680 | 0 681 | 9 682 | $PUCSORGLEFT 683 | 10 684 | 0 685 | 20 686 | 0 687 | 30 688 | 0 689 | 9 690 | $PUCSORGRIGHT 691 | 10 692 | 0 693 | 20 694 | 0 695 | 30 696 | 0 697 | 9 698 | $PUCSORGFRONT 699 | 10 700 | 0 701 | 20 702 | 0 703 | 30 704 | 0 705 | 9 706 | $PUCSORGBACK 707 | 10 708 | 0 709 | 20 710 | 0 711 | 30 712 | 0 713 | 9 714 | $USERI1 715 | 70 716 | 0 717 | 9 718 | $USERI2 719 | 70 720 | 0 721 | 9 722 | $USERI3 723 | 70 724 | 0 725 | 9 726 | $USERI4 727 | 70 728 | 0 729 | 9 730 | $USERI5 731 | 70 732 | 0 733 | 9 734 | $USERR1 735 | 40 736 | 0 737 | 9 738 | $USERR2 739 | 40 740 | 0 741 | 9 742 | $USERR3 743 | 40 744 | 0 745 | 9 746 | $USERR4 747 | 40 748 | 0 749 | 9 750 | $USERR5 751 | 40 752 | 0 753 | 9 754 | $WORLDVIEW 755 | 70 756 | 1 757 | 9 758 | $SHADEDGE 759 | 70 760 | 3 761 | 9 762 | $SHADEDIF 763 | 70 764 | 70 765 | 9 766 | $TILEMODE 767 | 70 768 | 1 769 | 9 770 | $MAXACTVP 771 | 70 772 | 64 773 | 9 774 | $PINSBASE 775 | 10 776 | 0 777 | 20 778 | 0 779 | 30 780 | 0 781 | 9 782 | $PLIMCHECK 783 | 70 784 | 0 785 | 9 786 | $PEXTMIN 787 | 10 788 | 1e+20 789 | 20 790 | 1e+20 791 | 30 792 | 1e+20 793 | 9 794 | $PEXTMAX 795 | 10 796 | -1e+20 797 | 20 798 | -1e+20 799 | 30 800 | -1e+20 801 | 9 802 | $GRIDMODE 803 | 70 804 | 0 805 | 9 806 | $SNAPSTYLE 807 | 70 808 | 0 809 | 9 810 | $PLIMMIN 811 | 10 812 | 0 813 | 20 814 | 0 815 | 9 816 | $PLIMMAX 817 | 10 818 | 420 819 | 20 820 | 297 821 | 9 822 | $UNITMODE 823 | 70 824 | 0 825 | 9 826 | $VISRETAIN 827 | 70 828 | 1 829 | 9 830 | $PLINEGEN 831 | 70 832 | 0 833 | 9 834 | $PSLTSCALE 835 | 70 836 | 1 837 | 9 838 | $TREEDEPTH 839 | 70 840 | 3020 841 | 9 842 | $CMLSTYLE 843 | 2 844 | Standard 845 | 9 846 | $CMLJUST 847 | 70 848 | 0 849 | 9 850 | $CMLSCALE 851 | 40 852 | 20 853 | 9 854 | $PROXYGRAPHICS 855 | 70 856 | 1 857 | 9 858 | $MEASUREMENT 859 | 70 860 | 1 861 | 9 862 | $CELWEIGHT 863 | 370 864 | -1 865 | 9 866 | $ENDCAPS 867 | 280 868 | 0 869 | 9 870 | $JOINSTYLE 871 | 280 872 | 0 873 | 9 874 | $LWDISPLAY 875 | 290 876 | 1 877 | 9 878 | $INSUNITS 879 | 70 880 | 4 881 | 9 882 | $HYPERLINKBASE 883 | 1 884 | 885 | 9 886 | $STYLESHEET 887 | 1 888 | 889 | 9 890 | $XEDIT 891 | 290 892 | 1 893 | 9 894 | $CEPSNTYPE 895 | 380 896 | 0 897 | 9 898 | $PSTYLEMODE 899 | 290 900 | 1 901 | 9 902 | $EXTNAMES 903 | 290 904 | 1 905 | 9 906 | $PSVPSCALE 907 | 40 908 | 0 909 | 9 910 | $OLESTARTUP 911 | 290 912 | 0 913 | 9 914 | $SORTENTS 915 | 280 916 | 127 917 | 9 918 | $INDEXCTL 919 | 280 920 | 0 921 | 9 922 | $HIDETEXT 923 | 280 924 | 1 925 | 9 926 | $XCLIPFRAME 927 | 290 928 | 0 929 | 9 930 | $HALOGAP 931 | 280 932 | 0 933 | 9 934 | $OBSCOLOR 935 | 70 936 | 257 937 | 9 938 | $OBSLTYPE 939 | 280 940 | 0 941 | 9 942 | $INTERSECTIONDISPLAY 943 | 280 944 | 0 945 | 9 946 | $INTERSECTIONCOLOR 947 | 70 948 | 257 949 | 9 950 | $DIMASSOC 951 | 280 952 | 1 953 | 9 954 | $PROJECTNAME 955 | 1 956 | 957 | 9 958 | $CAMERADISPLAY 959 | 290 960 | 0 961 | 9 962 | $LENSLENGTH 963 | 40 964 | 50 965 | 9 966 | $CAMERAHEIGHT 967 | 40 968 | 0 969 | 9 970 | $STEPSPERSEC 971 | 40 972 | 2 973 | 9 974 | $STEPSIZE 975 | 40 976 | 50 977 | 9 978 | $3DDWFPREC 979 | 40 980 | 2 981 | 9 982 | $PSOLWIDTH 983 | 40 984 | 5 985 | 9 986 | $PSOLHEIGHT 987 | 40 988 | 80 989 | 9 990 | $LOFTANG1 991 | 40 992 | 1.570796326794897 993 | 9 994 | $LOFTANG2 995 | 40 996 | 1.570796326794897 997 | 9 998 | $LOFTMAG1 999 | 40 1000 | 0 1001 | 9 1002 | $LOFTMAG2 1003 | 40 1004 | 0 1005 | 9 1006 | $LOFTPARAM 1007 | 70 1008 | 7 1009 | 9 1010 | $LOFTNORMALS 1011 | 280 1012 | 1 1013 | 9 1014 | $LATITUDE 1015 | 40 1016 | 1 1017 | 9 1018 | $LONGITUDE 1019 | 40 1020 | 1 1021 | 9 1022 | $NORTHDIRECTION 1023 | 40 1024 | 0 1025 | 9 1026 | $TIMEZONE 1027 | 70 1028 | -8000 1029 | 9 1030 | $LIGHTGLYPHDISPLAY 1031 | 280 1032 | 1 1033 | 9 1034 | $TILEMODELIGHTSYNCH 1035 | 280 1036 | 1 1037 | 9 1038 | $SOLIDHIST 1039 | 280 1040 | 1 1041 | 9 1042 | $SHOWHIST 1043 | 280 1044 | 1 1045 | 9 1046 | $DWFFRAME 1047 | 280 1048 | 2 1049 | 9 1050 | $DGNFRAME 1051 | 280 1052 | 0 1053 | 9 1054 | $REALWORLDSCALE 1055 | 290 1056 | 1 1057 | 9 1058 | $INTERFERECOLOR 1059 | 62 1060 | 1 1061 | 9 1062 | $CSHADOW 1063 | 280 1064 | 0 1065 | 9 1066 | $SHADOWPLANELOCATION 1067 | 40 1068 | 0 1069 | 0 1070 | ENDSEC 1071 | 0 1072 | SECTION 1073 | 2 1074 | CLASSES 1075 | 0 1076 | ENDSEC 1077 | 0 1078 | SECTION 1079 | 2 1080 | TABLES 1081 | 0 1082 | TABLE 1083 | 2 1084 | VPORT 1085 | 5 1086 | 8 1087 | 330 1088 | 0 1089 | 100 1090 | AcDbSymbolTable 1091 | 70 1092 | 1 1093 | 0 1094 | VPORT 1095 | 5 1096 | 31 1097 | 330 1098 | 2 1099 | 100 1100 | AcDbSymbolTableRecord 1101 | 100 1102 | AcDbViewportTableRecord 1103 | 2 1104 | *ACTIVE 1105 | 70 1106 | 0 1107 | 10 1108 | 0 1109 | 20 1110 | 0 1111 | 11 1112 | 1 1113 | 21 1114 | 1 1115 | 12 1116 | 44.22616565550683 1117 | 22 1118 | 23.67269572240605 1119 | 13 1120 | 0 1121 | 23 1122 | 0 1123 | 14 1124 | 10 1125 | 24 1126 | 10 1127 | 15 1128 | 10 1129 | 25 1130 | 10 1131 | 16 1132 | 0 1133 | 26 1134 | 0 1135 | 36 1136 | 1 1137 | 17 1138 | 0 1139 | 27 1140 | 0 1141 | 37 1142 | 0 1143 | 40 1144 | 89.12073683729336 1145 | 41 1146 | 1.97625 1147 | 42 1148 | 50 1149 | 43 1150 | 0 1151 | 44 1152 | 0 1153 | 50 1154 | 0 1155 | 51 1156 | 0 1157 | 71 1158 | 0 1159 | 72 1160 | 100 1161 | 73 1162 | 1 1163 | 74 1164 | 3 1165 | 75 1166 | 0 1167 | 76 1168 | 0 1169 | 77 1170 | 0 1171 | 78 1172 | 0 1173 | 281 1174 | 0 1175 | 65 1176 | 1 1177 | 110 1178 | 0 1179 | 120 1180 | 0 1181 | 130 1182 | 0 1183 | 111 1184 | 1 1185 | 121 1186 | 0 1187 | 131 1188 | 0 1189 | 112 1190 | 0 1191 | 122 1192 | 1 1193 | 132 1194 | 0 1195 | 79 1196 | 0 1197 | 146 1198 | 0 1199 | 348 1200 | 10020 1201 | 60 1202 | 7 1203 | 61 1204 | 5 1205 | 292 1206 | 1 1207 | 282 1208 | 1 1209 | 141 1210 | 0 1211 | 142 1212 | 0 1213 | 63 1214 | 250 1215 | 421 1216 | 3358443 1217 | 0 1218 | ENDTAB 1219 | 0 1220 | TABLE 1221 | 2 1222 | LTYPE 1223 | 5 1224 | 500 1225 | 330 1226 | 0 1227 | 100 1228 | AcDbSymbolTable 1229 | 70 1230 | 4 1231 | 0 1232 | LTYPE 1233 | 5 1234 | 501 1235 | 330 1236 | 500 1237 | 100 1238 | AcDbSymbolTableRecord 1239 | 100 1240 | AcDbLinetypeTableRecord 1241 | 2 1242 | ByBlock 1243 | 70 1244 | 0 1245 | 3 1246 | 1247 | 72 1248 | 65 1249 | 73 1250 | 0 1251 | 40 1252 | 0 1253 | 0 1254 | LTYPE 1255 | 5 1256 | 502 1257 | 330 1258 | 500 1259 | 100 1260 | AcDbSymbolTableRecord 1261 | 100 1262 | AcDbLinetypeTableRecord 1263 | 2 1264 | ByLayer 1265 | 70 1266 | 0 1267 | 3 1268 | 1269 | 72 1270 | 65 1271 | 73 1272 | 0 1273 | 40 1274 | 0 1275 | 0 1276 | LTYPE 1277 | 5 1278 | 503 1279 | 330 1280 | 500 1281 | 100 1282 | AcDbSymbolTableRecord 1283 | 100 1284 | AcDbLinetypeTableRecord 1285 | 2 1286 | CONTINUOUS 1287 | 70 1288 | 64 1289 | 3 1290 | Solid line 1291 | 72 1292 | 65 1293 | 73 1294 | 0 1295 | 40 1296 | 0.0 1297 | 0 1298 | LTYPE 1299 | 5 1300 | 504 1301 | 330 1302 | 500 1303 | 100 1304 | AcDbSymbolTableRecord 1305 | 100 1306 | AcDbLinetypeTableRecord 1307 | 2 1308 | DASHDOTX2 1309 | 70 1310 | 64 1311 | 3 1312 | Dash dot (2x) ____ . ____ . ____ . ___ 1313 | 72 1314 | 65 1315 | 73 1316 | 4 1317 | 40 1318 | 50.8 1319 | 49 1320 | 25.4 1321 | 74 1322 | 0 1323 | 49 1324 | -12.7 1325 | 74 1326 | 0 1327 | 49 1328 | 0 1329 | 74 1330 | 0 1331 | 49 1332 | -12.7 1333 | 74 1334 | 0 1335 | 0 1336 | ENDTAB 1337 | 0 1338 | TABLE 1339 | 2 1340 | LAYER 1341 | 5 1342 | 505 1343 | 330 1344 | 0 1345 | 100 1346 | AcDbSymbolTable 1347 | 70 1348 | 1 1349 | 0 1350 | LAYER 1351 | 5 1352 | 506 1353 | 330 1354 | 505 1355 | 100 1356 | AcDbSymbolTableRecord 1357 | 100 1358 | AcDbLayerTableRecord 1359 | 2 1360 | 0 1361 | 70 1362 | 64 1363 | 62 1364 | 96 1365 | 6 1366 | DASHDOTX2 1367 | 390 1368 | F 1369 | 0 1370 | LAYER 1371 | 5 1372 | 507 1373 | 330 1374 | 505 1375 | 100 1376 | AcDbSymbolTableRecord 1377 | 100 1378 | AcDbLayerTableRecord 1379 | 2 1380 | poly 1381 | 70 1382 | 64 1383 | 62 1384 | 6 1385 | 6 1386 | CONTINUOUS 1387 | 390 1388 | F 1389 | 0 1390 | ENDTAB 1391 | 0 1392 | TABLE 1393 | 2 1394 | STYLE 1395 | 5 1396 | 3 1397 | 330 1398 | 0 1399 | 100 1400 | AcDbSymbolTable 1401 | 70 1402 | 3 1403 | 0 1404 | STYLE 1405 | 5 1406 | 51 1407 | 330 1408 | 2 1409 | 100 1410 | AcDbSymbolTableRecord 1411 | 100 1412 | AcDbTextStyleTableRecord 1413 | 2 1414 | Standard 1415 | 70 1416 | 0 1417 | 40 1418 | 0 1419 | 41 1420 | 1 1421 | 50 1422 | 0 1423 | 71 1424 | 0 1425 | 42 1426 | 1 1427 | 3 1428 | txt 1429 | 4 1430 | 1431 | 0 1432 | ENDTAB 1433 | 0 1434 | TABLE 1435 | 2 1436 | VIEW 1437 | 5 1438 | 6 1439 | 330 1440 | 0 1441 | 100 1442 | AcDbSymbolTable 1443 | 70 1444 | 0 1445 | 0 1446 | ENDTAB 1447 | 0 1448 | TABLE 1449 | 2 1450 | UCS 1451 | 5 1452 | 7 1453 | 330 1454 | 0 1455 | 100 1456 | AcDbSymbolTable 1457 | 70 1458 | 0 1459 | 0 1460 | ENDTAB 1461 | 0 1462 | TABLE 1463 | 2 1464 | APPID 1465 | 5 1466 | 9 1467 | 330 1468 | 0 1469 | 100 1470 | AcDbSymbolTable 1471 | 70 1472 | 1 1473 | 0 1474 | APPID 1475 | 5 1476 | 12 1477 | 330 1478 | 9 1479 | 100 1480 | AcDbSymbolTableRecord 1481 | 100 1482 | AcDbRegAppTableRecord 1483 | 2 1484 | ACAD 1485 | 70 1486 | 0 1487 | 0 1488 | APPID 1489 | 5 1490 | 52 1491 | 330 1492 | 9 1493 | 100 1494 | AcDbSymbolTableRecord 1495 | 100 1496 | AcDbRegAppTableRecord 1497 | 2 1498 | LibreCad 1499 | 70 1500 | 0 1501 | 0 1502 | ENDTAB 1503 | 0 1504 | TABLE 1505 | 2 1506 | DIMSTYLE 1507 | 5 1508 | A 1509 | 330 1510 | 0 1511 | 100 1512 | AcDbSymbolTable 1513 | 70 1514 | 1 1515 | 100 1516 | AcDbDimStyleTable 1517 | 71 1518 | 1 1519 | 0 1520 | DIMSTYLE 1521 | 105 1522 | 53 1523 | 330 1524 | A 1525 | 100 1526 | AcDbSymbolTableRecord 1527 | 100 1528 | AcDbDimStyleTableRecord 1529 | 2 1530 | Standard 1531 | 70 1532 | 0 1533 | 40 1534 | 1 1535 | 41 1536 | 3.302 1537 | 42 1538 | 1 1539 | 43 1540 | 0.38 1541 | 44 1542 | 1 1543 | 45 1544 | 0 1545 | 46 1546 | 0 1547 | 47 1548 | 0 1549 | 48 1550 | 0 1551 | 49 1552 | 1 1553 | 140 1554 | 3.5 1555 | 141 1556 | 0.09 1557 | 142 1558 | 0 1559 | 143 1560 | 25.4 1561 | 144 1562 | 1 1563 | 145 1564 | 0 1565 | 146 1566 | 1 1567 | 147 1568 | 1.524 1569 | 148 1570 | 0 1571 | 71 1572 | 0 1573 | 72 1574 | 0 1575 | 73 1576 | 1 1577 | 74 1578 | 1 1579 | 75 1580 | 0 1581 | 76 1582 | 0 1583 | 77 1584 | 0 1585 | 78 1586 | 0 1587 | 79 1588 | 0 1589 | 170 1590 | 0 1591 | 171 1592 | 2 1593 | 172 1594 | 0 1595 | 173 1596 | 0 1597 | 174 1598 | 0 1599 | 175 1600 | 0 1601 | 176 1602 | 0 1603 | 177 1604 | 0 1605 | 178 1606 | 0 1607 | 179 1608 | 0 1609 | 271 1610 | 2 1611 | 272 1612 | 4 1613 | 273 1614 | 2 1615 | 274 1616 | 2 1617 | 275 1618 | 0 1619 | 276 1620 | 0 1621 | 277 1622 | 2 1623 | 278 1624 | 44 1625 | 279 1626 | 0 1627 | 280 1628 | 0 1629 | 281 1630 | 0 1631 | 282 1632 | 0 1633 | 283 1634 | 1 1635 | 284 1636 | 0 1637 | 285 1638 | 0 1639 | 286 1640 | 0 1641 | 288 1642 | 0 1643 | 289 1644 | 3 1645 | 340 1646 | Standard 1647 | 341 1648 | 1649 | 371 1650 | -2 1651 | 372 1652 | -2 1653 | 0 1654 | ENDTAB 1655 | 0 1656 | TABLE 1657 | 2 1658 | BLOCK_RECORD 1659 | 5 1660 | 1 1661 | 330 1662 | 0 1663 | 100 1664 | AcDbSymbolTable 1665 | 70 1666 | 2 1667 | 0 1668 | BLOCK_RECORD 1669 | 5 1670 | 1F 1671 | 330 1672 | 1 1673 | 100 1674 | AcDbSymbolTableRecord 1675 | 100 1676 | AcDbBlockTableRecord 1677 | 2 1678 | *Model_Space 1679 | 70 1680 | 0 1681 | 280 1682 | 1 1683 | 281 1684 | 0 1685 | 0 1686 | BLOCK_RECORD 1687 | 5 1688 | 1E 1689 | 330 1690 | 1 1691 | 100 1692 | AcDbSymbolTableRecord 1693 | 100 1694 | AcDbBlockTableRecord 1695 | 2 1696 | *Paper_Space 1697 | 70 1698 | 0 1699 | 280 1700 | 1 1701 | 281 1702 | 0 1703 | 0 1704 | ENDTAB 1705 | 0 1706 | ENDSEC 1707 | 0 1708 | SECTION 1709 | 2 1710 | BLOCKS 1711 | 0 1712 | BLOCK 1713 | 5 1714 | 20 1715 | 330 1716 | 1F 1717 | 100 1718 | AcDbEntity 1719 | 8 1720 | 0 1721 | 100 1722 | AcDbBlockBegin 1723 | 2 1724 | *Model_Space 1725 | 70 1726 | 0 1727 | 10 1728 | 0.0 1729 | 20 1730 | 0.0 1731 | 30 1732 | 0.0 1733 | 3 1734 | *Model_Space 1735 | 1 1736 | 1737 | 0 1738 | ENDBLK 1739 | 5 1740 | 21 1741 | 330 1742 | 1F 1743 | 100 1744 | AcDbEntity 1745 | 8 1746 | 0 1747 | 100 1748 | AcDbBlockEnd 1749 | 0 1750 | BLOCK 1751 | 5 1752 | 1C 1753 | 330 1754 | 1B 1755 | 100 1756 | AcDbEntity 1757 | 8 1758 | 0 1759 | 100 1760 | AcDbBlockBegin 1761 | 2 1762 | *Paper_Space 1763 | 70 1764 | 0 1765 | 10 1766 | 0.0 1767 | 20 1768 | 0.0 1769 | 30 1770 | 0.0 1771 | 3 1772 | *Paper_Space 1773 | 1 1774 | 1775 | 0 1776 | ENDBLK 1777 | 5 1778 | 1D 1779 | 330 1780 | 1F 1781 | 100 1782 | AcDbEntity 1783 | 8 1784 | 0 1785 | 100 1786 | AcDbBlockEnd 1787 | 0 1788 | ENDSEC 1789 | 0 1790 | SECTION 1791 | 2 1792 | ENTITIES 1793 | 0 1794 | CIRCLE 1795 | 5 1796 | 508 1797 | 100 1798 | AcDbEntity 1799 | 8 1800 | 0 1801 | 100 1802 | AcDbCircle 1803 | 10 1804 | 0 1805 | 20 1806 | 0 1807 | 30 1808 | 0 1809 | 40 1810 | 33 1811 | 0 1812 | LWPOLYLINE 1813 | 5 1814 | 509 1815 | 100 1816 | AcDbEntity 1817 | 8 1818 | poly 1819 | 100 1820 | AcDbPolyline 1821 | 90 1822 | 9 1823 | 70 1824 | 0 1825 | 43 1826 | 0 1827 | 38 1828 | 0 1829 | 39 1830 | 0 1831 | 10 1832 | 100 1833 | 20 1834 | 100 1835 | 10 1836 | 100 1837 | 20 1838 | 50 1839 | 10 1840 | 50 1841 | 20 1842 | 50 1843 | 10 1844 | 50 1845 | 20 1846 | 100 1847 | 10 1848 | 30 1849 | 20 1850 | 100 1851 | 10 1852 | 30 1853 | 20 1854 | 40 1855 | 10 1856 | 35 1857 | 20 1858 | 40 1859 | 10 1860 | 35 1861 | 20 1862 | 20 1863 | 0 1864 | ENDSEC 1865 | 0 1866 | SECTION 1867 | 2 1868 | OBJECTS 1869 | 0 1870 | DICTIONARY 1871 | 5 1872 | C 1873 | 330 1874 | 0 1875 | 100 1876 | AcDbDictionary 1877 | 281 1878 | 1 1879 | 3 1880 | ACAD_GROUP 1881 | 350 1882 | D 1883 | 0 1884 | DICTIONARY 1885 | 5 1886 | D 1887 | 330 1888 | C 1889 | 100 1890 | AcDbDictionary 1891 | 281 1892 | 1 1893 | 0 1894 | ENDSEC 1895 | 0 1896 | EOF 1897 | -------------------------------------------------------------------------------- /demo/demo1.dxf: -------------------------------------------------------------------------------- 1 | 0 2 | SECTION 3 | 2 4 | HEADER 5 | 9 6 | $ACADVER 7 | 1 8 | AC1021 9 | 9 10 | $DWGCODEPAGE 11 | 3 12 | ANSI_1252 13 | 9 14 | $INSBASE 15 | 10 16 | 0 17 | 20 18 | 0 19 | 30 20 | 0 21 | 9 22 | $EXTMIN 23 | 10 24 | -35 25 | 20 26 | -30 27 | 30 28 | 0 29 | 9 30 | $EXTMAX 31 | 10 32 | 35 33 | 20 34 | 30 35 | 30 36 | 0 37 | 9 38 | $LIMMIN 39 | 10 40 | 0 41 | 20 42 | 0 43 | 9 44 | $LIMMAX 45 | 10 46 | 420 47 | 20 48 | 297 49 | 9 50 | $ORTHOMODE 51 | 70 52 | 0 53 | 9 54 | $REGENMODE 55 | 70 56 | 1 57 | 9 58 | $FILLMODE 59 | 70 60 | 1 61 | 9 62 | $QTEXTMODE 63 | 70 64 | 0 65 | 9 66 | $MIRRTEXT 67 | 70 68 | 1 69 | 9 70 | $LTSCALE 71 | 40 72 | 1 73 | 9 74 | $ATTMODE 75 | 70 76 | 1 77 | 9 78 | $TEXTSIZE 79 | 40 80 | 3.5 81 | 9 82 | $TRACEWID 83 | 40 84 | 1 85 | 9 86 | $TEXTSTYLE 87 | 7 88 | Standard 89 | 9 90 | $CLAYER 91 | 8 92 | red 93 | 9 94 | $CELTYPE 95 | 6 96 | ByLayer 97 | 9 98 | $CECOLOR 99 | 62 100 | 256 101 | 9 102 | $CELTSCALE 103 | 40 104 | 1 105 | 9 106 | $DISPSILH 107 | 70 108 | 0 109 | 9 110 | $DIMSCALE 111 | 40 112 | 1 113 | 9 114 | $DIMASZ 115 | 40 116 | 3.302 117 | 9 118 | $DIMEXO 119 | 40 120 | 1 121 | 9 122 | $DIMDLI 123 | 40 124 | 3.75 125 | 9 126 | $DIMRND 127 | 40 128 | 0 129 | 9 130 | $DIMDLE 131 | 40 132 | 0 133 | 9 134 | $DIMEXE 135 | 40 136 | 1 137 | 9 138 | $DIMTP 139 | 40 140 | 0 141 | 9 142 | $DIMTM 143 | 40 144 | 0 145 | 9 146 | $DIMTXT 147 | 40 148 | 3.5 149 | 9 150 | $DIMCEN 151 | 40 152 | 2.5 153 | 9 154 | $DIMTSZ 155 | 40 156 | 0 157 | 9 158 | $DIMTOL 159 | 70 160 | 0 161 | 9 162 | $DIMLIM 163 | 70 164 | 0 165 | 9 166 | $DIMTIH 167 | 70 168 | 1 169 | 9 170 | $DIMTOH 171 | 70 172 | 1 173 | 9 174 | $DIMSE1 175 | 70 176 | 0 177 | 9 178 | $DIMSE2 179 | 70 180 | 0 181 | 9 182 | $DIMTAD 183 | 70 184 | 1 185 | 9 186 | $DIMZIN 187 | 70 188 | 0 189 | 9 190 | $DIMBLK 191 | 1 192 | 193 | 9 194 | $DIMASO 195 | 70 196 | 1 197 | 9 198 | $DIMSHO 199 | 70 200 | 1 201 | 9 202 | $DIMPOST 203 | 1 204 | 205 | 9 206 | $DIMAPOST 207 | 1 208 | 209 | 9 210 | $DIMALT 211 | 70 212 | 0 213 | 9 214 | $DIMALTD 215 | 70 216 | 3 217 | 9 218 | $DIMALTF 219 | 40 220 | 0.0393700787 221 | 9 222 | $DIMLFAC 223 | 40 224 | 1 225 | 9 226 | $DIMTOFL 227 | 70 228 | 1 229 | 9 230 | $DIMTVP 231 | 40 232 | 0 233 | 9 234 | $DIMTIX 235 | 70 236 | 0 237 | 9 238 | $DIMSOXD 239 | 70 240 | 0 241 | 9 242 | $DIMSAH 243 | 70 244 | 0 245 | 9 246 | $DIMBLK1 247 | 1 248 | 249 | 9 250 | $DIMBLK2 251 | 1 252 | 253 | 9 254 | $DIMSTYLE 255 | 2 256 | ISO-25 257 | 9 258 | $DIMCLRD 259 | 70 260 | 0 261 | 9 262 | $DIMCLRE 263 | 70 264 | 0 265 | 9 266 | $DIMCLRT 267 | 70 268 | 0 269 | 9 270 | $DIMTFAC 271 | 40 272 | 1 273 | 9 274 | $DIMGAP 275 | 40 276 | 1.524 277 | 9 278 | $DIMJUST 279 | 70 280 | 0 281 | 9 282 | $DIMSD1 283 | 70 284 | 0 285 | 9 286 | $DIMSD2 287 | 70 288 | 0 289 | 9 290 | $DIMTOLJ 291 | 70 292 | 0 293 | 9 294 | $DIMTZIN 295 | 70 296 | 0 297 | 9 298 | $DIMALTZ 299 | 70 300 | 0 301 | 9 302 | $DIMALTTZ 303 | 70 304 | 0 305 | 9 306 | $DIMUPT 307 | 70 308 | 0 309 | 9 310 | $DIMDEC 311 | 70 312 | 2 313 | 9 314 | $DIMTDEC 315 | 70 316 | 2 317 | 9 318 | $DIMALTU 319 | 70 320 | 2 321 | 9 322 | $DIMALTTD 323 | 70 324 | 3 325 | 9 326 | $DIMTXSTY 327 | 7 328 | Standard 329 | 9 330 | $DIMAUNIT 331 | 70 332 | 0 333 | 9 334 | $DIMADEC 335 | 70 336 | 0 337 | 9 338 | $DIMALTRND 339 | 40 340 | 0 341 | 9 342 | $DIMAZIN 343 | 70 344 | 0 345 | 9 346 | $DIMDSEP 347 | 70 348 | 44 349 | 9 350 | $DIMATFIT 351 | 70 352 | 3 353 | 9 354 | $DIMFRAC 355 | 70 356 | 0 357 | 9 358 | $DIMLDRBLK 359 | 1 360 | 361 | 9 362 | $DIMLUNIT 363 | 70 364 | 2 365 | 9 366 | $DIMLWD 367 | 70 368 | -2 369 | 9 370 | $DIMLWE 371 | 70 372 | -2 373 | 9 374 | $DIMTMOVE 375 | 70 376 | 0 377 | 9 378 | $DIMFXL 379 | 40 380 | 1 381 | 9 382 | $DIMFXLON 383 | 70 384 | 0 385 | 9 386 | $DIMJOGANG 387 | 40 388 | 0.7854 389 | 9 390 | $DIMTFILL 391 | 70 392 | 0 393 | 9 394 | $DIMTFILLCLR 395 | 70 396 | 0 397 | 9 398 | $DIMARCSYM 399 | 70 400 | 0 401 | 9 402 | $DIMLTYPE 403 | 6 404 | 405 | 9 406 | $DIMLTEX1 407 | 6 408 | 409 | 9 410 | $DIMLTEX2 411 | 6 412 | 413 | 9 414 | $LUNITS 415 | 70 416 | 2 417 | 9 418 | $LUPREC 419 | 70 420 | 2 421 | 9 422 | $SKETCHINC 423 | 40 424 | 1 425 | 9 426 | $FILLETRAD 427 | 40 428 | 10 429 | 9 430 | $AUNITS 431 | 70 432 | 0 433 | 9 434 | $AUPREC 435 | 70 436 | 2 437 | 9 438 | $MENU 439 | 1 440 | . 441 | 9 442 | $ELEVATION 443 | 40 444 | 0 445 | 9 446 | $PELEVATION 447 | 40 448 | 0 449 | 9 450 | $THICKNESS 451 | 40 452 | 0 453 | 9 454 | $LIMCHECK 455 | 70 456 | 0 457 | 9 458 | $CHAMFERA 459 | 40 460 | 0 461 | 9 462 | $CHAMFERB 463 | 40 464 | 0 465 | 9 466 | $CHAMFERC 467 | 40 468 | 0 469 | 9 470 | $CHAMFERD 471 | 40 472 | 0 473 | 9 474 | $SKPOLY 475 | 70 476 | 0 477 | 9 478 | $USRTIMER 479 | 70 480 | 1 481 | 9 482 | $ANGBASE 483 | 50 484 | 0 485 | 9 486 | $ANGDIR 487 | 70 488 | 0 489 | 9 490 | $PDMODE 491 | 70 492 | 0 493 | 9 494 | $PDSIZE 495 | 40 496 | -1 497 | 9 498 | $PLINEWID 499 | 40 500 | 0 501 | 9 502 | $SPLFRAME 503 | 70 504 | 0 505 | 9 506 | $SPLINETYPE 507 | 70 508 | 6 509 | 9 510 | $SPLINESEGS 511 | 70 512 | 8 513 | 9 514 | $HANDSEED 515 | 5 516 | 20000 517 | 9 518 | $SURFTAB1 519 | 70 520 | 6 521 | 9 522 | $SURFTAB2 523 | 70 524 | 6 525 | 9 526 | $SURFTYPE 527 | 70 528 | 6 529 | 9 530 | $SURFU 531 | 70 532 | 6 533 | 9 534 | $SURFV 535 | 70 536 | 6 537 | 9 538 | $UCSBASE 539 | 2 540 | 541 | 9 542 | $UCSNAME 543 | 2 544 | 545 | 9 546 | $UCSORG 547 | 10 548 | 0 549 | 20 550 | 0 551 | 30 552 | 0 553 | 9 554 | $UCSXDIR 555 | 10 556 | 1 557 | 20 558 | 0 559 | 30 560 | 0 561 | 9 562 | $UCSYDIR 563 | 10 564 | 0 565 | 20 566 | 1 567 | 30 568 | 0 569 | 9 570 | $UCSORTHOREF 571 | 2 572 | 573 | 9 574 | $UCSORTHOVIEW 575 | 70 576 | 0 577 | 9 578 | $UCSORGTOP 579 | 10 580 | 0 581 | 20 582 | 0 583 | 30 584 | 0 585 | 9 586 | $UCSORGBOTTOM 587 | 10 588 | 0 589 | 20 590 | 0 591 | 30 592 | 0 593 | 9 594 | $UCSORGLEFT 595 | 10 596 | 0 597 | 20 598 | 0 599 | 30 600 | 0 601 | 9 602 | $UCSORGRIGHT 603 | 10 604 | 0 605 | 20 606 | 0 607 | 30 608 | 0 609 | 9 610 | $UCSORGFRONT 611 | 10 612 | 0 613 | 20 614 | 0 615 | 30 616 | 0 617 | 9 618 | $UCSORGBACK 619 | 10 620 | 0 621 | 20 622 | 0 623 | 30 624 | 0 625 | 9 626 | $PUCSBASE 627 | 2 628 | 629 | 9 630 | $PUCSNAME 631 | 2 632 | 633 | 9 634 | $PUCSORG 635 | 10 636 | 0 637 | 20 638 | 0 639 | 30 640 | 0 641 | 9 642 | $PUCSXDIR 643 | 10 644 | 1 645 | 20 646 | 0 647 | 30 648 | 0 649 | 9 650 | $PUCSYDIR 651 | 10 652 | 0 653 | 20 654 | 1 655 | 30 656 | 0 657 | 9 658 | $PUCSORTHOREF 659 | 2 660 | 661 | 9 662 | $PUCSORTHOVIEW 663 | 70 664 | 0 665 | 9 666 | $PUCSORGTOP 667 | 10 668 | 0 669 | 20 670 | 0 671 | 30 672 | 0 673 | 9 674 | $PUCSORGBOTTOM 675 | 10 676 | 0 677 | 20 678 | 0 679 | 30 680 | 0 681 | 9 682 | $PUCSORGLEFT 683 | 10 684 | 0 685 | 20 686 | 0 687 | 30 688 | 0 689 | 9 690 | $PUCSORGRIGHT 691 | 10 692 | 0 693 | 20 694 | 0 695 | 30 696 | 0 697 | 9 698 | $PUCSORGFRONT 699 | 10 700 | 0 701 | 20 702 | 0 703 | 30 704 | 0 705 | 9 706 | $PUCSORGBACK 707 | 10 708 | 0 709 | 20 710 | 0 711 | 30 712 | 0 713 | 9 714 | $USERI1 715 | 70 716 | 0 717 | 9 718 | $USERI2 719 | 70 720 | 0 721 | 9 722 | $USERI3 723 | 70 724 | 0 725 | 9 726 | $USERI4 727 | 70 728 | 0 729 | 9 730 | $USERI5 731 | 70 732 | 0 733 | 9 734 | $USERR1 735 | 40 736 | 0 737 | 9 738 | $USERR2 739 | 40 740 | 0 741 | 9 742 | $USERR3 743 | 40 744 | 0 745 | 9 746 | $USERR4 747 | 40 748 | 0 749 | 9 750 | $USERR5 751 | 40 752 | 0 753 | 9 754 | $WORLDVIEW 755 | 70 756 | 1 757 | 9 758 | $SHADEDGE 759 | 70 760 | 3 761 | 9 762 | $SHADEDIF 763 | 70 764 | 70 765 | 9 766 | $TILEMODE 767 | 70 768 | 1 769 | 9 770 | $MAXACTVP 771 | 70 772 | 64 773 | 9 774 | $PINSBASE 775 | 10 776 | 0 777 | 20 778 | 0 779 | 30 780 | 0 781 | 9 782 | $PLIMCHECK 783 | 70 784 | 0 785 | 9 786 | $PEXTMIN 787 | 10 788 | 1e+20 789 | 20 790 | 1e+20 791 | 30 792 | 1e+20 793 | 9 794 | $PEXTMAX 795 | 10 796 | -1e+20 797 | 20 798 | -1e+20 799 | 30 800 | -1e+20 801 | 9 802 | $GRIDMODE 803 | 70 804 | 0 805 | 9 806 | $SNAPSTYLE 807 | 70 808 | 0 809 | 9 810 | $PLIMMIN 811 | 10 812 | 0 813 | 20 814 | 0 815 | 9 816 | $PLIMMAX 817 | 10 818 | 420 819 | 20 820 | 297 821 | 9 822 | $UNITMODE 823 | 70 824 | 0 825 | 9 826 | $VISRETAIN 827 | 70 828 | 1 829 | 9 830 | $PLINEGEN 831 | 70 832 | 0 833 | 9 834 | $PSLTSCALE 835 | 70 836 | 1 837 | 9 838 | $TREEDEPTH 839 | 70 840 | 3020 841 | 9 842 | $CMLSTYLE 843 | 2 844 | Standard 845 | 9 846 | $CMLJUST 847 | 70 848 | 0 849 | 9 850 | $CMLSCALE 851 | 40 852 | 20 853 | 9 854 | $PROXYGRAPHICS 855 | 70 856 | 1 857 | 9 858 | $MEASUREMENT 859 | 70 860 | 1 861 | 9 862 | $CELWEIGHT 863 | 370 864 | -1 865 | 9 866 | $ENDCAPS 867 | 280 868 | 0 869 | 9 870 | $JOINSTYLE 871 | 280 872 | 0 873 | 9 874 | $LWDISPLAY 875 | 290 876 | 1 877 | 9 878 | $INSUNITS 879 | 70 880 | 4 881 | 9 882 | $HYPERLINKBASE 883 | 1 884 | 885 | 9 886 | $STYLESHEET 887 | 1 888 | 889 | 9 890 | $XEDIT 891 | 290 892 | 1 893 | 9 894 | $CEPSNTYPE 895 | 380 896 | 0 897 | 9 898 | $PSTYLEMODE 899 | 290 900 | 1 901 | 9 902 | $EXTNAMES 903 | 290 904 | 1 905 | 9 906 | $PSVPSCALE 907 | 40 908 | 0 909 | 9 910 | $OLESTARTUP 911 | 290 912 | 0 913 | 9 914 | $SORTENTS 915 | 280 916 | 127 917 | 9 918 | $INDEXCTL 919 | 280 920 | 0 921 | 9 922 | $HIDETEXT 923 | 280 924 | 1 925 | 9 926 | $XCLIPFRAME 927 | 290 928 | 0 929 | 9 930 | $HALOGAP 931 | 280 932 | 0 933 | 9 934 | $OBSCOLOR 935 | 70 936 | 257 937 | 9 938 | $OBSLTYPE 939 | 280 940 | 0 941 | 9 942 | $INTERSECTIONDISPLAY 943 | 280 944 | 0 945 | 9 946 | $INTERSECTIONCOLOR 947 | 70 948 | 257 949 | 9 950 | $DIMASSOC 951 | 280 952 | 1 953 | 9 954 | $PROJECTNAME 955 | 1 956 | 957 | 9 958 | $CAMERADISPLAY 959 | 290 960 | 0 961 | 9 962 | $LENSLENGTH 963 | 40 964 | 50 965 | 9 966 | $CAMERAHEIGHT 967 | 40 968 | 0 969 | 9 970 | $STEPSPERSEC 971 | 40 972 | 2 973 | 9 974 | $STEPSIZE 975 | 40 976 | 50 977 | 9 978 | $3DDWFPREC 979 | 40 980 | 2 981 | 9 982 | $PSOLWIDTH 983 | 40 984 | 5 985 | 9 986 | $PSOLHEIGHT 987 | 40 988 | 80 989 | 9 990 | $LOFTANG1 991 | 40 992 | 1.570796326794897 993 | 9 994 | $LOFTANG2 995 | 40 996 | 1.570796326794897 997 | 9 998 | $LOFTMAG1 999 | 40 1000 | 0 1001 | 9 1002 | $LOFTMAG2 1003 | 40 1004 | 0 1005 | 9 1006 | $LOFTPARAM 1007 | 70 1008 | 7 1009 | 9 1010 | $LOFTNORMALS 1011 | 280 1012 | 1 1013 | 9 1014 | $LATITUDE 1015 | 40 1016 | 1 1017 | 9 1018 | $LONGITUDE 1019 | 40 1020 | 1 1021 | 9 1022 | $NORTHDIRECTION 1023 | 40 1024 | 0 1025 | 9 1026 | $TIMEZONE 1027 | 70 1028 | -8000 1029 | 9 1030 | $LIGHTGLYPHDISPLAY 1031 | 280 1032 | 1 1033 | 9 1034 | $TILEMODELIGHTSYNCH 1035 | 280 1036 | 1 1037 | 9 1038 | $SOLIDHIST 1039 | 280 1040 | 1 1041 | 9 1042 | $SHOWHIST 1043 | 280 1044 | 1 1045 | 9 1046 | $DWFFRAME 1047 | 280 1048 | 2 1049 | 9 1050 | $DGNFRAME 1051 | 280 1052 | 0 1053 | 9 1054 | $REALWORLDSCALE 1055 | 290 1056 | 1 1057 | 9 1058 | $INTERFERECOLOR 1059 | 62 1060 | 1 1061 | 9 1062 | $CSHADOW 1063 | 280 1064 | 0 1065 | 9 1066 | $SHADOWPLANELOCATION 1067 | 40 1068 | 0 1069 | 0 1070 | ENDSEC 1071 | 0 1072 | SECTION 1073 | 2 1074 | CLASSES 1075 | 0 1076 | CLASS 1077 | 1 1078 | RASTERVARIABLES 1079 | 2 1080 | AcDbRasterVariables 1081 | 3 1082 | ISM 1083 | 90 1084 | 32768 1085 | 280 1086 | 0 1087 | 281 1088 | 0 1089 | 0 1090 | CLASS 1091 | 1 1092 | IMAGEDEF 1093 | 2 1094 | AcDbRasterImageDef 1095 | 3 1096 | ISM 1097 | 90 1098 | 32768 1099 | 280 1100 | 0 1101 | 281 1102 | 0 1103 | 0 1104 | CLASS 1105 | 1 1106 | IMAGE 1107 | 2 1108 | AcDbRasterImage 1109 | 3 1110 | ISM 1111 | 90 1112 | 32895 1113 | 280 1114 | 0 1115 | 281 1116 | 1 1117 | 0 1118 | CLASS 1119 | 1 1120 | IMAGEDEF_REACTOR 1121 | 2 1122 | AcDbRasterImageDefReactor 1123 | 3 1124 | ISM 1125 | 90 1126 | 32769 1127 | 280 1128 | 0 1129 | 281 1130 | 0 1131 | 0 1132 | ENDSEC 1133 | 0 1134 | SECTION 1135 | 2 1136 | TABLES 1137 | 0 1138 | TABLE 1139 | 2 1140 | VPORT 1141 | 5 1142 | 8 1143 | 330 1144 | 0 1145 | 100 1146 | AcDbSymbolTable 1147 | 70 1148 | 1 1149 | 0 1150 | VPORT 1151 | 5 1152 | 31 1153 | 330 1154 | 2 1155 | 100 1156 | AcDbSymbolTableRecord 1157 | 100 1158 | AcDbViewportTableRecord 1159 | 2 1160 | *ACTIVE 1161 | 70 1162 | 0 1163 | 10 1164 | 0 1165 | 20 1166 | 0 1167 | 11 1168 | 1 1169 | 21 1170 | 1 1171 | 12 1172 | 44.22616565550683 1173 | 22 1174 | 23.67269572240605 1175 | 13 1176 | 0 1177 | 23 1178 | 0 1179 | 14 1180 | 10 1181 | 24 1182 | 10 1183 | 15 1184 | 10 1185 | 25 1186 | 10 1187 | 16 1188 | 0 1189 | 26 1190 | 0 1191 | 36 1192 | 1 1193 | 17 1194 | 0 1195 | 27 1196 | 0 1197 | 37 1198 | 0 1199 | 40 1200 | 89.12073683729336 1201 | 41 1202 | 1.97625 1203 | 42 1204 | 50 1205 | 43 1206 | 0 1207 | 44 1208 | 0 1209 | 50 1210 | 0 1211 | 51 1212 | 0 1213 | 71 1214 | 0 1215 | 72 1216 | 100 1217 | 73 1218 | 1 1219 | 74 1220 | 3 1221 | 75 1222 | 0 1223 | 76 1224 | 0 1225 | 77 1226 | 0 1227 | 78 1228 | 0 1229 | 281 1230 | 0 1231 | 65 1232 | 1 1233 | 110 1234 | 0 1235 | 120 1236 | 0 1237 | 130 1238 | 0 1239 | 111 1240 | 1 1241 | 121 1242 | 0 1243 | 131 1244 | 0 1245 | 112 1246 | 0 1247 | 122 1248 | 1 1249 | 132 1250 | 0 1251 | 79 1252 | 0 1253 | 146 1254 | 0 1255 | 348 1256 | 10020 1257 | 60 1258 | 7 1259 | 61 1260 | 5 1261 | 292 1262 | 1 1263 | 282 1264 | 1 1265 | 141 1266 | 0 1267 | 142 1268 | 0 1269 | 63 1270 | 250 1271 | 421 1272 | 3358443 1273 | 0 1274 | ENDTAB 1275 | 0 1276 | TABLE 1277 | 2 1278 | LTYPE 1279 | 5 1280 | 506 1281 | 330 1282 | 0 1283 | 100 1284 | AcDbSymbolTable 1285 | 70 1286 | 4 1287 | 0 1288 | LTYPE 1289 | 5 1290 | 507 1291 | 330 1292 | 506 1293 | 100 1294 | AcDbSymbolTableRecord 1295 | 100 1296 | AcDbLinetypeTableRecord 1297 | 2 1298 | ByBlock 1299 | 70 1300 | 0 1301 | 3 1302 | 1303 | 72 1304 | 65 1305 | 73 1306 | 0 1307 | 40 1308 | 0 1309 | 0 1310 | LTYPE 1311 | 5 1312 | 508 1313 | 330 1314 | 506 1315 | 100 1316 | AcDbSymbolTableRecord 1317 | 100 1318 | AcDbLinetypeTableRecord 1319 | 2 1320 | ByLayer 1321 | 70 1322 | 0 1323 | 3 1324 | 1325 | 72 1326 | 65 1327 | 73 1328 | 0 1329 | 40 1330 | 0 1331 | 0 1332 | LTYPE 1333 | 5 1334 | 509 1335 | 330 1336 | 506 1337 | 100 1338 | AcDbSymbolTableRecord 1339 | 100 1340 | AcDbLinetypeTableRecord 1341 | 2 1342 | CONTINUOUS 1343 | 70 1344 | 64 1345 | 3 1346 | Solid line 1347 | 72 1348 | 65 1349 | 73 1350 | 0 1351 | 40 1352 | 0.0 1353 | 0 1354 | LTYPE 1355 | 5 1356 | 50a 1357 | 330 1358 | 506 1359 | 100 1360 | AcDbSymbolTableRecord 1361 | 100 1362 | AcDbLinetypeTableRecord 1363 | 2 1364 | DASHDOT 1365 | 70 1366 | 64 1367 | 3 1368 | Dash dot __ . __ . __ . __ . __ . __ . __ . __ 1369 | 72 1370 | 65 1371 | 73 1372 | 4 1373 | 40 1374 | 25.4 1375 | 49 1376 | 12.7 1377 | 74 1378 | 0 1379 | 49 1380 | -6.35 1381 | 74 1382 | 0 1383 | 49 1384 | 0 1385 | 74 1386 | 0 1387 | 49 1388 | -6.35 1389 | 74 1390 | 0 1391 | 0 1392 | ENDTAB 1393 | 0 1394 | TABLE 1395 | 2 1396 | LAYER 1397 | 5 1398 | 50b 1399 | 330 1400 | 0 1401 | 100 1402 | AcDbSymbolTable 1403 | 70 1404 | 1 1405 | 0 1406 | LAYER 1407 | 5 1408 | 50c 1409 | 330 1410 | 50b 1411 | 100 1412 | AcDbSymbolTableRecord 1413 | 100 1414 | AcDbLayerTableRecord 1415 | 2 1416 | 0 1417 | 70 1418 | 64 1419 | 62 1420 | 8 1421 | 6 1422 | CONTINUOUS 1423 | 390 1424 | F 1425 | 0 1426 | LAYER 1427 | 5 1428 | 50d 1429 | 330 1430 | 50b 1431 | 100 1432 | AcDbSymbolTableRecord 1433 | 100 1434 | AcDbLayerTableRecord 1435 | 2 1436 | cyan 1437 | 70 1438 | 64 1439 | 62 1440 | 4 1441 | 6 1442 | CONTINUOUS 1443 | 390 1444 | F 1445 | 0 1446 | LAYER 1447 | 5 1448 | 50e 1449 | 330 1450 | 50b 1451 | 100 1452 | AcDbSymbolTableRecord 1453 | 100 1454 | AcDbLayerTableRecord 1455 | 2 1456 | blue 1457 | 70 1458 | 64 1459 | 62 1460 | 5 1461 | 6 1462 | DASHDOT 1463 | 390 1464 | F 1465 | 0 1466 | LAYER 1467 | 5 1468 | 50f 1469 | 330 1470 | 50b 1471 | 100 1472 | AcDbSymbolTableRecord 1473 | 100 1474 | AcDbLayerTableRecord 1475 | 2 1476 | custom 1477 | 70 1478 | 64 1479 | 62 1480 | 150 1481 | 6 1482 | CONTINUOUS 1483 | 390 1484 | F 1485 | 0 1486 | LAYER 1487 | 5 1488 | 510 1489 | 330 1490 | 50b 1491 | 100 1492 | AcDbSymbolTableRecord 1493 | 100 1494 | AcDbLayerTableRecord 1495 | 2 1496 | red 1497 | 70 1498 | 64 1499 | 62 1500 | 1 1501 | 6 1502 | CONTINUOUS 1503 | 390 1504 | F 1505 | 0 1506 | LAYER 1507 | 5 1508 | 511 1509 | 330 1510 | 50b 1511 | 100 1512 | AcDbSymbolTableRecord 1513 | 100 1514 | AcDbLayerTableRecord 1515 | 2 1516 | magenta 1517 | 70 1518 | 64 1519 | 62 1520 | 6 1521 | 6 1522 | CONTINUOUS 1523 | 390 1524 | F 1525 | 0 1526 | LAYER 1527 | 5 1528 | 512 1529 | 330 1530 | 50b 1531 | 100 1532 | AcDbSymbolTableRecord 1533 | 100 1534 | AcDbLayerTableRecord 1535 | 2 1536 | black 1537 | 70 1538 | 64 1539 | 62 1540 | 8 1541 | 6 1542 | CONTINUOUS 1543 | 390 1544 | F 1545 | 0 1546 | ENDTAB 1547 | 0 1548 | TABLE 1549 | 2 1550 | STYLE 1551 | 5 1552 | 3 1553 | 330 1554 | 0 1555 | 100 1556 | AcDbSymbolTable 1557 | 70 1558 | 3 1559 | 0 1560 | STYLE 1561 | 5 1562 | 51 1563 | 330 1564 | 2 1565 | 100 1566 | AcDbSymbolTableRecord 1567 | 100 1568 | AcDbTextStyleTableRecord 1569 | 2 1570 | Standard 1571 | 70 1572 | 0 1573 | 40 1574 | 0 1575 | 41 1576 | 1 1577 | 50 1578 | 0 1579 | 71 1580 | 0 1581 | 42 1582 | 1 1583 | 3 1584 | txt 1585 | 4 1586 | 1587 | 0 1588 | ENDTAB 1589 | 0 1590 | TABLE 1591 | 2 1592 | VIEW 1593 | 5 1594 | 6 1595 | 330 1596 | 0 1597 | 100 1598 | AcDbSymbolTable 1599 | 70 1600 | 0 1601 | 0 1602 | ENDTAB 1603 | 0 1604 | TABLE 1605 | 2 1606 | UCS 1607 | 5 1608 | 7 1609 | 330 1610 | 0 1611 | 100 1612 | AcDbSymbolTable 1613 | 70 1614 | 0 1615 | 0 1616 | ENDTAB 1617 | 0 1618 | TABLE 1619 | 2 1620 | APPID 1621 | 5 1622 | 9 1623 | 330 1624 | 0 1625 | 100 1626 | AcDbSymbolTable 1627 | 70 1628 | 1 1629 | 0 1630 | APPID 1631 | 5 1632 | 12 1633 | 330 1634 | 9 1635 | 100 1636 | AcDbSymbolTableRecord 1637 | 100 1638 | AcDbRegAppTableRecord 1639 | 2 1640 | ACAD 1641 | 70 1642 | 0 1643 | 0 1644 | APPID 1645 | 5 1646 | 52 1647 | 330 1648 | 9 1649 | 100 1650 | AcDbSymbolTableRecord 1651 | 100 1652 | AcDbRegAppTableRecord 1653 | 2 1654 | LibreCad 1655 | 70 1656 | 0 1657 | 0 1658 | ENDTAB 1659 | 0 1660 | TABLE 1661 | 2 1662 | DIMSTYLE 1663 | 5 1664 | A 1665 | 330 1666 | 0 1667 | 100 1668 | AcDbSymbolTable 1669 | 70 1670 | 1 1671 | 100 1672 | AcDbDimStyleTable 1673 | 71 1674 | 1 1675 | 0 1676 | DIMSTYLE 1677 | 105 1678 | 53 1679 | 330 1680 | A 1681 | 100 1682 | AcDbSymbolTableRecord 1683 | 100 1684 | AcDbDimStyleTableRecord 1685 | 2 1686 | Standard 1687 | 70 1688 | 0 1689 | 40 1690 | 1 1691 | 41 1692 | 3.302 1693 | 42 1694 | 1 1695 | 43 1696 | 0.38 1697 | 44 1698 | 1 1699 | 45 1700 | 0 1701 | 46 1702 | 0 1703 | 47 1704 | 0 1705 | 48 1706 | 0 1707 | 49 1708 | 1 1709 | 140 1710 | 3.5 1711 | 141 1712 | 0.09 1713 | 142 1714 | 0 1715 | 143 1716 | 25.4 1717 | 144 1718 | 1 1719 | 145 1720 | 0 1721 | 146 1722 | 1 1723 | 147 1724 | 1.524 1725 | 148 1726 | 0 1727 | 71 1728 | 0 1729 | 72 1730 | 0 1731 | 73 1732 | 1 1733 | 74 1734 | 1 1735 | 75 1736 | 0 1737 | 76 1738 | 0 1739 | 77 1740 | 0 1741 | 78 1742 | 0 1743 | 79 1744 | 0 1745 | 170 1746 | 0 1747 | 171 1748 | 2 1749 | 172 1750 | 0 1751 | 173 1752 | 0 1753 | 174 1754 | 0 1755 | 175 1756 | 0 1757 | 176 1758 | 0 1759 | 177 1760 | 0 1761 | 178 1762 | 0 1763 | 179 1764 | 0 1765 | 271 1766 | 2 1767 | 272 1768 | 4 1769 | 273 1770 | 2 1771 | 274 1772 | 2 1773 | 275 1774 | 0 1775 | 276 1776 | 0 1777 | 277 1778 | 2 1779 | 278 1780 | 44 1781 | 279 1782 | 0 1783 | 280 1784 | 0 1785 | 281 1786 | 0 1787 | 282 1788 | 0 1789 | 283 1790 | 1 1791 | 284 1792 | 0 1793 | 285 1794 | 0 1795 | 286 1796 | 0 1797 | 288 1798 | 0 1799 | 289 1800 | 3 1801 | 340 1802 | Standard 1803 | 341 1804 | 1805 | 371 1806 | -2 1807 | 372 1808 | -2 1809 | 0 1810 | ENDTAB 1811 | 0 1812 | TABLE 1813 | 2 1814 | BLOCK_RECORD 1815 | 5 1816 | 1 1817 | 330 1818 | 0 1819 | 100 1820 | AcDbSymbolTable 1821 | 70 1822 | 2 1823 | 0 1824 | BLOCK_RECORD 1825 | 5 1826 | 1F 1827 | 330 1828 | 1 1829 | 100 1830 | AcDbSymbolTableRecord 1831 | 100 1832 | AcDbBlockTableRecord 1833 | 2 1834 | *Model_Space 1835 | 70 1836 | 0 1837 | 280 1838 | 1 1839 | 281 1840 | 0 1841 | 0 1842 | BLOCK_RECORD 1843 | 5 1844 | 1E 1845 | 330 1846 | 1 1847 | 100 1848 | AcDbSymbolTableRecord 1849 | 100 1850 | AcDbBlockTableRecord 1851 | 2 1852 | *Paper_Space 1853 | 70 1854 | 0 1855 | 280 1856 | 1 1857 | 281 1858 | 0 1859 | 0 1860 | ENDTAB 1861 | 0 1862 | ENDSEC 1863 | 0 1864 | SECTION 1865 | 2 1866 | BLOCKS 1867 | 0 1868 | BLOCK 1869 | 5 1870 | 20 1871 | 330 1872 | 1F 1873 | 100 1874 | AcDbEntity 1875 | 8 1876 | 0 1877 | 100 1878 | AcDbBlockBegin 1879 | 2 1880 | *Model_Space 1881 | 70 1882 | 0 1883 | 10 1884 | 0.0 1885 | 20 1886 | 0.0 1887 | 30 1888 | 0.0 1889 | 3 1890 | *Model_Space 1891 | 1 1892 | 1893 | 0 1894 | ENDBLK 1895 | 5 1896 | 21 1897 | 330 1898 | 1F 1899 | 100 1900 | AcDbEntity 1901 | 8 1902 | 0 1903 | 100 1904 | AcDbBlockEnd 1905 | 0 1906 | BLOCK 1907 | 5 1908 | 1C 1909 | 330 1910 | 1B 1911 | 100 1912 | AcDbEntity 1913 | 8 1914 | 0 1915 | 100 1916 | AcDbBlockBegin 1917 | 2 1918 | *Paper_Space 1919 | 70 1920 | 0 1921 | 10 1922 | 0.0 1923 | 20 1924 | 0.0 1925 | 30 1926 | 0.0 1927 | 3 1928 | *Paper_Space 1929 | 1 1930 | 1931 | 0 1932 | ENDBLK 1933 | 5 1934 | 1D 1935 | 330 1936 | 1F 1937 | 100 1938 | AcDbEntity 1939 | 8 1940 | 0 1941 | 100 1942 | AcDbBlockEnd 1943 | 0 1944 | ENDSEC 1945 | 0 1946 | SECTION 1947 | 2 1948 | ENTITIES 1949 | 0 1950 | TEXT 1951 | 5 1952 | 515 1953 | 100 1954 | AcDbEntity 1955 | 8 1956 | 0 1957 | 100 1958 | AcDbText 1959 | 39 1960 | 0 1961 | 10 1962 | 26 1963 | 20 1964 | 46 1965 | 30 1966 | 0 1967 | 40 1968 | 8 1969 | 1 1970 | DXF testing 1971 | 50 1972 | 0 1973 | 41 1974 | 1 1975 | 51 1976 | 0 1977 | 7 1978 | Consolas Regular 1979 | 71 1980 | 0 1981 | 72 1982 | 0 1983 | 11 1984 | 26 1985 | 21 1986 | 46 1987 | 31 1988 | 0 1989 | 100 1990 | AcDbText 1991 | 73 1992 | 1 1993 | 0 1994 | LINE 1995 | 5 1996 | 516 1997 | 100 1998 | AcDbEntity 1999 | 8 2000 | cyan 2001 | 100 2002 | AcDbLine 2003 | 10 2004 | 25 2005 | 20 2006 | 0 2007 | 30 2008 | 0 2009 | 11 2010 | 100 2011 | 21 2012 | 0 2013 | 31 2014 | 0 2015 | 0 2016 | LINE 2017 | 5 2018 | 517 2019 | 100 2020 | AcDbEntity 2021 | 8 2022 | cyan 2023 | 100 2024 | AcDbLine 2025 | 10 2026 | 100 2027 | 20 2028 | 0 2029 | 30 2030 | 0 2031 | 11 2032 | 100 2033 | 21 2034 | 75 2035 | 31 2036 | 0 2037 | 0 2038 | LINE 2039 | 5 2040 | 518 2041 | 100 2042 | AcDbEntity 2043 | 8 2044 | cyan 2045 | 100 2046 | AcDbLine 2047 | 10 2048 | 75 2049 | 20 2050 | 100 2051 | 30 2052 | 0 2053 | 11 2054 | 0 2055 | 21 2056 | 100 2057 | 31 2058 | 0 2059 | 0 2060 | LINE 2061 | 5 2062 | 519 2063 | 100 2064 | AcDbEntity 2065 | 8 2066 | cyan 2067 | 100 2068 | AcDbLine 2069 | 10 2070 | 0 2071 | 20 2072 | 100 2073 | 30 2074 | 0 2075 | 11 2076 | 0 2077 | 21 2078 | 25 2079 | 31 2080 | 0 2081 | 0 2082 | CIRCLE 2083 | 5 2084 | 51a 2085 | 100 2086 | AcDbEntity 2087 | 8 2088 | blue 2089 | 100 2090 | AcDbCircle 2091 | 10 2092 | 0 2093 | 20 2094 | 0 2095 | 30 2096 | 0 2097 | 40 2098 | 25 2099 | 0 2100 | CIRCLE 2101 | 5 2102 | 51b 2103 | 100 2104 | AcDbEntity 2105 | 8 2106 | custom 2107 | 100 2108 | AcDbCircle 2109 | 10 2110 | 100 2111 | 20 2112 | 100 2113 | 30 2114 | 0 2115 | 40 2116 | 25 2117 | 0 2118 | ARC 2119 | 5 2120 | 51c 2121 | 100 2122 | AcDbEntity 2123 | 8 2124 | red 2125 | 100 2126 | AcDbCircle 2127 | 39 2128 | 0 2129 | 10 2130 | 0 2131 | 20 2132 | 100 2133 | 30 2134 | 0 2135 | 40 2136 | 25 2137 | 100 2138 | AcDbArc 2139 | 50 2140 | 0 2141 | 51 2142 | 270 2143 | 0 2144 | ARC 2145 | 5 2146 | 51d 2147 | 100 2148 | AcDbEntity 2149 | 8 2150 | magenta 2151 | 100 2152 | AcDbCircle 2153 | 39 2154 | 0 2155 | 10 2156 | 100 2157 | 20 2158 | 0 2159 | 30 2160 | 0 2161 | 40 2162 | 25 2163 | 100 2164 | AcDbArc 2165 | 50 2166 | 180 2167 | 51 2168 | 90 2169 | 0 2170 | POINT 2171 | 5 2172 | 51e 2173 | 100 2174 | AcDbEntity 2175 | 8 2176 | black 2177 | 100 2178 | AcDbPoint 2179 | 10 2180 | 0 2181 | 20 2182 | 0 2183 | 30 2184 | 0 2185 | 0 2186 | POINT 2187 | 5 2188 | 51f 2189 | 100 2190 | AcDbEntity 2191 | 8 2192 | black 2193 | 100 2194 | AcDbPoint 2195 | 10 2196 | 0 2197 | 20 2198 | 100 2199 | 30 2200 | 0 2201 | 0 2202 | POINT 2203 | 5 2204 | 520 2205 | 100 2206 | AcDbEntity 2207 | 8 2208 | black 2209 | 100 2210 | AcDbPoint 2211 | 10 2212 | 100 2213 | 20 2214 | 100 2215 | 30 2216 | 0 2217 | 0 2218 | POINT 2219 | 5 2220 | 521 2221 | 100 2222 | AcDbEntity 2223 | 8 2224 | black 2225 | 100 2226 | AcDbPoint 2227 | 10 2228 | 100 2229 | 20 2230 | 0 2231 | 30 2232 | 0 2233 | 0 2234 | IMAGE 2235 | 5 2236 | 500 2237 | 330 2238 | 1F 2239 | 100 2240 | AcDbEntity 2241 | 8 2242 | black 2243 | 92 2244 | 140 2245 | 310 2246 | 8C000000010000008400000006000000050000002E34B09D88A726407EF7FEBB3CE326400000000000000000EB14D992C3BA40407EF7FEBB3CE326400000000000000000EB14D992C3BA404011E9EC0694E73F4000000000000000002E34B09D88A7264011E9EC0694E73F4000000000000000002E34B09D88A726407EF7FE 2247 | 310 2248 | BB3CE326400000000000000000 2249 | 100 2250 | AcDbRasterImage 2251 | 90 2252 | 0 2253 | 10 2254 | 0 2255 | 20 2256 | 0 2257 | 30 2258 | 0 2259 | 11 2260 | 0.34013605442177 2261 | 21 2262 | 0 2263 | 31 2264 | 0 2265 | 12 2266 | 0 2267 | 22 2268 | 0.34013605442177 2269 | 32 2270 | 0 2271 | 13 2272 | 147 2273 | 23 2274 | 110 2275 | 340 2276 | 501 2277 | 70 2278 | 7 2279 | 280 2280 | 0 2281 | 281 2282 | 50 2283 | 282 2284 | 50 2285 | 283 2286 | 0 2287 | 360 2288 | 502 2289 | 71 2290 | 1 2291 | 91 2292 | 2 2293 | 14 2294 | -0.5 2295 | 24 2296 | -0.5 2297 | 14 2298 | 146.5 2299 | 24 2300 | 109.5 2301 | 0 2302 | ENDSEC 2303 | 0 2304 | SECTION 2305 | 2 2306 | OBJECTS 2307 | 0 2308 | DICTIONARY 2309 | 5 2310 | C 2311 | 330 2312 | 0 2313 | 100 2314 | AcDbDictionary 2315 | 281 2316 | 1 2317 | 3 2318 | ACAD_GROUP 2319 | 350 2320 | D 2321 | 3 2322 | ACAD_IMAGE_DICT 2323 | 350 2324 | 504 2325 | 3 2326 | ACAD_IMAGE_VARS 2327 | 350 2328 | 505 2329 | 0 2330 | IMAGEDEF_REACTOR 2331 | 5 2332 | 502 2333 | 330 2334 | 500 2335 | 100 2336 | AcDbRasterImageDefReactor 2337 | 90 2338 | 2 2339 | 330 2340 | 500 2341 | 0 2342 | DICTIONARY 2343 | 5 2344 | 504 2345 | 102 2346 | {ACAD_REACTORS 2347 | 330 2348 | 503 2349 | 102 2350 | } 2351 | 330 2352 | 503 2353 | 100 2354 | AcDbDictionary 2355 | 0 2356 | DICTIONARY 2357 | 5 2358 | 504 2359 | 102 2360 | {ACAD_REACTORS 2361 | 330 2362 | 503 2363 | 102 2364 | } 2365 | 330 2366 | 503 2367 | 100 2368 | AcDbDictionary 2369 | 3 2370 | PELUDITO.PNG 2371 | 350 2372 | 503 2373 | 0 2374 | RASTERVARIABLES 2375 | 5 2376 | 505 2377 | 102 2378 | {ACAD_REACTORS 2379 | 330 2380 | 503 2381 | 102 2382 | } 2383 | 330 2384 | 503 2385 | 100 2386 | AcDbRasterVariables 2387 | 90 2388 | 0 2389 | 70 2390 | 1 2391 | 71 2392 | 1 2393 | 72 2394 | 0 2395 | 0 2396 | DICTIONARY 2397 | 5 2398 | D 2399 | 330 2400 | C 2401 | 100 2402 | AcDbDictionary 2403 | 281 2404 | 1 2405 | 0 2406 | IMAGEDEF 2407 | 5 2408 | 501 2409 | 102 2410 | {ACAD_REACTORS 2411 | 330 2412 | 504 2413 | 330 2414 | 502 2415 | 102 2416 | } 2417 | 330 2418 | 504 2419 | 100 2420 | AcDbRasterImageDef 2421 | 90 2422 | 0 2423 | 1 2424 | ./peludito.png 2425 | 10 2426 | 147 2427 | 20 2428 | 110 2429 | 11 2430 | 0.34013605442177 2431 | 21 2432 | 0.34013605442177 2433 | 280 2434 | 1 2435 | 281 2436 | 3 2437 | 0 2438 | ENDSEC 2439 | 0 2440 | EOF 2441 | -------------------------------------------------------------------------------- /Creator.php: -------------------------------------------------------------------------------- 1 | http://speleoalex.altervista.org 5 | * @copyright Copyright (c) 2013 6 | * @license http://opensource.org/licenses/gpl-license.php GNU General Public License 7 | * 8 | * Upgrade script to "Creator" 9 | * @author Konstantin Kutsevalov 10 | * @contributor Mario Fèvre https://github.com/mariofevre 11 | * @contributor azercon https://github.com/azercon 12 | * @contributor Michiel Vancoillie https://github.com/dive-michiel 13 | * @contributor Mangirdas Skripka https://github.com/maskas 14 | * @since 2015/08 15 | * 16 | * @see About DXF structure http://help.autodesk.com/cloudhelp/2016/ENU/AutoCAD-DXF/files/GUID-235B22E0-A567-4CF6-92D3-38A2306D73F3.htm 17 | * @see ENTITIES Section http://help.autodesk.com/cloudhelp/2016/ENU/AutoCAD-DXF/files/GUID-7D07C886-FD1D-4A0C-A7AB-B4D21F18E484.htm 18 | * @see Common Symbol Table Group Codes http://help.autodesk.com/cloudhelp/2016/ENU/AutoCAD-DXF/files/GUID-8427DD38-7B1F-4B7F-BF66-21ADD1F41295.htm 19 | * 20 | */ 21 | 22 | namespace adamasantares\dxf; 23 | 24 | // ini_set('display_errors',true); 25 | 26 | /** 27 | * Class Creator 28 | * @package adamasantares\dxf 29 | */ 30 | class Creator { 31 | 32 | // units codes 33 | const UNITLESS = 0; 34 | const INCHES = 1; 35 | const FEET = 2; 36 | const MILES = 3; 37 | const MILLIMETERS = 4; 38 | const CENTIMETERS = 5; 39 | const METERS = 6; 40 | const KILOMETERS = 7; 41 | const MICROINCHES = 8; 42 | const MILS = 9; 43 | const YARDS = 10; 44 | const ANGSTROMS = 11; 45 | const NANOMETERS = 12; 46 | const MICRONS = 13; 47 | const DECIMETERS = 14; 48 | const DECAMETERS = 15; 49 | const HECTOMETERS = 16; 50 | const GIGAMETERS = 17; 51 | const ASTRONOMICAL_UNITS = 18; 52 | const LIGHT_YEARS = 19; 53 | const PARSECS = 20; 54 | 55 | /** 56 | * @var null Last error description 57 | */ 58 | private $error = ''; 59 | 60 | /** 61 | * @var array Layers collection 62 | */ 63 | private $layers = []; 64 | 65 | private $lTypes = []; 66 | 67 | private $textStyles = []; 68 | 69 | private $textStyleName = 'STANDARD'; 70 | 71 | /** 72 | * Current layer name 73 | * @var int 74 | */ 75 | private $layerName = '0'; 76 | 77 | /** 78 | * @var array Shapes collection 79 | */ 80 | private $shapes = []; 81 | 82 | /** 83 | * @var array Center offset 84 | */ 85 | private $offset = [0, 0, 0]; 86 | 87 | /** 88 | * @var int Units 89 | */ 90 | private $units = 0; 91 | 92 | 93 | /** 94 | * @var string 95 | * A handle is a hexadecimal number that is a unique tag for each entity in a 96 | * drawing or DXF file. There must be no duplicate handles. The variable 97 | * HANDSEED must be larger than the largest handle in the drawing or DXF file. 98 | * @see https://forums.autodesk.com/t5/autocad-2000-2000i-2002-archive/what-is-the-handle-in-a-dxf-entity/td-p/118936 99 | */ 100 | private $handleNumber = 0x4ff; 101 | 102 | 103 | /** 104 | * @param int $units (MILLIMETERS as default value) 105 | * Create new DXF document 106 | */ 107 | function __construct($units = self::MILLIMETERS) 108 | { 109 | $this->units = $units; 110 | // add default layout 111 | $this->addLayer($this->layerName); 112 | } 113 | 114 | 115 | /** 116 | * Add new layer to document 117 | * @param string $name 118 | * @param int $color Color code (@see adamasantares\dxf\Color class) 119 | * @param string $lineType Line type (@see adamasantares\dxf\LineType class) 120 | * @return Creator Instance 121 | */ 122 | public function addLayer($name, $color = Color::GRAY, $lineType = LineType::SOLID) 123 | { 124 | $this->layers[$name] = [ 125 | 'color' => $color, 126 | 'lineType' => $lineType 127 | ]; 128 | $this->lTypes[$lineType] = $lineType; 129 | return $this; 130 | } 131 | 132 | 133 | /** 134 | * Sets current layer for drawing. If layer not exists than it will be created. 135 | * @param $name 136 | * @param int $color (optional) Color code. Only for new layer (@see adamasantares\dxf\Color class) 137 | * @param string $lineType (optional) Only for new layer 138 | * @return Creator Instance 139 | */ 140 | public function setLayer($name, $color = Color::GRAY, $lineType = LineType::SOLID) 141 | { 142 | if (!isset($this->layers[$name])) { 143 | $this->addLayer($name, $color, $lineType); 144 | } 145 | $this->layerName = $name; 146 | return $this; 147 | } 148 | 149 | 150 | /** 151 | * Returns current layer name 152 | */ 153 | public function getLayer() 154 | { 155 | $this->layerName; 156 | } 157 | 158 | 159 | /** 160 | * Change color for current layer 161 | * @param int $color See adamasantares\dxf\Color constants 162 | * @return Creator Instance 163 | */ 164 | public function setColor($color) 165 | { 166 | $this->layers[$this->layerName]['color'] = $color; 167 | return $this; 168 | } 169 | 170 | 171 | /** 172 | * Change line type for current layer 173 | * @param int $lineType See adamasantares\dxf\LineType constants 174 | * @return Creator Instance 175 | */ 176 | public function setLineType($lineType) 177 | { 178 | $this->layers[$this->layerName]['lineType'] = $lineType; 179 | $this->lTypes[$lineType] = $lineType; 180 | return $this; 181 | } 182 | 183 | /** 184 | * Sets current style for drawing. If style does not exist then it will be created. 185 | * @param string $params [name, font] 186 | * @return Creator Instance 187 | */ 188 | public function setTextStyle($name, $font, $stdFlags = 0, $fixedHeight = 0, $widthFactor = 0, $obliqueAngle = 0, $textGenerationFlags = 0, $lastHeightUsed = 0, $bigFont = null) 189 | { 190 | if ( !isset($this->textStyles[$name]) ) { 191 | $this->textStyles[$name] = [ 192 | 'name' => $name, 193 | 'font' => $font, 194 | 'stdFlags' => $stdFlags, 195 | 'fixedHeight' => $fixedHeight, 196 | 'widthFactor' => $widthFactor, 197 | 'obliqueAngle' => $obliqueAngle, 198 | 'textGenerationFlags' => $textGenerationFlags, 199 | 'lastHeightUsed' => $lastHeightUsed, 200 | 'bigFont' => $bigFont, 201 | ]; 202 | } 203 | $this->textStyleName = $name; 204 | return $this; 205 | } 206 | 207 | 208 | /** 209 | * Returns current style name 210 | */ 211 | public function getTextStyle() 212 | { 213 | return $this->textStyleName; 214 | } 215 | 216 | private function getEntityHandle() 217 | { 218 | $this->handleNumber++; 219 | return dechex($this->handleNumber); 220 | } 221 | 222 | 223 | /** 224 | * Add point to current layout 225 | * @param float $x 226 | * @param float $y 227 | * @param float $z 228 | * @return Creator Instance 229 | * @see http://help.autodesk.com/cloudhelp/2016/ENU/AutoCAD-DXF/files/GUID-9C6AD32D-769D-4213-85A4-CA9CCB5C5317.htm 230 | */ 231 | public function addPoint($x, $y, $z) 232 | { 233 | $x += $this->offset[0]; 234 | $y += $this->offset[1]; 235 | $z += $this->offset[2]; 236 | $this->shapes[] = "POINT\n" . 237 | "5\n" . // Entity Handle 238 | "{number}\n" . 239 | "100\n" . // Subclass marker (AcDbEntity) 240 | "AcDbEntity\n" . 241 | "8\n" . // Layer name 242 | "{$this->layerName}\n" . 243 | "100\n" . // Subclass marker (AcDbPoint) 244 | "AcDbPoint\n" . 245 | "10\n" . // X value 246 | "{$x}\n" . 247 | "20\n" . // Y value 248 | "{$y}\n" . 249 | "30\n" . // Z value 250 | "{$z}\n" . 251 | "0\n"; 252 | return $this; 253 | } 254 | 255 | 256 | /** 257 | * Add line to current layout 258 | * @param float $x 259 | * @param float $y 260 | * @param float $z 261 | * @param float $x2 262 | * @param float $y2 263 | * @param float $z2 264 | * @return Creator Instance 265 | * @see http://help.autodesk.com/cloudhelp/2016/ENU/AutoCAD-DXF/files/GUID-FCEF5726-53AE-4C43-B4EA-C84EB8686A66.htm 266 | */ 267 | public function addLine($x, $y, $z, $x2, $y2, $z2) 268 | { 269 | $x += $this->offset[0]; 270 | $y += $this->offset[1]; 271 | $z += $this->offset[2]; 272 | $x2 += $this->offset[0]; 273 | $y2 += $this->offset[1]; 274 | $z2 += $this->offset[2]; 275 | $this->shapes[] = "LINE\n" . 276 | "5\n" . // Entity Handle 277 | "{number}\n" . 278 | "100\n" . // Subclass marker (AcDbEntity) 279 | "AcDbEntity\n" . 280 | "8\n" . // Layer name 281 | "{$this->layerName}\n" . 282 | "100\n" . 283 | "AcDbLine\n" . // Subclass marker (AcDbLine) 284 | "10\n" . // Start point X 285 | "{$x}\n" . 286 | "20\n" . // Start point Y 287 | "{$y}\n" . 288 | "30\n" . // Start point Z 289 | "{$z}\n" . 290 | "11\n" . // End point X 291 | "{$x2}\n" . 292 | "21\n" . // End point Y 293 | "{$y2}\n" . 294 | "31\n" . // End point Z 295 | "{$z2}\n" . 296 | "0\n"; 297 | return $this; 298 | } 299 | 300 | /** 301 | * Add a solid to the current layout 302 | * @param float $x 303 | * @param float $y 304 | * @param float $z 305 | * @param float $w 306 | * @param float $h 307 | * @return Creator $this 308 | * @see http://help.autodesk.com/view/ACD/2016/ENU/?guid=GUID-E0C5F04E-D0C5-48F5-AC09-32733E8848F2 309 | */ 310 | public function addSolid($x, $y, $z=0.0, $w=0.0, $h=0.0) 311 | { 312 | $y1 = $y+$h; 313 | $x1 = $x+$w; 314 | $this->shapes[] = "SOLID\n" . 315 | "5\n" . // Entity Handle 316 | "{number}\n" . 317 | "100\n" . // Subclass marker (AcDbEntity) 318 | "AcDbEntity\n" . 319 | "8\n" . // Layer name 320 | "{$this->layerName}\n" . 321 | "100\n" . // Subclass marker (AcDbTrace) 322 | "AcDbTrace\n" . 323 | "10\n" . // First corner, X 324 | "{$x}\n" . 325 | "20\n" . // First corner, Y 326 | "{$y}\n" . 327 | "30\n" . // First corner, Z 328 | "{$z}\n" . 329 | "11\n" . // Second corner, X 330 | "{$x}\n" . 331 | "21\n" . // Second corner, Y 332 | "{$y1}\n" . 333 | "31\n" . // Second corner, Z 334 | "{$z}\n" . 335 | "12\n" . // Third corner, X 336 | "{$x1}\n" . 337 | "22\n" . // Third corner, Y 338 | "{$y1}\n" . 339 | "32\n" . // Third corner, Z 340 | "{$z}\n" . 341 | "13\n" . // Fourth corner, X 342 | "{$x1}\n" . 343 | "23\n" . // Fourth corner, Y 344 | "{$y}\n" . 345 | "33\n" . // Fourth corner, Z 346 | "{$z}\n" . 347 | "39\n" . // Thickness 348 | "0\n" . 349 | "210\n". // Extrusion Direction, X 350 | "0\n" . 351 | "220\n". // Extrusion Direction, Y 352 | "0\n" . 353 | "230\n". // Extrusion Direction, Z 354 | "1\n" . 355 | "0\n"; 356 | return $this; 357 | } 358 | 359 | /** 360 | * Add text to current layer 361 | * @param float $x 362 | * @param float $y 363 | * @param float $z 364 | * @param string $text 365 | * @param float $textHeight Text height 366 | * @param integer $position Position of text from point: 1 = top-left; 2 = top-center; 3 = top-right; 4 = center-left; 5 = center; 6 = center-right; 7 = bottom-left; 8 = bottom-center; 9 = bottom-right 367 | * @param float $angle Angle of text in degrees (rotation) 368 | * @param integer $thickness 369 | * @return Creator Instance 370 | * @see http://help.autodesk.com/cloudhelp/2016/ENU/AutoCAD-DXF/files/GUID-62E5383D-8A14-47B4-BFC4-35824CAE8363.htm 371 | */ 372 | public function addText($x, $y, $z, $text, $textHeight, $position = 7, $angle = 0.0, $thickness = 0) 373 | { 374 | $positions = [ 375 | 1 => [3, 0], // top-left 376 | 2 => [3, 1], // top-center 377 | 3 => [3, 2], // top-right 378 | 4 => [2, 0], // center-left 379 | 5 => [2, 1], // center 380 | 6 => [2, 2], // center-right 381 | 7 => [1, 0], // bottom-left 382 | 8 => [1, 1], // bottom-center 383 | 9 => [1, 2] // bottom-right 384 | ]; 385 | $x += $this->offset[0]; 386 | $y += $this->offset[1]; 387 | $z += $this->offset[2]; 388 | $angle = deg2rad($angle); 389 | $verticalJustification = $positions[$position][0]; 390 | $horizontalJustification = $positions[$position][1]; 391 | $this->shapes[] = "TEXT\n" . 392 | "5\n" . // Entity Handle 393 | "{number}\n" . 394 | "100\n" . // Subclass marker (AcDbEntity) 395 | "AcDbEntity\n" . 396 | "8\n" . // Layer name 397 | "{$this->layerName}\n" . 398 | "100\n" . // Subclass marker (AcDbText) 399 | "AcDbText\n" . 400 | "39\n" . // Thickness (optional; default = 0) 401 | "{$thickness}\n" . 402 | "10\n" . // First alignment point, X value 403 | "{$x}\n" . 404 | "20\n" . // First alignment point, Y value 405 | "{$y}\n" . 406 | "30\n" . // First alignment point, Z value 407 | "{$z}\n" . 408 | "40\n" . // Text height 409 | "{$textHeight}\n" . 410 | "1\n" . // Default value (the string itself) 411 | "{$text}\n" . 412 | "50\n" . // Text rotation (optional; default = 0) 413 | "{$angle}\n" . 414 | "41\n" . // Relative X scale factor—width (optional; default = 1) 415 | "1\n" . 416 | "51\n" . // Oblique angle (optional; default = 0) 417 | "0\n" . 418 | "7\n" . // Text style name (optional, default = STANDARD) 419 | "{$this->textStyleName}\n" . 420 | "71\n" . // Text generation flags (optional, default = 0) 421 | "0\n" . 422 | "72\n" . // Horizontal text justification type (optional, default = 0) integer codes (not bit-coded): 0 = Left, 1= Center, 2 = Right, 3 = Aligned, 4 = Middle, 5 = Fit 423 | "{$horizontalJustification}\n" . 424 | "11\n" . // Second alignment point, X value 425 | "{$x}\n" . 426 | "21\n" . // Second alignment point, Y value 427 | "{$y}\n" . 428 | "31\n" . // Second alignment point, Z value 429 | "{$z}\n" . 430 | "100\n" . // Subclass marker (AcDbText) 431 | "AcDbText\n" . 432 | "73\n" . // Vertical text justification type (optional, default = 0): integer codes (not bit-coded): 0 = Baseline, 1 = Bottom, 2 = Middle, 3 = Top 433 | "{$verticalJustification}\n" . 434 | "0\n"; 435 | return $this; 436 | } 437 | 438 | 439 | /** 440 | * Add circle to current layer 441 | * @param float $x 442 | * @param float $y 443 | * @param float $z 444 | * @param float $radius 445 | * @return Creator Instance 446 | * @see http://help.autodesk.com/cloudhelp/2016/ENU/AutoCAD-DXF/files/GUID-8663262B-222C-414D-B133-4A8506A27C18.htm 447 | */ 448 | public function addCircle($x, $y, $z, $radius) 449 | { 450 | $x += $this->offset[0]; 451 | $y += $this->offset[1]; 452 | $z += $this->offset[2]; 453 | $this->shapes[] = "CIRCLE\n" . 454 | "5\n" . // Entity Handle 455 | "{number}\n" . 456 | "100\n" . // Subclass marker (AcDbEntity) 457 | "AcDbEntity\n" . 458 | "8\n" . // Layer name 459 | "{$this->layerName}\n" . 460 | "100\n" . // Subclass marker (AcDbCircle) 461 | "AcDbCircle\n" . 462 | "10\n" . // Center point, X value 463 | "{$x}\n" . 464 | "20\n" . // Center point, Y value 465 | "{$y}\n" . 466 | "30\n" . // Center point, Z value 467 | "{$z}\n" . 468 | "40\n" . // Radius 469 | "{$radius}\n" . 470 | "0\n"; 471 | return $this; 472 | } 473 | 474 | 475 | /** 476 | * Add Image Reference to current Layer 477 | * @param float $x 478 | * @param float $y 479 | * @param float $z 480 | * @param float $x2 481 | * @param float $y2 482 | * @param float $z2 483 | * @param string $path 484 | * @param integer $sizeu 485 | * @param integer $sizev 486 | * @return Creator Instance 487 | * @see http://help.autodesk.com/view/ACD/2016/ENU/?guid=GUID-3A2FF847-BE14-4AC5-9BD4-BD3DCAEF2281 488 | */ 489 | public function addImage($x, $y, $z, $x2, $y2, $z2, $path, $sizeu, $sizev) 490 | { 491 | $x += $this->offset[0]; 492 | $y += $this->offset[1]; 493 | $z += $this->offset[2]; 494 | $x2 += $this->offset[0]; 495 | $pixelSize = abs($x2 - $x) / $sizeu; 496 | 497 | $imageKey = explode('/', $path); 498 | $imageKey=strtoupper(end($imageKey)); 499 | $imageKey = str_replace(' ', '', $imageKey); 500 | 501 | $imageHandler = $this->getEntityHandle(); 502 | $imageDefHandler = $this->getEntityHandle(); 503 | $imageDefReactorHandler = $this->getEntityHandle(); 504 | 505 | $this->images[$imageKey] = [ 506 | 'name' => $imageKey, 507 | 'path' => $path, 508 | 'sizeu' => $sizeu, 509 | 'sizev' => $sizev, 510 | 'pixelsize' => $pixelSize, 511 | 'imagehandler' => $imageHandler, 512 | 'imagedefhandler' => $imageDefHandler, 513 | 'imagedef_reactorhandler' => $imageDefReactorHandler 514 | ]; 515 | 516 | $clipboundaryvertexu2 = $sizeu - 0.5; 517 | $clipboundaryvertexv2 = $sizev - 0.5; 518 | 519 | $this->shapes[] = "IMAGE\n" . 520 | "5\n" . // Entity Handle 521 | "{$imageHandler}\n" . 522 | "330\n" . // ???? 523 | "1F\n" . // space handler 1F is hardcoded in tamplate.dxf 524 | "100\n" . // Subclass marker (AcDbEntity) 525 | "AcDbEntity\n" . 526 | "8\n" . // Layer name 527 | "{$this->layerName}\n" . 528 | " 92\n" . // binary chunk ???? 529 | " 140\n" .// binary chunk ???? TODO: generate 140 binary codede properly 530 | "310\n" .// binary chunk ???? 531 | "8C000000010000008400000006000000050000002E34B09D88A726407EF7FEBB3CE326400000000000000000EB14D992C3BA40407EF7FEBB3CE326400000000000000000EB14D992C3BA404011E9EC0694E73F4000000000000000002E34B09D88A7264011E9EC0694E73F4000000000000000002E34B09D88A726407EF7FE\n" . 532 | "310\n" .// binary chunk ???? 533 | "BB3CE326400000000000000000\n" . 534 | "100\n" . // Subclass marker (AcDbRasterImage) 535 | "AcDbRasterImage\n" . 536 | "90\n" . // class version 537 | " 0\n" . 538 | "10\n" . // insertion point x value 539 | "{$x}\n" . 540 | "20\n" . // insertion point, Y value 541 | "{$y}\n" . 542 | "30\n" . // insertion point, Z value 543 | "{$z}\n" . 544 | " 11\n" . // x value u-vector (in WCS) pixel size horizontal 545 | "{$pixelSize}\n" . 546 | " 21\n" . // Y value U-vector (in WCS) 547 | "0\n" . 548 | " 31\n" . // z value U-vector (in WCS) 549 | "0\n" . 550 | " 12\n" . // x value V-vector (in WCS) 551 | "0\n" . 552 | " 22\n" . // Y value V-vector (in WCS) pixel size vertical 553 | "{$pixelSize}\n" . 554 | " 32\n" . // z value V-vector (in WCS) 555 | "0\n" . 556 | " 13\n" . //image size in pixels x 557 | "{$sizeu}\n" . 558 | " 23\n" . //image size in pixels y 559 | "{$sizev}\n" . 560 | "340\n" . //Hard reference to imagedef object 561 | "{$imageDefHandler}\n" . 562 | " 70\n" . //Image display properties: 563 | " 7\n" .//default at draftsight 2016 564 | "280\n" . //Clipping state: 0 = Off; 1 = On 565 | " 0\n" . 566 | "281\n" . //Brightness value (0-100; default = 50) 567 | " 50\n" . 568 | "282\n" . //Contrast value (0-100; default = 50) 569 | " 50\n" . 570 | "283\n" . //Fade value (0-100; default = 0) 571 | " 0\n" . 572 | "360\n" . //Hard reference to imagedef_reactor object 573 | "{$imageDefReactorHandler}\n" . 574 | " 71\n" . //Clipping boundary type. 1 = Rectangular; 2 = Polygonal 575 | " 1\n" . 576 | " 91\n" . //Number of clip boundary vertices that follow 577 | " 2\n" . 578 | " 14\n" . //Clip boundary vertex (in OCS) DXF: X value; APP: 2D point (multiple entries) 579 | "-0.5\n" . 580 | " 24\n" . //Clip boundary vertex (in OCS) DXF: y value; APP: 2D point (multiple entries) 581 | "-0.5\n" . 582 | " 14\n" . //Clip boundary vertex (in OCS) DXF: X value; APP: 2D point (multiple entries) 583 | "{$clipboundaryvertexu2}\n" . 584 | " 24\n" . //Clip boundary vertex (in OCS) DXF: y value; APP: 2D point (multiple entries) 585 | "{$clipboundaryvertexv2}\n" . 586 | "0\n"; 587 | return $this; 588 | } 589 | 590 | 591 | /** 592 | * Add Arc to current layer. 593 | * Don't forget: it's drawing by counterclock-wise. 594 | * @param float $x 595 | * @param float $y 596 | * @param float $z 597 | * @param float $radius 598 | * @param float $startAngle 599 | * @param float $endAngle 600 | * @return $this 601 | * @see http://help.autodesk.com/cloudhelp/2016/ENU/AutoCAD-DXF/files/GUID-0B14D8F1-0EBA-44BF-9108-57D8CE614BC8.htm 602 | */ 603 | public function addArc($x, $y, $z, $radius, $startAngle = 0.1, $endAngle = 90.0) 604 | { 605 | $x += $this->offset[0]; 606 | $y += $this->offset[1]; 607 | $z += $this->offset[2]; 608 | $this->shapes[] = "ARC\n" . 609 | "5\n" . // Entity Handle 610 | "{number}\n" . 611 | "100\n" . // Subclass marker (AcDbEntity) 612 | "AcDbEntity\n" . 613 | "8\n" . // Layer name 614 | "{$this->layerName}\n" . 615 | "100\n" . // Subclass marker (AcDbCircle) 616 | "AcDbCircle\n" . 617 | "39\n" . // Thickness (optional; default = 0) 618 | "0\n" . 619 | "10\n" . // Center point, X value 620 | "{$x}\n" . 621 | "20\n" . // Center point, Y value 622 | "{$y}\n" . 623 | "30\n" . // Center point, Z value 624 | "{$z}\n" . 625 | "40\n" . // Radius 626 | "{$radius}\n" . 627 | "100\n" . // Subclass marker (AcDbArc) 628 | "AcDbArc\n" . 629 | "50\n" . // Start angle 630 | "{$startAngle}\n" . 631 | "51\n" . // End angle 632 | "{$endAngle}\n" . 633 | "0\n"; 634 | return $this; 635 | } 636 | 637 | 638 | /** 639 | * Add Ellipse to current layer. 640 | * @param float $cx Center Point X 641 | * @param float $cy Center Point Y 642 | * @param float $cz Center Point Z 643 | * @param float $mx Major Axis Endpoint X 644 | * @param float $my Major Axis Endpoint Y 645 | * @param float $mz Major Axis Endpoint Z 646 | * @param float $ratio Ratio of minor axis to major axis 647 | * @return $this 648 | * @see https://raw.githubusercontent.com/active-programming/DXF-Creator-for-PHP/master/demo/ellipse2.png 649 | * @see http://help.autodesk.com/cloudhelp/2016/ENU/AutoCAD-DXF/files/GUID-107CB04F-AD4D-4D2F-8EC9-AC90888063AB.htm 650 | */ 651 | public function addEllipse($cx, $cy, $cz, $mx, $my, $mz, $ratio=0.5, $start = 0, $end = 6.283185307179586) 652 | { 653 | $mx -= $cx; 654 | $my -= $cy; 655 | $mz -= $cz; 656 | $this->shapes[] = "ELLIPSE\n" . 657 | "5\n" . // Entity Handle 658 | "{number}\n" . 659 | "100\n" . // Subclass marker (AcDbEntity) 660 | "AcDbEntity\n" . 661 | "8\n" . // Layer name 662 | "{$this->layerName}\n" . 663 | "100\n" . // Subclass marker (AcDbEllipse) 664 | "AcDbEllipse\n" . 665 | "10\n" . // Center point, X value 666 | "{$cx}\n" . 667 | "20\n" . // Center point, Y value 668 | "{$cy}\n" . 669 | "30\n" . // Center point, Z value 670 | "{$cz}\n" . 671 | "11\n" . // Endpoint of major axis, X value 672 | "{$mx}\n" . 673 | "21\n" . // Endpoint of major axis, Y value 674 | "{$my}\n" . 675 | "31\n" . // Endpoint of major axis, Z value 676 | "{$mz}\n" . 677 | "40\n" . // Ratio of minor axis to major axis 678 | "{$ratio}\n" . 679 | "41\n" . // Start parameter (this value is 0.0 for a full ellipse) 680 | "{$start}\n" . 681 | "42\n" . // End parameter (this value is 2pi for a full ellipse) 682 | "{$end}\n" . 683 | "0\n"; 684 | return $this; 685 | } 686 | 687 | 688 | /** 689 | * Add Ellipse to current layer. 690 | * @param float $cx Center Point X 691 | * @param float $cy Center Point Y 692 | * @param float $cz Center Point Z 693 | * @param float $mx Major Axis Endpoint X 694 | * @param float $my Major Axis Endpoint Y 695 | * @param float $mz Major Axis Endpoint Z 696 | * @param float $rx Minor Axis Endpoint X 697 | * @param float $ry Minor Axis Endpoint Y 698 | * @param float $rz Minor Axis Endpoint Z 699 | * 700 | * @return $this 701 | * @see https://raw.githubusercontent.com/active-programming/DXF-Creator-for-PHP/master/demo/ellipse.png 702 | * @see http://help.autodesk.com/cloudhelp/2016/ENU/AutoCAD-DXF/files/GUID-107CB04F-AD4D-4D2F-8EC9-AC90888063AB.htm 703 | */ 704 | public function addEllipseBy3Points($cx, $cy, $cz, $mx, $my, $mz, $rx, $ry, $rz, $start = 0, $end = 6.283185307179586) 705 | { 706 | $length1 = sqrt(pow($cx - $mx, 2) + pow($cy - $my, 2) + pow($cz - $mz, 2)); 707 | $length2 = sqrt(pow($cx - $rx, 2) + pow($cy - $ry, 2) + pow($cz - $rz, 2)); 708 | $ratio = round($length2 / $length1, 3); 709 | $mx -= $cx; 710 | $my -= $cy; 711 | $mz -= $cz; 712 | $this->shapes[] = "ELLIPSE\n" . 713 | "5\n" . // Entity Handle 714 | "{number}\n" . 715 | "100\n" . // Subclass marker (AcDbEntity) 716 | "AcDbEntity\n" . 717 | "8\n" . // Layer name 718 | "{$this->layerName}\n" . 719 | "100\n" . // Subclass marker (AcDbEllipse) 720 | "AcDbEllipse\n" . 721 | "10\n" . // Center point, X value 722 | "{$cx}\n" . 723 | "20\n" . // Center point, Y value 724 | "{$cy}\n" . 725 | "30\n" . // Center point, Z value 726 | "{$cz}\n" . 727 | "11\n" . // Endpoint of major axis, X value 728 | "{$mx}\n" . 729 | "21\n" . // Endpoint of major axis, Y value 730 | "{$my}\n" . 731 | "31\n" . // Endpoint of major axis, Z value 732 | "{$mz}\n" . 733 | "40\n" . // Ratio of minor axis to major axis 734 | "{$ratio}\n" . 735 | "41\n" . // Start parameter (this value is 0.0 for a full ellipse) 736 | "{$start}\n" . 737 | "42\n" . // End parameter (this value is 2pi for a full ellipse) 738 | "{$end}\n" . 739 | "0\n"; 740 | return $this; 741 | } 742 | 743 | 744 | /** 745 | * Add polyline to current layer. 746 | * @param array[float] $points Points array: [x, y, x2, y2, x3, y3, ...] 747 | * @param int $flag Polyline flag (bit-coded); default is 0: 1 = Closed; 128 = Plinegen 748 | * @return $this 749 | * @see http://help.autodesk.com/cloudhelp/2016/ENU/AutoCAD-DXF/files/GUID-ABF6B778-BE20-4B49-9B58-A94E64CEFFF3.htm 750 | */ 751 | public function addPolyline($points, $flag = 0) 752 | { 753 | $count = count($points); 754 | if ($count > 2 && ($count % 2) == 0) { 755 | $dots = ($count / 2 + 1); 756 | $polyline = "LWPOLYLINE\n" . 757 | "5\n" . // Entity Handle 758 | "{number}\n" . 759 | "100\n" . // Subclass marker (AcDbEntity) 760 | "AcDbEntity\n" . 761 | "8\n" . // Layer name 762 | "{$this->layerName}\n" . 763 | "100\n" . // Subclass marker (AcDbPolyline) 764 | "AcDbPolyline\n" . 765 | "90\n" . // Number of vertices 766 | "{$dots}\n" . 767 | "70\n" . // Polyline flag (bit-coded); default is 0: 1 = Closed; 128 = Plinegen 768 | "{$flag}\n" . 769 | "43\n" . // Constant width (optional; default = 0). 770 | "0\n" . 771 | "38\n" . // Elevation (optional; default = 0) 772 | "0\n" . 773 | "39\n" . // Thickness (optional; default = 0) 774 | "0\n"; 775 | for ($i = 0; $i < $count; $i += 2) { 776 | $x = $points[$i] + $this->offset[0]; 777 | $y = $points[$i+1] + $this->offset[1]; 778 | $polyline .= 779 | "10\n" . 780 | "{$x}\n" . 781 | "20\n" . 782 | "{$y}\n"; 783 | } 784 | $this->shapes[] = $polyline . "0\n"; 785 | } 786 | return $this; 787 | } 788 | 789 | 790 | /** 791 | * Add 3D polyline to current layer. 792 | * @param array[float] $points Points array: [x, y, z, x2, y2, z2, x3, y3, z3, ...] 793 | * @return $this 794 | * @deprecated It was mistake, the polyline has no Z coordinate point (code 30) 795 | */ 796 | public function addPolyline2d($points) 797 | { 798 | return $this->addPolyline($points); 799 | } 800 | 801 | 802 | /** 803 | * Returns last error 804 | * @return null 805 | */ 806 | public function getError() 807 | { 808 | return $this->error; 809 | } 810 | 811 | 812 | /** 813 | * Set offset 814 | * @param $x 815 | * @param $y 816 | * @param $z 817 | */ 818 | public function setOffset($x, $y, $z = 0) 819 | { 820 | $this->offset = [$x, $y, $z]; 821 | } 822 | 823 | 824 | /** 825 | * Get offset 826 | * @return array 827 | */ 828 | public function getOffset() 829 | { 830 | return $this->offset; 831 | } 832 | 833 | 834 | /** 835 | * Save DXF document to file 836 | * @param string $fileName 837 | * @return bool True on success 838 | */ 839 | function saveToFile($fileName) 840 | { 841 | $this->error = ''; 842 | $dir = dirname($fileName); 843 | if (!is_dir($dir)) { 844 | $this->error = "Directory not exists: {$dir}"; 845 | return false; 846 | } 847 | if (!file_put_contents($fileName, $this->getString())) { 848 | $this->error = "Error on save: {$fileName}"; 849 | return false; 850 | } 851 | return true; 852 | } 853 | 854 | 855 | /** 856 | * Send DXF document to browser 857 | * @param string $fileName 858 | * @param bool $stop Set to FALSE if no need to exit from script 859 | */ 860 | public function sendAsFile($fileName, $stop = true) 861 | { 862 | while (false !== ob_get_clean()) { }; 863 | header("Content-Type: image/vnd.dxf"); 864 | header("Content-Disposition: inline; filename={$fileName}"); 865 | echo $this->getString(); 866 | if ($stop) { 867 | exit; 868 | } 869 | } 870 | 871 | 872 | /** 873 | * Returns DXF document as string 874 | * @return string DXF document 875 | */ 876 | public function getString() 877 | { 878 | $template = file_get_contents(__DIR__ . '/template.dxf'); 879 | $images = $this->getImagesString(); 880 | $lTypes = $this->getLtypesString(); 881 | $layers = $this->getLayersString(); 882 | $textStyles = $this->getTextStylesString(); 883 | $entities = $this->getEntities(); 884 | 885 | $dxf = str_replace([ 886 | '{LTYPES_TABLE}', 887 | '{LAYERS_TABLE}', 888 | '{UNITS}', 889 | '{STYLES_TABLE}', 890 | '{ENTITIES_SECTION}', 891 | '{CLASSES_FOR_IMAGES}', 892 | '{DICTIONARY_IMAGE_VAR}', 893 | '{IMAGEDEF_REACTOR}', 894 | '{DICTIONARY_IMAGES}', 895 | '{IMAGEDEFS}' 896 | ], [ 897 | $lTypes, 898 | $layers, 899 | $this->units, 900 | $textStyles, 901 | $entities, 902 | $images['CLASSES_FOR_IMAGES'], 903 | $images['DICTIONARY_IMAGE_VAR'], 904 | $images['IMAGEDEF_REACTOR'], 905 | $images['DICTIONARY_IMAGES'], 906 | $images['IMAGEDEFS'] 907 | ], $template); 908 | 909 | return $dxf; 910 | } 911 | 912 | 913 | private function getEntities() 914 | { 915 | foreach ($this->shapes as &$shape) { 916 | $shape = str_replace('{number}', $this->getEntityHandle(), $shape); 917 | } 918 | $entities = implode('', $this->shapes); 919 | return rtrim($entities, "\n"); 920 | } 921 | 922 | 923 | /** 924 | * Generates IMAEGADEF AND IMAGEDEF_REACTOR items 925 | * 926 | * @return string[] 927 | * @see http://help.autodesk.com/view/ACD/2016/ENU/?guid=GUID-EFE5319F-A71A-4612-9431-42B6C7C3941F 928 | * @see http://help.autodesk.com/view/ACD/2016/ENU/?guid=GUID-46C12333-1EDA-4619-B2C9-D7D2607110C8 929 | */ 930 | private function getImagesString() 931 | { 932 | $dictionaryimagevarHandle = $this->getEntityHandle(); 933 | $dictionaryHandle = $this->getEntityHandle(); 934 | $rastervariable = $this->getEntityHandle(); 935 | 936 | if ( count($this->images) === 0 ) { 937 | return [ 938 | 'CLASSES_FOR_IMAGES' => '', 939 | 'DICTIONARY_IMAGE_VAR' => '', 940 | 'IMAGEDEF_REACTOR' => '', 941 | 'DICTIONARY_IMAGES' => '', 942 | 'IMAGEDEFS' => '' 943 | ]; 944 | } 945 | 946 | $imagesclasses = "\nCLASS\n". 947 | "1\n". 948 | "RASTERVARIABLES\n". 949 | "2\n". 950 | "AcDbRasterVariables\n". 951 | "3\n". 952 | "ISM\n". 953 | " 90\n". 954 | "32768\n". 955 | "280\n". 956 | " 0\n". 957 | "281\n". 958 | " 0\n". 959 | "0\n". 960 | "CLASS\n". 961 | "1\n". 962 | "IMAGEDEF\n". 963 | "2\n". 964 | "AcDbRasterImageDef\n". 965 | "3\n". 966 | "ISM\n". 967 | " 90\n". 968 | "32768\n". 969 | "280\n". 970 | " 0\n". 971 | "281\n". 972 | " 0\n". 973 | "0\n". 974 | "CLASS\n". 975 | "1\n". 976 | "IMAGE\n". 977 | "2\n". 978 | "AcDbRasterImage\n". 979 | "3\n". 980 | "ISM\n". 981 | " 90\n". 982 | "32895\n". 983 | "280\n". 984 | " 0\n". 985 | "281\n". 986 | " 1\n". 987 | "0\n". 988 | "CLASS\n". 989 | "1\n". 990 | "IMAGEDEF_REACTOR\n". 991 | "2\n". 992 | "AcDbRasterImageDefReactor\n". 993 | "3\n". 994 | "ISM\n". 995 | " 90\n". 996 | "32769\n". 997 | "280\n". 998 | " 0\n". 999 | "281\n". 1000 | " 0\n". 1001 | "0\n"; 1002 | 1003 | $dictionaryImageVars = "\n3\n". 1004 | "ACAD_IMAGE_DICT\n". 1005 | "350\n". 1006 | "{$dictionaryHandle}\n". 1007 | " 3\n". 1008 | "ACAD_IMAGE_VARS\n". 1009 | "350\n". 1010 | "{$rastervariable}\n". 1011 | "0\n"; 1012 | 1013 | $dictionaryImages = "DICTIONARY\n". 1014 | "5\n". 1015 | "{$dictionaryHandle}\n". 1016 | "102\n". 1017 | "{ACAD_REACTORS\n". 1018 | "330\n". 1019 | "{$dictionaryimagevarHandle}\n". 1020 | "102\n". 1021 | "}\n". 1022 | "330\n". 1023 | "{$dictionaryimagevarHandle}\n". 1024 | "100\n". 1025 | "AcDbDictionary\n". 1026 | " 0\n". 1027 | " DICTIONARY\n". 1028 | " 5\n". 1029 | "{$dictionaryHandle}\n". 1030 | "102\n". 1031 | "{ACAD_REACTORS\n". 1032 | "330\n". 1033 | "{$dictionaryimagevarHandle}\n". 1034 | "102\n". 1035 | "}\n". 1036 | "330\n". 1037 | "{$dictionaryimagevarHandle}\n". 1038 | "100\n". 1039 | "AcDbDictionary\n"; 1040 | 1041 | foreach ($this->images as $imgnom => $img) { 1042 | $dictionaryImages.= "3\n". 1043 | "{$imgnom}\n". 1044 | "350\n". 1045 | "{$dictionaryimagevarHandle}\n"; 1046 | } 1047 | 1048 | $dictionaryImages .= " 0\n". 1049 | "RASTERVARIABLES\n". 1050 | " 5\n". 1051 | "{$rastervariable}\n". 1052 | "102\n". 1053 | "{ACAD_REACTORS\n". 1054 | "330\n". 1055 | "{$dictionaryimagevarHandle}\n". 1056 | "102\n". 1057 | "}\n". 1058 | "330\n". 1059 | "{$dictionaryimagevarHandle}\n". 1060 | "100\n". 1061 | "AcDbRasterVariables\n". 1062 | "90\n". 1063 | " 0\n". 1064 | "70\n". 1065 | " 1\n". 1066 | "71\n". 1067 | " 1\n". 1068 | "72\n". 1069 | " 0\n". 1070 | " 0\n"; 1071 | 1072 | 1073 | $imageDefReactors = ''; 1074 | foreach ($this->images as $imgnom => $img) { 1075 | $imageHandler = $img['imagehandler']; 1076 | $imageDefReactorHandler= $img['imagedef_reactorhandler']; 1077 | $imageDefReactors .= "IMAGEDEF_REACTOR\n". 1078 | " 5\n". 1079 | "{$imageDefReactorHandler}\n". 1080 | "330\n". 1081 | "{$imageHandler}\n". 1082 | "100\n". 1083 | "AcDbRasterImageDefReactor\n". 1084 | " 90\n". 1085 | " 2\n". 1086 | "330\n". 1087 | "{$imageHandler}\n". 1088 | " 0\n"; 1089 | } 1090 | 1091 | $imagesDef = ''; 1092 | foreach ($this->images as $imgnom => $img) { 1093 | $imageDefHandler = $img['imagedefhandler']; 1094 | $imageDefReactorHandler = $img['imagedef_reactorhandler']; 1095 | $path = $img['path']; 1096 | $sizeu = $img['sizeu']; 1097 | $sizev = $img['sizev']; 1098 | $pixelsize = $img['pixelsize']; 1099 | $imagesDef .= "\nIMAGEDEF\n". 1100 | "5\n". 1101 | "{$imageDefHandler}\n". 1102 | "102\n". 1103 | "{ACAD_REACTORS\n". 1104 | "330\n". 1105 | "{$dictionaryHandle}\n". 1106 | "330\n". 1107 | "{$imageDefReactorHandler}\n". 1108 | "102\n". 1109 | "}\n". 1110 | "330\n". 1111 | "{$dictionaryHandle}\n". 1112 | "100\n". 1113 | "AcDbRasterImageDef\n". 1114 | "90\n". 1115 | " 0\n". 1116 | " 1\n". 1117 | "{$path}\n". 1118 | " 10\n". 1119 | "{$sizeu}\n". 1120 | " 20\n". 1121 | "{$sizev}\n". 1122 | " 11\n". 1123 | "{$pixelsize}\n". 1124 | " 21\n". 1125 | "{$pixelsize}\n". 1126 | "280\n". 1127 | " 1\n". 1128 | "281\n". 1129 | " 3\n". 1130 | " 0\n"; 1131 | } 1132 | 1133 | $strings = [ 1134 | 'CLASSES_FOR_IMAGES' => rtrim($imagesclasses, "\n"), 1135 | 'DICTIONARY_IMAGE_VAR' => $dictionaryImageVars, 1136 | 'IMAGEDEF_REACTOR' => $imageDefReactors, 1137 | 'DICTIONARY_IMAGES' => rtrim($dictionaryImages, "\n"), 1138 | 'IMAGEDEFS' => rtrim($imagesDef, "\n") 1139 | ]; 1140 | 1141 | return $strings; 1142 | } 1143 | 1144 | 1145 | 1146 | /** 1147 | * Generates LTYPE items 1148 | * @return string 1149 | * @see http://help.autodesk.com/cloudhelp/2016/ENU/AutoCAD-DXF/files/GUID-F57A316C-94A2-416C-8280-191E34B182AC.htm 1150 | * @see https://ezdxf.readthedocs.io/en/latest/dxfinternals/linetype_table.html 1151 | */ 1152 | private function getLtypesString() 1153 | { 1154 | $ownerHandle = $this->getEntityHandle(); 1155 | $lTypes = "LTYPE\n5\n{$ownerHandle}\n330\n0\n100\nAcDbSymbolTable\n70\n4\n0\n" . 1156 | "LTYPE\n5\n" . $this->getEntityHandle() . "\n330\n{$ownerHandle}\n100\nAcDbSymbolTableRecord\n100\nAcDbLinetypeTableRecord\n2\nByBlock\n70\n0\n3\n\n72\n65\n73\n0\n40\n0\n0\n" . 1157 | "LTYPE\n5\n" . $this->getEntityHandle() . "\n330\n{$ownerHandle}\n100\nAcDbSymbolTableRecord\n100\nAcDbLinetypeTableRecord\n2\nByLayer\n70\n0\n3\n\n72\n65\n73\n0\n40\n0\n0\n"; 1158 | foreach ($this->lTypes as $type) { 1159 | $number = $this->getEntityHandle(); 1160 | $name = isset(LineType::$lines[$type]) ? LineType::$lines[$type][0] : ''; 1161 | $pattern = isset(LineType::$lines[$type][1]) ? LineType::$lines[$type][1] : "73\n0\n40\n0.0"; 1162 | $lTypes .= "LTYPE\n" . 1163 | "5\n" . // Handle 1164 | "{$number}\n" . 1165 | "330\n" . // Soft-pointer ID/handle to owner object 1166 | "{$ownerHandle}\n" . 1167 | "100\n" . // Subclass marker (AcDbSymbolTable) 1168 | "AcDbSymbolTableRecord\n" . 1169 | "100\n" . 1170 | "AcDbLinetypeTableRecord\n" . 1171 | "2\n" . // Linetype name 1172 | "{$type}\n" . 1173 | "70\n" . // Standard flag values (bit-coded values) 1174 | "64\n" . 1175 | "3\n" . // Descriptive text for linetype 1176 | "{$name}\n" . 1177 | "72\n" . // Alignment code; value is always 65, the ASCII code for A 1178 | "65\n" . 1179 | "{$pattern}\n" . 1180 | "0\n"; 1181 | } 1182 | return rtrim($lTypes, "\n"); 1183 | } 1184 | 1185 | 1186 | /** 1187 | * Generates LAYERS 1188 | * @return string 1189 | * @see http://help.autodesk.com/cloudhelp/2016/ENU/AutoCAD-DXF/files/GUID-D94802B0-8BE8-4AC9-8054-17197688AFDB.htm 1190 | */ 1191 | private function getLayersString() 1192 | { 1193 | $ownerNumber = $this->getEntityHandle(); 1194 | $layers = "LAYER\n5\n{$ownerNumber}\n330\n0\n100\nAcDbSymbolTable\n70\n1\n0\n"; 1195 | if ( count($this->layers) > 0 ) { 1196 | foreach ($this->layers as $name => $layer) { 1197 | $number = $this->getEntityHandle(); 1198 | $layers .= "LAYER\n" . 1199 | "5\n" . 1200 | "{$number}\n" . 1201 | "330\n" . 1202 | "{$ownerNumber}\n" . 1203 | "100\n" . // Subclass marker 1204 | "AcDbSymbolTableRecord\n" . 1205 | "100\n" . // Subclass marker 1206 | "AcDbLayerTableRecord\n" . 1207 | "2\n" . 1208 | "{$name}\n" . // Layer name 1209 | "70\n" . // Standard flags (bit-coded values) 1210 | "64\n" . 1211 | "62\n" . // Color number (if negative, layer is off) 1212 | "{$layer['color']}\n" . 1213 | "6\n" . // Linetype name 1214 | "{$layer['lineType']}\n" . 1215 | "390\n" . 1216 | "F\n" . 1217 | "0\n"; 1218 | } 1219 | } 1220 | return rtrim($layers, "\n"); 1221 | } 1222 | 1223 | 1224 | /** 1225 | * Generates TEXTSTYLES 1226 | * @return string 1227 | * @see https://help.autodesk.com/cloudhelp/2016/ENU/AutoCAD-DXF/files/GUID-EF68AF7C-13EF-45A1-8175-ED6CE66C8FC9.htm 1228 | */ 1229 | private function getTextStylesString() 1230 | { 1231 | $ownerNumber = $this->getEntityHandle(); 1232 | $textStyles = "STYLE\n5\n{$ownerNumber}\n330\n0\n100\nAcDbSymbolTable\n70\n3\n0\n"; 1233 | 1234 | if (count($this->textStyles) > 0) { 1235 | foreach ($this->textStyles as $name => $style) { 1236 | $number = $this->getEntityHandle(); 1237 | $textStyles .= "STYLE\n" . 1238 | "5\n" . 1239 | "{$number}\n" . 1240 | "330\n" . 1241 | "{$ownerNumber}\n" . 1242 | "100\n" . // Subclass marker 1243 | "AcDbSymbolTableRecord\n" . // Subclass marker value 1244 | "100\n" . // Subclass marker group code 1245 | "AcDbTextStyleTableRecord\n" . // Subclass marker value 1246 | "2\n" . // Style name group code 1247 | "{$style['name']}\n" . // Style name value 1248 | "70\n" . // Standard flags group code 1249 | "{$style['stdFlags']}\n" . // Standard flags values 1250 | "40\n" . // Fixed text height group code 1251 | "{$style['fixedHeight']}\n" . // Fixed text height value; 1252 | "41\n" . // Width factor group code 1253 | "{$style['widthFactor']}\n" . // Width factor value 1254 | "50\n" . // Oblique angle group code 1255 | "{$style['obliqueAngle']}\n" . // Oblique angle value 1256 | "71\n" . // Text generation flags group code 1257 | "{$style['textGenerationFlags']}\n" . // Text generation flags value; 2 = Text is backward (mirrored in X); 4 = Text is upside down (mirrored in Y) 1258 | "42\n" . // Last height used group code 1259 | "{$style['lastHeightUsed']}\n" . // Last height used value 1260 | "3\n" . // Primary font file name group code 1261 | "{$style['font']}\n" . // Primary font file name value 1262 | "4\n" . // Bigfont file name group code 1263 | "{$style['bigFont']}\n"; // Bigfont file name value; blank if none 1264 | } 1265 | 1266 | $textStyles .= "0\n"; 1267 | } 1268 | return rtrim($textStyles, "\n"); 1269 | } 1270 | 1271 | public function __toString(){ 1272 | return $this->getString(); 1273 | } 1274 | 1275 | } --------------------------------------------------------------------------------