page updated: 2012.02.02
CAD tools for Blender-3D

CADtools ist ein CAD Erweiterungsmodul für Blender (open-source 3d-Grafikprogramm) geeignet für Architekten, Designer und Modellbauer. Programm und Dokumentation sind auf Englisch. Andere Sprachversionen können erstellt werden bei Bedarf.

CADtools is a CAD extension for Blender (3d graphic creation suite).
It could be useful for architects, engineers and designers.
It works for Linux, MacOS, Windows-XP, Vista, Windows-7.
Current vesion supports only Blender 2.49b.

Features:
version 0.64alpha for Blender 2.49b
.
llllllllll - transparent access to standard Blender UI
llllllllll - full compatibility of blend file guaranteed
l......... - UNDO function (not stable yet!)
llllllll.. - settings and project preferences are preserved between sessions
llllllll.. - context sensitive help system (use F1)
llll...... - CAD asset management via data-browser/editor
llllllllll - editing across multiple objects and object types (Meshes+Curves)
llllllllll - editing across groups of arbitrary scaled objects
llllllllll - editing across multiple viewports (orthogonal and perspective)
llllllllll - autorepeat for commands and parameters
lllllllll. - Views management
lllllll... - Selection-Sets management, supporting boolean operations
llllllllll - UCS management - arbitrary User-Coordinates-Systems
llllllllll - Cartesian and Polar Coordinates
lllllll... - workplane-constrains: Lock-X,Y,Z , GRID-mode, ORTHO-mode
llllllll.. - visual feedback for UCS, Markers, ortho/polar-coordinates
llllllllll - SNAP-functionality (CAD-real-time-snap-engine)
llllllllll - numeric input and edition of coordinates in any UCS
llllllllll - support for Metric and Imperial Units. Intern Unit is 1 meter.
lllllll... > - dimensioning-system: on-screen representation for 2d and 3d
.......... - dimensioning-system: real representation for export and print
llllllllll - 3d-Markers: reference-points in 3D-View
llllllllll - Geometric-Calculator working on 3D-Markers
.......... - true-scale printing: HPGL, SVG, PNG, JPG
.......... - in-place editing for BLOCKs/dupliGroups
.......... - DXF-LAYER system
.......... - DXF-Entity-properties: COLOR, LINESTYLE, LINEWIDTH
llllll.... - User Interface: customizable layout and texts (developer version)
llllllll.. - extendable due to embedding of python scripts
lllllll... > - IFC-importer (BIM)
.......... - IFC-exporter (BIM)
ll........ - DXF-import of 3DSOLIDS (SAT/ACIS support)
.......... - HPGL-exporter (print)
.......... - SVG-exporter (print)

Drawing Tools: 2D+3D, meshes+curves
llllllllll - POINT
llllllllll - LINE
llllllllll - POLYLINE
.......... - POLYGON
lllllll... - CURVE
llllllllll - CIRCLE
llllllllll - ARC
llllll.... - ELLIPSE
.......... - ELLIPTIC-ARC
llllllllll - RECTANGLE
llllllllll - BOX3D
.......... - CYLINDER
.......... - SPHERE
llll...... - DIMENSION

Editing Tools: 2D+3D, meshes+curves
llllllll.. - SELECT
llllllll.. - DELETE
llll...... - PURGE
llllllll.. - MOVE
llllllll.. - ROTATE
llllllll.. - SCALE
llllllll.. - ALIGN
llllllll.. - MIRROR
llllllll.. - BREAK (=CUT)
lllllll... - JOIN
lllllll... > - TRIM
lllllll... - FILLET
lllllll... - CHAMFER
lllllll... - PROJECTION
lllllll... > - OFFSET
llllllllll - DUPLICATE-mode: creates multiple copies
llllllllll - DIVIDE-mode: sub-steps by transformations
llllllll.. - SLIDE-mode: vertices slide along edges
llllllll.. - BIND-mode: creates bridge-faces between old and new edges

Architectural Tools: ARCHtools
lllllll... > - CAMERA-MATCH: camera matching tool
lllll..... - SNAP-mode-"RAY" for manual photogrammetry
lllllll... - SUN-LOCATOR: adjust sun simulation to given geo-location/time
ll........ - UV-MAPPER: texturing tool for architecture
llll...... - BIM (Building-Information-Model)
.......... - FLOOR creator
.......... - COLUMN creator
.......... - BEAM creator
llllll.... - WALL creator
llll...... - WINDOW creator
.......... - DOOR creator
.......... - CEILING creator
lllllll... - STAIRS creator
.......... - ROOF creator
.......... - RAILING creator

Architectural Sketch: ARCHsketch
llll...... - SKETCH: 3d-context-sensitive architectural drawing tool

