[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: software to do drawings of houses, gardens, etc.



Hello there,

if you want to make the investment in learning CAD and want to do drawings programmatically, then FreeCAD with the the CadQuery Module for FreeCAD (https://github.com/jmwright/cadquery-freecad-module) is an elegant option.

Cheers
Brian


On Tue, 2017-11-28 at 15:37 +1100, Erik Christiansen wrote:
On 23.11.17 21:35, Doug wrote:
On 11/23/2017 05:06 PM, Emanuel Berg wrote:
Joe wrote:
What you won't be given is a dialog box with X and Y size and coordinates, and invited to edit them, it doesn't work that way. That's how an object-oriented drawing program would work.
Well, this is certainly a first that I'm an OO guy by intuition, because yes, that is how I would expect it to work. But that is drawing, not CAD? I wonder if I should get an OO drawing application instead, and what would that be - Dia? Or perhaps learn CAD as that's more powerful in the long run?
Learning CAD is a hard road, but a worthwhile one, I think, because it is so versatile. Which one you learn will make some difference, depending on what you wind up wanting to do with it.
After trying to get various GUI drawing packages to function at the most basic level, and failing to produce anything, I'm just finishing the 8 drawings for my new house build (floor plan, elevations, sections, and site plan), using raw postscript. That has proven a better fit for a retired programmer. I just made up functions for wall sections, windows, smoke alarms, ..., and then placed them programmatically at the desired coordinates, with the desired orientation. There is never any doubt about where a structure is located, and wall lengths are auto-calculated by summing the lengths of individual components. Using that in a "dimension" primitive ensures that the annotated dimension is real. And saving some floorplan offsets in variables ensured that the corresponding features were accurately placed in the sections on the next page. And a variable was used for wallheight. When I was talked into changing from 2.4m to 2.7m ceilings, editing one variable instantly lifted the roof on four elevation and two section drawings. The 8 detailed drawings required around 800 lines of postscript, but that's creeping up toward 900 now that I'm adding notes and specifications. It's faster for me, because GUI produced nothing, but not everyone enjoys first programming a stack-based language for a door: /door % S: length (door width) { dup /wall_length exch wall_length add 60 add def % Keep global variable outside dict scope. 1 dict begin % 60 = 2*30 jambs. /length exch def % Take length off the stack. 30 100 box currentpoint translate 0 length lineto length length length 0 length arct 30 100 box gstroke gsave 200 300 moveto length buf cvs show % Size text. grestore end % End of local var scope. } def but after that, "820 door" chains an 820 mm wide door on the end of the current wall, in the current orientation, with lines for the open door and swing arc, plus the dimension in text. The variable wall_length is kept in global scope, because it accumulates the whole wall length for dimensioning purposes. If I were building more than one house, it might almost be worth taking the thing beyond a one-off convenience hack, but the output is currently in for planning approval, and building approval will hopefully not require major edits. (It is, however, a delight to be able to edit my drawings with Vim. :-)) For viewing, ps2pdf, then xpdf or whatever Applications->Graphics->Document_Viewer is in reality, do the job. It's worth knowing that 'r' causes xpdf to reload the pdf file. And when diving into postscript, it's worthwhile having downloaded the BLUEBOOK.PDF first. Erik

Reply to: