LinuxCAD Impressions LG #30

#### "Linux Gazette...making Linux just a little more fun!"

# LinuxCAD Impressions

#### By Robert Wuest

### Friday, June 12

I started calling Software Forge first thing this morning. NT had crashed yesterday and hosed it's own installation. I had no rescue disk. The day was starting real bad because I had an instrument design project getting behind. I needed to work on the mechanical layout. I'm sick of problems with microsoft operating system products.

I've been using AutoCAD for over 14 years and have seen it turn into a fairly decent CAD package. I use R13 and have used everything back to around 2.0.

### Getting It

Boot into Linux. It always works. There's a reasonably priced cad package I'd seen news posting after news posting advertising itself. Supposed to be like AutoCAD. I'm just going to breakdown and buy it and do the design in that. Start Netscape and head to the cola archives. It's moved it's home, so I change the bookmark, search for LinuxCAD (the archive) and find Software Forge's home, http://www.linuxcad.com. All it has is an E-mail address and a phone number, (847) 891-5971, in Chicago, Illinois.

Screen-shots are there, check them out. I guess, from the numerous copies of the ad I had seen, I was expecting something that acted like AutoCAD. Notice the first window shows the columbia drawing, columbia.dwg, and the second window, that it's title is "AvtoCAD-SoftwareForge".

http://www.softwareforge.com/linuxcad/pricing.html says this:

> "LinuxCAD is a true open software product and as such it has been ported to all major UNIX platforms. The pricing of LinuxCAD for platforms other than Intel depends from the number of copies you have chosen to purchase , the more copies the lesser price. All ports retain full original functionality and are fully compatible with original LinuxCAD for Linux for Itnel and with AutoCAD".

"True open software product"? Where's the source? The license is in no way open and the source is no where to be found. Meaningless buzzwords.

I call and call all day: someone finally answers the phone about mid afternoon and sells me a copy. I'm a little confused as to who was serving who after that conversation, but I did manage to buy a copy and download it off of their ftp site with no problem. And she told me that there have been over 100 copies sold. So now I've forked out the $$$ for this thing and what follows is what I experienced.

The readme file (on the ftp server) said to put the archive in the directory where you want to install it and untar it. Enough for those who know their way around Linux pretty well. I go to the file with TkDesk and my pop-up menu isn't right for the file :-0. This file is unconventionally named slk96_tar.gz, not slk96.tar.gz like it should be, so I promptly renamed it.

Examining the contents, I see a straight collection of 25 files, no directories, no man pages, info pages or html docs. There are several .dxs, .mnu, .scr and .txt files. I make a directory linuxcad, moved the archive in there and run extract off the tkdesk pop up.

<aside>
A lot of users will be lost from those very brief instructions. This is what I finally did to install properly, IMO:

As root, I made a directory, /usr/local/lib/linuxcad and moved all of the files there. In my /usr/local/bin directory, I created symlinks:

    	$ ln -s ../lib/linuxcad/lcad lcad
    	$ ln -s ../lib/linuxcad/linuxcad linuxcad

There should at least be a makefile included to do this as "make install".
</aside>

The readme file also has this bombshell:

    "  Optional LinuxCAD extensions
     ================================

       1)  Print option:
              Hardcopy to DeskJet , LaserJet
              and to MSWindows based LinuxCAD printserver
                                       ---------------------
                                           $100

       2)  Plot option:
              To HP-GL compatible plotters
                                       ---------------------
                                           $100

       3)  DXF Import option
                                       ---------------------
                                           $100

       4)  Customization option:
           Includes
             4.1 Hot keys menu and user programmable pull down
                 menu.
             4.2 GNU C/C++ programming interface.
                                       ---------------------
                                          $200

       5)  3D design option
                                       ---------------------
                                          $200"

This is not a $75 package, it's a $775 package.

### First Impressions

Double clicking (back in TkDesk) the executable I saw that it ran, produced no window and exited with status 0. It had spit out out an error message, which came out on my login vc:

     LinuxCAD v 1.53
      Portable Computer Aided Design program for Linux and Unix.
       Usage:
            linuxcad <name of new or existing .dxs file>

But I didn't see that until I started an xterm and ran it from there. So I gave it a filename this time and it ran. Here's the command I used:

    	$ ./linuxcad test.dxs

It puts itself in the background. I exited immediately and it gave me a dialog asking if I wanted to save my changes. What changes? I had just started and exited. I'm not even going to read the docs. Just see what I can learn by fiddling with it a bit. I can immediately see that this needs polish.

    	$ ./linuxcad test.dxs # again.

The "line" command worked, but "l" didn't. "Move" worked and "w" selected entities by window, but the "m" command didn't work. OK, it doesn't have command aliases. Oh, they're $200.

I draw a few lines. "line", click, click, <CR>. Oops, still drawing the line. OK, right click. The line is placed, but in the text area, all that's there is:

    Command aborted !
    Command:

There are no scroll bars and no handle to resize the command area. There are 3 lines of command area stretching across the bottom of the window. I can scroll back by using X-selection, but that doesn't give very good control.

Line editing is very poor. My arrow keys do nothing, The backspace key works, but <HOME>, <END>, any extended key does nothing. I start a command and can't find a key that cancels it. The right mouse button will, but why doesn't <CR>, <ESC> or ^-c work. Let's try all the keys :-). ^-z, ^-x, ^-c, etc. ^-j causes a "point expected !" message. After a lot of keys, it crashes. Looks like a buffer overrun to me. Restart. It crashes every time and work is lost. No core dump or error to the parent shell.

^-m opens a command history window with both scroll bars, but I can't type a command in it. It just beeps at any key except the cursor control keys now work! The cursor is not visible, but <PGUP> and <PGDN> do what they're supposed to and <UP> and <DN> seem to.

