Web lists-archives.com

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

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

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


The meta-problem here is that the configuration wizard does all the approved
rituals (GUI with standardized clicky buttons, help popping up in a browser,
etc. etc.) but doesn't have the central attribute these are supposed to achieve:
discoverability. That is, the quality that every point in the interface has
prompts and actions attached to it from which you can learn what to do next.
                                   - Eric Raymond, in "The Luxury of Ignorance."