Enhancements based on Blender 2.49b-CAD-edition:
lllll..... - more efficient import for big DXF files
llllllllll - 1000x bigger workspace (up to 2.000.000.000 units)
llllllllll - 50x more objects in the scene (up to 50.000 objects)

click > symbol for details
stage of implementation: lllllll... (recent progress in orange)

License:
2011.08.20: looking for a fair licensing model i came to this:
CADtools is a "support-me-supporting-you" freeware / registerware.
It can be registered for individuals only, under non-transferable personal license. Each copy of CADtools is personalized and password protected.
CADtools is free: you can use it for personal and commercial projects, at home, at the office, where ever you want.

Roadmap:
Developing will focus on Blender 2.49b a while. Porting to Blender 2.5x will start as soon as the new API offers needed functionality.
Long term goal is to rewrite the code into C/C++ and integrate with Blender under GPL-license.

Initial notes on 2009.10.10:
It is a relative complex project * - long way to finish it.
Choosen licensing model gives me the opportunity to learn users individually. I hope that non-anonymous relations between me and users will promote feedback and support, both essential for CADtools project.
So do not hesitate to register and donate.

/migius/

*) 2010.01.20 - it is a very complex project.
*) 2010.09.05 - it is the most complex project I've ever done!


Background:
I have started this project early 2008 under working name "privateCAD/pCAD"
just after finishing DXF-importer script. With help of this script, it was possible to import complex CAD drawings/models into Blender. Unfortunatelly editing of such stuff was very laborious up to not doable at all, due to missing CAD functionality in Blender. There was no hope Blender core developers would dedicate their precious time to this out-of-scope area any soon.
I was very frustrated about this and decided to find a solution on my own. The idea was to write an extension with Python.

At beginning I have spent plenty of time for gathering and testing already existing CAD scripts. A big help was the scripts archive on wiki.blender.org maintained by Brendon Murphy (AKA Meta-Androcto). At this time I have added "CAD Tools" section to this archive.

All this was not satisfying. I came to the conclusion that a set of separate tools is not the optimal solution. For effective CAD work-flow the tools must work context-sensitive, they must communicate each other and they must extensively communicate with the user (keypoint: User Interface).

Python scripts by Mariano Hidalgo (AKA uselesdreamer) was a great help and inspiration for me. I found there plenty of interesting stuff, for example the "Hotspots" script, which shows how to build user interface extensions for Blender 2.4x.

Another source of inspiration was "ProCAD" script by Paolo Provenda (AKA japy). I have started with 2.5 version and it looked very promising to me. Though there was no English version but only Italian. I have started to translate it to English (middle 2008). It was a funny experience, because I don't know Italian at all. You can find the translated code on BlenderWiki ProCAD page (above link).
I was not happy with ProCAD's Interface and was missing functionality, so I have started to modify it. It was a very time consuming process, because the original source code was poorly commented and partially not finished. Finally I gave up and decided to start again from scratch.

The developing of CADtools script started 2009 with a new UI concept. I had to learn many new stuff, particularly the methods to access Blender's 3d-view-area through Python and openGL. The script has evolved slowly but steady to working prototype in August 2009.

The User Interface and the tools in current developer version base on AutoLisp-extensions i wrote for AutoCAD-r12(dos) in the past. I am trying to produce the similar level of work-speed and UI ergonomics for Blender.
I am still experimenting with many variants of UI, so be aware about quite different final version.

2010 June to October:
the most developing time went into editing tools for curves. It was a real challenge and needed many experiments to find proper methods for Bezier-curves manipulation. It seems that no exact mathematic method is possible, so I have implemented it with help of approximation. This part is almost completed now. We can work with lines and curves as easy as never before. As far as I know, only a few CAD packages offer this functionality.

2010 December to 2011 April:
I was working on IFC-importer script as basis for future BIM system for Blender. The importer will be included in 0.56 release. For effective access to BIM data I have to write an CAD-properties-editor/manager, though this will take longer.

2011 Mai:
I am prototyping the SKETCH tool: 3d-context-sensitive and pressure-sensitive (graphic tablet!) architectural drawing tool. It will go into 0.56 release soon.

2011 June:
I am developing a method to read out ACIS data from DXF-files. It will be possible to import REGION and 3DSOLID entities into Blender.

2011 July:
Lecture on BlenderFDS-project forum about massive performance problems by voxelizing big dimensioned scenes was a motivation to do some research and finally prototyping of VOXELIZER script. It can be used for preprocessing data for advanced scientific simulations, but also as experimetal tool for architectural creation.

2011 August:
Standard UV-tools are not optimal for editing of architectural models in Blender. I am developing an automatic UV-mapper which works with real dimensioned tile textures. It will be a perfect solution for architectural projects prepared for visualisation and interactive presentation (Game Engine).

