Extensions:2.4/Py/Scripts/Import/DXF-3D

提供: wiki
移動先: 案内検索

DXF-3D Importer

About

DXF-3D Importer
Import geometry from .DXF and DWG file format.
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) .
  • It is included in Blender 2.43 - 2.49.
  • It doesn't require a full Python installation on Windows.


Executable information
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 .
  • Import performance goes extremely down up 1500 objects added to scene. "oneMesh"-option may help to keep object number small. This issue is solved in Blender 2.49b-CAD-edition developed for CADtools project.
  • Bug(v1.0.11-2007.11.24) POINT and ELLIPSE modules produce sometimes error in "oneMesh" mode.
  • Property COLOR = "0" (= "BYBLOCK") is not supported, because there is no similar functionality in Blender, no way to automatic share color/material from Empty object to members in DupliGroups.
  • Import DWG: DConvertCon.exe overwrites existing DXF files without confirmation.
  • Object names in Blender are limited to 21 characters length. Long names from DXF file (max.256 characters) will be converted into a short form
    (3+14+4)= DXFobj_type + DXFobj_name + suffix(.001)


Additional informations
  • During the import process the UI is blocked. To stop or cancel the import, flip over to the console-window and hit ctrl-c .
  • DXF-Blocks are created on layer 19 as Blender groups, then referenced at each insert point as dupli-groups.
  • It is recommend that you run 'RemoveDoubles' on each imported mesh after using this script. Especially wide POLYLINEs produced in non-trim mode have many DoubleVertex.
  • DXF drawings can contain entities in extra layout area named "paper space". This area is now supported (UI option "paper space" in version 1.0.11).
  • At the moment there is no way to in-place-editing of DXF-BLOCKs (represented as DupliGroups). (in-place editor is in developing, planed as a part of CAD-tools project)
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

Downloads

Links

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

Manual-Importer-DXF-gui112c0a.png

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

Manual-Importer-DXF-gui112c0.png

Config activates Advanced Configuration Panel.

Presets Management

Manual-Importer-DXF-gui112b6f.png

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

Manual-Importer-DXF-gui112b6b.png

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

Manual-Importer-DXF-gui112b6c.png

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

Manual-Importer-DXF-gui112b6d.png

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.

Manual-Importer-DXF-view props.png

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

Manual-Importer-DXF-gui112b6e.png

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.

Manual-Importer-DXF-diagram trim.png

< 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).

Manual-Importer-DXF-diagram arc adapted resolution.png

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).

Manual-Importer-DXF-diagram curve resolution.png

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.



Manual-Importer-DXF-gui112b6e.png

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).

Manual-Importer-DXF-diagram width.png

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