That command history window insists on staying over the drawing area. I use my M-<PGDN> (which I have defined in ~/.fvwmrc to lower a window) and the window goes away. If I do any window manager operation that brings the window to the top, the history window ends up over the drawing area. It has an "Exit" button, so I press it.

There is no coordinate display in the main window. "Pline" doesn't work. "c" doesn't work to close multiple line segments.

    Command:line

    From point:0,0

    To point:1000,1000

    To point:

No way to end it with keys. Have to right click again. Too man unnecessary linefeeds wasting vertical screen space. No "Zoom" command.

After about an hour of playing:

********** This is not AutoCAD **********

This program does not have an AutoCAD interface, which, based on all of the comparisons made by SoftwareForge to AutoCAD, it should have. There are commands to zoom: "zoomw", "zoomall". "Zoom" should use the acad interface. Other commands do. And there is no equivelant to the "x" option. I do this often in acad:

    	z e z .9x

If you don't know acad, that will give a 90% zoom factor scaled to the display window (everything is visible with a little border anound the outside).

The top of the screen has six menu items and 6 buttons. Draw/line starts line drawing. The edit menu has no undo. "Undo" doesn't seem to work. Undo is under "Edit/Edit../Undo/Set mark" and "Edit/Edit../Undo/Undo to last mark" It looks like one has to set marks and can't just walk backwards undoing actions one at time.

3D'll run another $200 (item 5). Draw/Draw 3D.../Sphere gets me this message:

    "This is an optional feature of LinuxCAD
    Please check the readme files to see the current pricing
    for the optional features.
    Command:"

Drawing area and window display area aren't the same. You must "Options/Settings/Screen Extents/..." on the menu. This is something I really don't like right away.

No short commands. Looks like they cost $200 (item 4.1).

Bad command line area with virtually no editing in it.

Changed zoom interface.

No .xyz filters.

Keyboard focus moves to buttons in menu area. You have to click in the command area after using a button before you can type another command.

"U" doesn't undo the last line segment while drawing lines.

"Undo" requires setting a mark.

No tooltips.

No coords display.

No coords display.

I know AutoCAD very well, but still, I have to read the documentation :-0.

Print only to a bitmap. And who wants to print to a microsoft print server? Another $100 (item 1) for printing. There is no postscript printing at all.

No cut, copy and paste between multiple instances of the program.

You can't edit with only the keyboard.

### Some Techy Details

I'm not sure what toolkit was used. Ldd linuxcad reveals the following on my system:

            libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x4000b000)
            libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x4004d000)
            libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x400e3000)
            libg++.so.27 => /usr/lib/libg++.so.27 (0x400ed000)
            libm.so.5 => /lib/libm.so.5 (0x40121000)
            libc.so.5 => /lib/libc.so.5 (0x4012a000)
            libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x401e6000)
            libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x401ef000)
            libstdc++.so.27 => /usr/lib/libstdc++.so.27 (0x40203000)

Searching the executable doesn't help, either. Searching with

    	$ strings linuxcad | grep -i copy

only finds a couple Software Forge copyright strings (and the word "copy" a bunch).

Multiple instances run fine.

    	$ ps -m 3638 3636 # shows the memory usage:

      PID TTY MAJFLT MINFLT   TRS   DRS  SIZE  SWAP   RSS  SHRD   LIB  DT COMMAND
     3638  p6    383    195  1080  1920  3000     0  3000  2176     0 206 linuxcad cab1.dxs
     3636  p6    425    200  1140  1976  3116     0  3116  2288     0 207 linuxcad test.dxs

Startup time is about 2 seconds each on P100/48 Meg. system.

Here's a link to a listing of a blank drawing file, cab1.dxs

### Licensing

The license is very restrictive. It's the basic single machine/single user license. I'm not sure I can even include quotes from the documentation, the way license.txt is written. It says I can't reproduce or distribute or even revise the documentation. Does that mean if I removed some of the double spacing or add notes through out the documentation that I am in violation of it? In any case, I won't publish the license here. The high points:

- Install on a single computer for "your own individual use". Can my wife and children use it?
- You can make one copy for archival purposes.
- The program can be transferred. Standard boiler plate. You can't keep a copy.
- Software Forge is not liable for anything that goes wrong or any damage that the program does to you, your computer or your mother.
- It says there is some welcome screen with a copyright notice, but that is wrong; there is no startup message (and it should stay that way unless it is a window that pops up and then goes away once the program starts).
- The user's guide specifically calls out that it cannot be released under the GPL, which I think is kind-of a strange detail to add.
- You can't reverse engineer the program.
- If you violate the license, they'll try and throw you in jail.

### Conclusions

First, I should include this quote (double spaced and all) from the linuxcad.txt document included in the distribution:

    "   ATTENTION:

      This product is still very fresh and is under development , it may

    crash from time to time , do save often and please report all crash situations

    to Software Forge Inc. by e-mail to: unixguy@aol.com

      We add new features quickly and your input about what features you want is

    valuable. "

So make a demo available and send an announcement to cola everytime it is upgraded. Heck, this is the demo version.

So far, only the one crash I wrote about above. But this is not a $775 package. In its current state, it is not a $75 package, even with everything thrown in.

Upgrades are available for only six months. And this is by no means an exhaustive list of missing features. Just what I found real quick.

I'd suggest waiting.

I now must get NT working first thing Monday morning. I still don't have a cad package to do my work in Linux and then take it to acad to make a final drawing. I'm still stuck using microsoft. :-(

This document is copyright Robert Wuest, PE.
It is herby released into the public domain.
(except those portions copyright Software Forge, Inc.)

##### Copyright © 1998, Robert Wuest
Published in Issue 30 of Linux Gazette, July 1998