Extensions:2.4/Py/Scripts/Import/DXF-3D
DXF-3D Importer
About
UI location | File → Import → Autodesk (.dxf .dwg)... | ||
---|---|---|---|
Version | 1.12 - 2011.05.07 | Author(s) | Ed Blake (aka kitsu) and Remigiusz Fiedler (aka migius) |
Blender | 2.43 - 2.49 | License | GPL |
Note(s) | .
|
File name | import_dxf.py |
---|---|
Python modules | dxfReader.py, dxfColorMap.py |
Data | configuration-files (.ini, importDXF.ini, .inf) |
Links | DXF-Importer - release at Blender Artists. |
---|---|
Known Issues | .
|
Additional informations
Work around to edit BLOCK objects after import: - find out the name of the Blender group representing the BLOCK - turn on layer 19 - select the group in 3d window directly or make it in outliner window. Sometimes difficult, because all groups are positioned at the same point [0,0,0]. - separate the group into another layer (with M-Key). - make modification, all instances of the group (DupliGroups) will be automatic updated. - the group does not have to be transfered back to layer 19. |
Introduction
This script imports data from DXF and DWG format into Blender.
DWG and DXF (Drawing eXchange Format) are CAD data file formats, developed by Autodesk/AutoCAD.
The script can read DXF-files up to DXF format version 2007.
It supports 2d and 3d geometries, texts and object hierarchy.
It can write mesh and curve representation of it.
See compatibility details.
The DWG support is realized with the help of an external DXF-DWG-converter: DConvertCon.exe. The converter is not authorized by Blender Foundation and is not a part of Blender release. It must be copied manually into %BLENDER%/.blender/scripts/
folder. It is a DOS application: it works well on Windows and on Wine (Linux/OSX). For more details please look at Stani Michiels blog.
The importer doesn't require a full Python installation on Windows.
Support
- DXF-Importer - release - thread at Blender Artists - the right place for your feedback and bug-reports.
- DXF-importer - support - here you can ask the author for individual support.
Downloads
- ImportDXF-1.12 (2011.05.07) - the newest version (see Change Log)
- DConvertCon.exe - external DXF-DWG converter from www.openDWG.com. Caution: do it on your own risk - the file can contain malicious code (virus/trojan); read more here
- dxf_r12_testfiles.zip (2007.08.14) - a set of test files in DXF-r12 format.
Links
- DXF-format article at wikipedia, (German version).
Usage
Installation
Get the newest script version from downloads section.
To avoid conflicts you have to delete/remove all older import_dxf.py scripts from Blender script repository folder.
Extract the script from zip archive into standard Blender script directory %blender%\.blender\scripts\
.
It is not necessary to rename the new version to import_dxf.py
Restart Blender. Optionally, to register new scripts you have to click the 'Update Menus' entry in the script window menu.
More details about handling with python scripts in Blender can be found at BlenderWiki
Preprocessing
Normally, the DXF file do not need extra manual preparing. The importer script can perfectly handle complex DXF-objects like BLOCKs, POLYLINEs and POLYMESHes, so there is no need to "explode" objects before importing.
Exception: 3DSOLID-objects can not be imported, because their ACIS-code in DXF specification is not open. ACIS is a 3D technology licensed by SPATIAL. Workaround is to convert 3DSOLID to POLYFACE in AutoCAD before export to DXF.
The script will import any DXF version from R12 to 2007 and probably future versions, since DXF format is incremental, but until now R12 has been tested more thoroughly and has better compatibility.
If you have a DXF file that fails to import, you can usually manage to reduce/simplify it, until it imports, with the techniques described below.
User Interface
Select the script from the menu:
File › Import › Autodesk DXF (.dxf).
All UI buttons and fields are documented with tooltips. Buttons/options marked with *) are "under construction" - only partially functional.
Ctrl< layer 3 > sets the target import layer. (1-18)
Newscene A new Blender scene will be created for each imported DXF file. The Scene object will inherit the DXF filename.
X resets configuration to default parameters. 2d and 3d buttons set optimal parameters for 2D or 3D import.
Config activates Advanced Configuration Panel.
Dxffile > select .DXF or .DWG file with the Blender file selector or type filename directly into the text field.
.*.* types for you *.dxf
instead of filename to import all DXF files from selected directory, each into separate scenes. Type *.dwg
for DWG files.
Help points the system webbrowser to here - to manual on wiki.blender.org.
Test starts DXF-analyze-tool.
<optim: 2 > Optimization Level:
Level "0" - debug-mode: Blender draws all imported DXF entities in real time. Slowest mode but amusing!
Level "1" - verbose-mode.
Level "2" - non verbose-mode: only progress bar feedback, normal speed.
Level "3" - silent-mode: marginal performance increase.
Start import starts import job.
During the import process the UI is blocked. To stop or cancel the import, flip over to the console-window and hit ctrl-c .
Exit or Esc to exit the script.
Configuration
Config activates Advanced Configuration Panel.
Presets Management
Ini file > select .INI file with the Blender file selector or type filename directly into the text field.
.# calls the names of standard preset .INI files saved in the project directory. The fastest and easiest way to switch user-defined configurations.
Load loads configuration parameters from selected .INI file.
Save saves current configuration parameters into selected .INI file.
Object Filtering
Dxf-object-type buttons activate/deactivate support for DXF object types and define their counterpart representation in Blender to choose with a pop-up-menu:
Curve - geometry represented as Blender curve object
Thin box - geometry represented as thin scaled Blender cube primitive
Thin cyl - geometry represented as thin scaled Blender cylinder primitive
Mesh - geometry represented as Blender mesh object
Edges - geometry represented as Blender mesh object without faces!
Empty - geometry represented as Blender empty object - as placeholder for position/rotation/scale information
Spline support for SPLINE
Mline (plan v1.14) support for MLINE )
Mtext (plan v1.14) support for MTEXT )
Block activates support for BLOCKs, INSERTs, MINSERTs. They will be imported as groups into layer 19 and then referenced at each insert point as empties with dupliGroups. (v1.14 plan) pop-up-menu with options: as realGroups or exploded into flat non-hierarchical structure.
BLOCK-N supports no-name BLOCKs (hatching objects named: *X...).
BLOCK-F (plan v1.14) activates filtering of BLOCKs with lists of accepted_names and unwanted_names.
BLOCK-Xref sets empty object as place holder for external XREF-BLOCK.
Views stores VIEW and VPORT definitions as Blender cameras. It works for both kinds of VIEWs: perspective and orthogonal. Camera's clipping need manual adjustment. (wip v1.13)
Cams (plan v1.14) support for DXFr12 ASHADE-camera definition
Lights support for AVE-RENDER-lights: DIRECT, OVERHEAD and SH_SPOT. Still in early stage: supports now only location and color. The lights need manual adjustment for direction and intensity. (plan v1.14)
more Filtering
Paper imports entities only from "Paper Space".
Frozen imports entities also from frozen layers.
Layer filters layers.
Color filters colors.
Group filters groups.
Block filters blocks.
Material Management
Material Dxf-property activates support for material management. It is recommended to use DXF-object properties (COLOR, LAYER) for coding Blender materials.
(plan v1.14) Configuration file(.ini) will be able to store various material setups.
(plan v1.14) planed support for AVE-RENDER-material definitions.
Global Location and Scale
Glob.reloc activates relocation of DXF data for better adaptation to Blender's scene limits. -> calls Popup-Box to type in the relocation vector x,y,z in DXF units.
Glob.scale activates global scaling of entire DXF scene for better adaptation
to Blender's scene limits. There are many presets to choose with X, e.g., an architectural drawing in [mm] can be scaled into [m] with a X 0.001 scale factor.
For the most architectural projects the most optimal solution is 1 Blender unit = 1 meter.
The options "yard/feet/inch to meter" help to transfer projects from imperial units system.
User def. preset calls Popup-Box to type any individual scale factor.
Note: Blender's workspace is limited to maximal +/-1.000.000 units in x-y-z directions. The default is set to +/-1.000 due for best screen and rendering performance.
You can set higher limits (up to +/-1.000.000) in 3D-Window->View->View Properties with Spacing parameter set to 100 (max value).
Then with Clip Start and Clip End you can increase the camera view range.
Many CAD-applications use even bigger coordinate spaces.
You need to downscale/relocate such geometries before import to Blender.
DXF-Importer does this job for you with help of Glob.scale and Glob.relocation options.
Alternative solution: If you are working with big projects and you want to avoid downscaling / relocating in Blender, there is a special edition of Blender, which lets you edit geometries up to 2.000.000.000 units big. For more details look at 2.49b-CAD-edition on CADtools homepage.
Controllers
Smooth activates smooth parameter for created mesh objects.
Trim < 3.00 > activates intersection of wide POLYLINE segments. The parameter (range: 1.0 - 5.0) bewares the section algorithm from producing extreme corners.
< br: 1.000 > is "basis radius" for circle resolution (range: 0.01 - 100.0 Blender units).
< 64 > is resolution(=segmentation) parameter for cylinders, circles, arcs and ellipses (range: 4 - 500).
The objects will be drawn with adaptive resolution:
adaptive_resolution = resolution * sqrt(radius / basis_radius).
Caps draws top and bottom caps for circles, ellypses, cylinders etc.
To curves activates LINE, ARC, CIRCLE, ELLIPSE and POLYLINE to be drawn as Bezier curves.
< 12 > U-resolution parameter of Blender curves (range: 1-128).
< 4 > is the amount of control points (= segments) in Bezier curve representing circle (range: 3 - 32).
Lay helps to sort objects in Blender. All objects from each LAYER will belong to the same Blender group.
Vgroups creates Vertex Groups in generated Blender meshes for easier post-processing. E.g. faces in 2d-POLYLINE are sorted in groups: right/left/top/bottom.
Onemesh groups DXF entities into one mesh object (respectively their type and their layer/block assignment). It is highly recommended for importing bigger files, because the reduced amount of created objects helps Blender to be more efficient with imported work. This results in huge performance increases.
Elevation < 0.0 > (wip v1.13) you can set Z-coordinate for all imported objects.
There are controllers for geometry properties of objects:
- distance
- thickness
- width
each with a F - limiter-switch and a threshold value (in Blender units).
Property | - | - | - the original property value will be imported, regardless of the minimal limiter |
Property | F | < min. > | - the property value will be changed to the limiter value only if smaller. |
- | F | < min. > | - regardless of property value, the limiter value will be drawn. "thin boxes / sticks". |
- | - | - | - the property will not be supported |
Note: "width" und "thickness" are also used as parameter for "thin box"-representation of POLYLINE, LINE, ARC, CIRCLE, ELLYPSE and POINT.
DXF-Analyze-Tool
The DXF-Analyze-Tool can help to manage problems with DXF files from various CAD platforms.
It reads selected DXF file, check the code consistency and writes statistics into a plane text filename_DXF.INF.
The informations are stored there in form of lists about:
- VIEWs
- VPORTs
- LAYERs (layer_name, color_index, frozen_status)
- BLOCKs dependences (block_name, unused/xref status, child_blocks: name, layer, color, insert_scale, space_mode)
These lists may be used (plan v1.14: directly) for preparing configuration files for customer specific import jobs.
(plan v1.14): infos about: cameras, lamps, paper space status; more statistics about: xref-layers, unsupported entities, dxf-errors.
Optimization
A typical dxf drawing, like for example an architecture plan, is usually made with a very different purpose than for importing in a 3D application. So it will probably contain hundreds, if not thousands, of objects like texts, hatch patterns, symbols, annotations, dimensions, references, indications, sheet borders, titles, etc... that won't be of any use in blender, and that will make the importer take very long times to import and possibly fail to import. It will also make your blend file very heavy to manipulate.
Besides, dxf drawings can also be badly drawn and have several problems like several equal lines on top of each other, "flying" objects with a Z coordinate higher than zero, etc... that can cause problems during the import process or in your drawing later.
Although the DXF-importer can fix many of these problems with tools from advanced configuration panel, there are still situations where the manual way is the most reliable one.
So, if you have a CAD software available that can edit dxf files, such as Autocad or QCad, and you know how to use it, there are several things you can do before importing your file in blender, that can ease the import process and your work later, and avoid or solve import failures:
- Do a "purge": Several CAD programs have a function similar to "purge" in autocad, that can remove unused data from the file. This can reduce much the file size and complexity.
- Delete unnecessary objects or layers: Several dxf objects, like dimensions and hatches, won't be imported in Blender, so there is no need to delete them, but sometimes there will be layers of objects that will be of no use for your 3d work, such as symbols, annotations, etc... Try to keep only what you'll need.
- Re-save your drawing as R12 dxf: version 12 has been more extensively tested than more recent versions, so this might help.
- Make several smaller files by saving parts of the drawing in new files: This could help you to locate in which part of the drawing is a problem that makes the importer fail.
- Copy/paste all objects in a fresh, new, empty drawing: Sometimes some error lies in your dxf files that makes the importer fail. Doing this often solves failures.
- Remove non-ascii characters from your layers and blocks names: Some non-ascii characters (like é, a, $) in entities names may cause errors when importing.
Batch-mode
Batch-mode is not implemented, though you can import multiple DXF-files in one go if you write *.dxf
in DXF-file input mask - all DXF files from the directory will be imported (into active scene or separate scenes).
Compatibility
Supported
Supported DXF r12 Objects: LINE, POINT, SOLID, TRACE, TEXT, INSERT (=block), MINSERT (=array of blocks), CIRCLE, ARC, 3DFACE, 2d-POLYLINE (=plane, incl. arc, variable-width, curve, spline), 3d-POLYLINE (=non-plane), 3d-POLYMESH, 3d-POLYFACE, VIEW, VPORT, XREF (External Reference).
Supported DXF >r12 Objects: ELLIPSE, LWPOLYLINE (LightWeight Polyline), SPLINE, (wip v1.14) MLINE, (wip v1.14) MTEXT
Geometry: 2d and 3d support for DXF-objects. Curves imported as curves or meshes optionally.
Layout: "model space" is default, "paper space" as option (= "layout views")
Scene definitions produced with AVE-RENDER: SCENE (= a set of camera with assigned lights), lights: DIRECT, OVERHEAD, SH_SPOT, (planed for v1.15: import AVE-RENDER materials)
Hierarchy: Entire DXF BLOCK hierarchy is preserved after import into Blender:
BLOCK definitions represented as groups on layer19
and inserted as dupliGroups (INSERTs) on target layer.
Properties: visibility status, frozen status, thickness, width, COLOR, LAYER, (planed for v1.15: XDATA, grouped status, LINETYPE, LINESCALE)
Missing
Unsupported Objects: DXF r12: DIMENSION. DXF>r12: GROUP, RAY/XLINE, LEADER, 3DSOLID, BODY, REGION, dynamic BLOCK
Additional Information
To-Do list
- better documentation
Credits
Thanks go to: - Campbell Barton (aka ideasman42) for Py-API support and SVN updates - Michael Appleby (aka Intanjir) for wiki grammar check - JohnFr for wiki grammar check - Yorik van Havre (aka yorik) for the documentation part: "Optimization" - Stani Michiels (AKA Stani) for the idea of binding an extern DXF/DWG converter
History
v1.xx - 2007/2008 by migius planned tasks: -- support object visibility attribute -- support for 3d-solids (ACIS) -- command-line-mode/batch-mode -- in-place-editing for dupliGroups (addressed by CADtools project) -- support for MLINE (is exported to r12 as BLOCK*Unnamed with LINEs) -- support for MTEXT (is exported to r12 as TEXT???) -- blender_object.properties['dxf_layer_name'] -- better support for long dxf-layer-names -- Configuration files(.ini) should/can handle various material setups -- added f_layerFilter -- to-check: obj/mat/group/_mapping-idea from ideasman42: -- "fill/non-fill" option for closed curves: CIRCLEs,ELLIPSEs,POLYLINEs -- bug:? object = Object.Get(obname) -> = SCENE.getChildren(obname) -- "normalize Z"-option to correct non-planar figures -- LINEs need "width" in 3d-space incl vGroups -- support width_force for LINEs/ELLIPSEs = "solidify" -- bug: dxf-files without "section:layer" missing layersmap{} -- bug: color_index BYLAYER=256, BYBLOCK=0 -- bug: "oneMesh" produces sometimes errors -- support DXF-definitions of scene, lights and cameras -- support ortho mode for VIEWs and VPORTs as cameras
v1.12 - 2011.05.07 by migius h1 fixed for SPLINE: points coordinates are always in WCS h1 code beautifying v1.12 - 2010.04.29 by migius g1 added non-UI-mode: import_dxf.main('dxf_file_name.dxf') v1.12 - 2010.03.04 by migius f1 fix POLYFACE for non-standard ordered double-vertices v1.12 - 2009.11.28 by migius e1 fix (unused)-BLOCKs-detection for non-DXFr12-conform SECTION:BLOCKS v1.12 - 2009.07.02 by migius d9 wip-fix global relocation: culprit is blenders 1mio-Limit v1.12 - 2009.06.21 by migius d8 fix normals for TRACE (in opposite to SOLID) v1.12 - 2009.06.16 by migius d7 fix for ignored BLOCKs (e.g. *X) which are members of other BLOCKs d6 bugfix negative scaled INSERTs - isLeftHand(Matrix) check d5 changed to the new 2.49 method Vector.cross() d5 bugfix WORLDY(1,1,0) to (0,1,0) v1.12 - 2009.04.11 by migius d4 add support for DWG format - the code idea is come from Stani v1.12 - 2009.03.14 by migius d3 removed all set()functions (problem with osx/python<2.4 reported by Blinkozo) d3 code-cleaning v1.12 - 2009.01.14 by migius d2 temp patch for noname BLOCKS (*X,*U,*D) v1.12 - 2008.11.16 by migius d1 remove try_finally: cause not supported in python <2.5 d1 add Bezier curves bevel radius support (default 1.0) v1.12 - 2008.08.03 by migius c2 warningfix: relocating of globals: layersmap, oblist c2 modif UI: buttons newScene+targetLayer moved to start panel v1.12 - 2008.07.04 by migius c1 added control Curve's OrderU parameter c1 modif UI: preset buttons X-2D-3D moved to start panel b6 added handling exception of not registered LAYERs (Hammer-HL-editor DXF output) b5 rebuild UI: global preset 2D for Curve-Import b5 added UI-options: PL-MESH N+N plmesh_flip and normals_out b5 added support for SPLINEs, added control OrderU parameter b5 rewrote draw module for NURBS_curve and Bezier_curve v1.12 - 2008.06.22 by migius b4 change versioning system 1.0.12 -> 1.12 b4 print at start version-info to console b3 bugfix: ob.name conflict with existing meshes (different ob.name/mesh.name) v1.0.12: 2008.05.24 by migius b2 added support for LWPOLYLINEs b2 added support for ProE-dxf in readerDXF.py module v1.0.12: 2008.03.09 by migius b1 update: object = Object.Get(obname) -> f_getSceChild().getChildren() v1.0.12: 2008.01.18 by migius a8 lately used DXF- and INI-filenames persistently stored in Blender.Registry a7 fix missing layersmap{} for dxf-files without "section:layer" a6 added support for XREF external referenced BLOCKs a6 check for bug in AutoCAD2002:DXFr12export: ELLIPSE->POLYLINE_ARC fault angles a6 support VIEWs and VPORTs as cameras: ortho and perspective mode a6 save resources through ignoring unused BLOCKs (not-inserted or on frozen/blocked layers) a6 added try_finally: f.close() for all IO-files a6 added handling for TypeError raise a5 bugfix f_getOCS for (0,0,z!=1.0) (ellipse in Kai's dxf) a4 added to analyzeTool: report about VIEWs, VPORTs, unused/xref BLOCKs a4 bugfix: individual support for 2D/3DPOLYLINE/POLYMESH a4 added to UI: (*wip)BLOCK-(F): name filtering for BLOCKs a4 added to UI: BLOCK-(n): filter anoname/hatch BLOCKs *X... a2 g_scale_as is no more GUI_A-variable a2 bugfix "material": negative sign color_index a2 added support for BLOCKs defined with origin !=(0,0,0) a1 added 'global.reLocation-vector' option
v1.0.11: 2007.11.24 by migius c8 added 'curve_resolution_U' option c8 added context_sensitivity for some UI-buttons c8 bugfix ELLIPSE rotation, added closed_variant and caps c7 rebuild UI: new layout, grouping and meta-buttons c6 rewritten support for ELLIPSE mesh & curve representation c6 restore selector-buttons for DXF-drawTypes: LINE & Co c6 change header of INI/INF-files: # at begin c6 apply scale(1,1,1) after glob.Scale for all mesh objects, not for curve objects. c5 fixing 'material_on' option c4 added "analyze DXF-file" UI-option: print LAYER/BLOCK-dependences into a textfile c3 human-formating of data in INI-Files c2 added "caps" for closed Bezier-curves c2 added "set elevation" UI-option c1 rewrite POLYLINE2d-arc-segments Bezier-interpreter b9 many bugs fixed b9 rewrite POLYLINE2d-arc-segments trimming (clean-trim) b8 added "import from frozen layers" UI-option b8 added "import from paper space" UI-option b8 support Bezier curves for LINEs incl.thickness(0.0-10.0) b8 added meshSmooth_on for circle/arc/polyline b8 added vertexGroups for circle/arc b7 added width_force for ARCs/CIRCLEs = "thin_box" option b3 cleanup code, rename f_drawArc/Bulg->f_calcArc/Bulg b2 fixing material assignment by LAYER+COLOR b1 fixing Bezier curves representation of POLYLINEs-arc-segments b0 added global_scale_presets: "yard/feet/inch to meter"
v1.0.10: 2007.10.18 by migius a6 bugfix CircleDrawCaps for OSX a5 added two "curve_res" UI-buttons for Bezier curves representation a5 improved Bezier curves representation of circles/arcs: correct handlers a4 try to fix malformed endpoints of Blender curves of ARC/POLYLINE-arc segments. a3 bugfix: open-POLYLINEs with end_point.loc==start_point.loc a2 bugfix: f_transform for OCS=(0,0,-1) oriented objects a1 added "fill_on=caps" option to draw top and bottom sides of CIRCLEs and ELLIPSEs a1 rewrite f_CIRCLE.Draw: from Mesh.Primitive to Mesh a1 bugfix "newScene"-mode: all Cylinders/Arcs were drawn at <0,0,0>location
v1.0.beta09: 2007.09.02 by migius g5 redesign UI: grouping of buttons g3 update multi-import-mode: <*.*> button g- added multi-import-mode: (path/*) for importing many dxf-files at once g- added import into newScene g- redesign UI: user presets, into newScene-import f- cleanup code f- bugfix: thickness for Bezier/Bsplines into Blender-curves f- BlenderWiki documentation, on-line Manual f- added import POLYLINE-Bsplines into Blender-NURBSCurves f- added import POLYLINE-arc-segments into Blender-BezierCurves f- added import POLYLINE-Bezier-curves into Blender-Curves d5 rewrite: Optimization Levels, added 'directDrawing' d4 added: f_set_thick(controlled by ini-parameters) d4 bugfix: face-normals in objects with minus thickness d4 added: placeholder'Empty'-size in f_Insert.draw d3 rewrite f_Text.Draw: added support for all Text's parameters d2 redesign: progressbar e- tuning by ideasman42: better use of the Py API. c- tuning by ideasman42 b- rewrite f_Text.Draw rotation/transform b- bugfix: POLYLINE-segment-intersection more reliable now b- bugfix: circle:_thic, 'Empties':no material_assignment b- added material assignment (from layer and/or color) a- added empty, cylinder and UVsphere for POINTs a- added support for 2d-POLYLINE: splines, fitted curves, fitted surfaces a- redesign f_Drawer for block_definitions a- rewrite import into Blender-Curve-Object
v1.0.beta08 - 2007.07.27 by migius: "full 3d"-release l- bugfix: solid_vgroups, clean:scene.objects.new() l- redesign UI to standard Draw.Register+FileSelector, advanced_config_option k- bugfix UI:fileSelect() for MacOSX os.listdir() k- added reset/save/load for config-data k- redesign keywords/drawTypes/Draw.Create_Buttons j- new UI using UIBlock() with own FileSelector, cause problem Window.FileSelector() i- rewritten Class:Settings for better config-parameter management h- bugfix: face-normals in objects with minus thickness h- added Vertex-Groups in POLYLINE and SOLID meshes, for easy material assignment h- beautify code, whitespace->tabs h- added settings.thic_force switch for forcing thickness h- added "one Mesh" option for all entities from the same Layer, sorted in
Vertex-Groups(color_name) (fewer objects = better import performance) g- rewrote: insert-point-handle-object is a small tetrahedron e- bugfix: closed-polymesh3d - rewrote: UI, type_map.keys, f_drawer, all class_f_draw(added "settings" as attribut) - added 2d/3d-support for Polyline_Width incl. angle intersection beta07: 2007.06.19 by migius - added 3d-support for LWPolylines - added 2d/3d-support for Points beta06: 2007.06.15 by migius - cleanup code - added 2d/3d-support for MINSERT=BlockArray in f_drawer, added f_rotXY_Vec beta05: 2007.06.14 by migius - added 2d/3d-support for 3d-PolyLine, PolyMesh and PolyFace - added Global-Scale for size control of imported scenes beta04: 2007.06.12 by migius - rewrote the f_drawBulge for correct import the arc-segments of Polylines beta03: 2007.06.10 by migius - rewrote interface beta02: 2007.06.09 by migius - added 3d-support for Arcs and Circles - added support for Object_Thickness(=height) beta01: 2007.06.08 by migius - added 3d-support for Blocks/Inserts within nested-structures - rewrote f_transform for correct 3d-location/3d-rotation - added 3d-support Lines, 3dFaces - added 2d+3d-support for Solids and Traces
v0.9 - 2007.01 by kitsu: (for 2.43) - first draft of true POLYLINE import -
v0.8 - 2006.12 by kitsu: - first draft of object space coordinates OCS import -
v0.5b - 2006.10 by kitsu: (for 2.42a) - dxfReader.py - color_map.py