2011 September:
Technical basis for CAD/CAAD asset management system (GUI framework) is now completed. The first tool built on it is the ID-Properties Editor. It will significantly speed up further development of DXF and BIM implementation in Blender.

2011 October and November:
I am implementing stereophotogrammetry method for Blender for precise reconstruction of 3d models from images: with help of SNAP-option "RAY" you can set 3d points in regard to two cameras calibrated previously with CAMERA-MATCH tool.
The new SUN-LOCATOR tool can adjust sun-object parameters to given geo-location and time. Furthermore it can visualize total sunlight irradiation for given time period: day, month, year.

2011 December:
I am implementing BIM system for parametric construction of architectural models. WALL and WINDOW modules with provisory UI are ready for first tests.

2012 January:
Prototyping of SKETCH system goes on: got it to work with ARC and CIRCLE creators. I am tinkering with interface concept - it is a real challenge to make virtual 3d conterpart to conventional 2d sketching.

(2011.02.02) ...to be continued...


Timeline:
2009.09.30 - first working prototype
2009.10.24 - first public viewing: Blender Conference 2009. (link...)
2009.12.13 - first official release: 0.40-alpha
2010.03.22 - 90% release: 0.46-alpha
2010.06.17 - release 0.49-alpha: prepared for Blender 2.49-cad-edition
2010.07.16 - release 0.50-alpha: improved Bezier-Curves support
2011.08.15 - release 0.60-alpha: more complete and stable
2011.12.22 - release 0.64-alpha: initial BIM implementation
- upcoming - release 0.65-alpha: UV-MAPPER and SKETCH-tool

Technical notes:
CADtools script needs Blender 2.49b and a full installation of Python.
For full-feature-mode of CADtools you will need Blender-2.49b-CAD-edition.
Feel free to ask me for details.

Download: You will get your copy of CADtools by email, after registration.

Registration:
Send me an email with subject line "CADtools", with your data:
- first and last name:
- city and country:
- email-address:
- your operating system (Linux?, 64bit?)
- Python version your Blender is compiled for
- a few words about you and your motivation to use Blender
Your data will be used only for registration.

Support me supporting you!
CADtools is a huge project - developing it is a big challenge.
I make a real progress since i am doing it on full time basis.
Users can participate in develping costs through donations.
Firms can get invoice for CAD consulting services.
Within European-Union bank transfer is the best option (details on demand).
Otherwise use credit card, moneybookers.com or PayPal:




Contact: migius(a)gmx.net


.
related links:
blender.org
BlenderWiki
BlenderArtists Forum
BlenderArchWiki
yorik.uncreated.net
blender3darchitect.com
blendermama.com
BlenderNation News
BlenderArt Magazin



UI-layout vertical (ver.0.53)

UI-layout horizontal (ver.0.53)

________

ARCHtools: STAIRS-creator

DRAW: BOX3D tool

________

________

________

________

________

________

________

________

________

________

________

________

________

Release Notes:
0.64alpha - 2011.12.22 - latest release

Caution:
- Current version is work in progress, quite stable, but not ready for production purposes!

Installation:
Read the delivered "Readme.txt" file, at least the "recent changes" chapter!
Remove/delete all "CADtools_data" files from "/scripts/bpymodules/" !
Copy content of delivered zip-archive into Blender scripts folder:
     - on Windows it can look like this: "C:\your_Blender\.blender\scripts\"
     - on Linux like this: "/home/your_folder/.blender/scripts/"
After installation it should look like this:
     - scripts/CADtools.py
     - scripts/CADtools/__init__.py
     - scripts/CADtools/__init__.pyc (can be omitted)
     - scripts/CADtools/CADtools_data.pyc
     - scripts/CADtools/CADtools_dat1.pyc
     - scripts/CADtools/CADtools_txt.py
     - scripts/CADtools/CADtools_txt.pyc (can be omitted)
     - scripts/CADtools/readme_06120110821.txt (can be omitted too ;)

Getting started: see video tutorial >
- start Blender
- set on "Enable Script Link"-button in Panels:Script
- open a new script-window, start menu Scripts:System:CADtools
- ImportError "Bad magic number..." means Python versions conflict - you need a different CADtools version.
- enter your password (needed for updates)
- CADtools UI appears, you can start editing
- for exit use FILE:EXIT or SHIFT+Q when mouse in CADtools-UI area.

Known issues:
- not implemented functions are prefixed with two_dots ".."
- partially implemented functions are prefixes with one_dot "."
- unstable UNDO: Blender may crash during/after CADtools session.
- edit-tools disregard shape modifiers and shapekeys.
- edit-tools may be unpredictable for objects sharing geometry (multiuser obData).
- Selection-Set disregards hidden-state of objects/elements.
- Selection-Set becomes corrupt if you add/delete points in stored Curve-Object.
.
















Copyright © Remigiusz Fiedler, 2009-2012, www.cad4arch.com