Unterminated Complex Entity

Discussion in 'AutoCAD' started by Anthony, Apr 6, 2004.

  1. Anthony

    Anthony Guest

    Using AutoCAD 14

    I'm using a lisp routine to insert blocks to my dwg (roughly 1000
    blocks). After approx 15 blocks have been entered I get the following
    error 'Unterminated Complex Entity'.

    Anyone know how to fix? Here is a copy of my lisp routine.

    (defun c:matllocs ()
    (setvar "cmdecho" 0)
    (setq saveosmode (getvar "osmode"))
    (setvar "osmode" 0)
    (setq filename (getstring "Enter filename [including path and file
    extension]: "))
    (setq file1 (open filename "r"))
    (setq savelayer (getvar "clayer"))
    (setq layername (getstring "Enter Layer Name: "))
    (Command "layer" "m" layername "")
    ; (setq file1 (open "matllocs.csv" "r"))
    (read-line file1)
    (setq line1 (read-line file1))
    (while line1
    (setq place 1)
    (setq blockfile nil)
    (setq x_coord nil)
    (setq y_coord nil)
    (setq z_coord nil)
    (setq scalex nil)
    (setq scaley nil)
    (setq scalez nil)
    (setq rotation nil)
    (setq partno nil)
    (setq partdesc nil)
    (setq station nil)
    (setq op nil)
    (setq pa_cma nil)
    (setq model nil)
    (setq contcode nil)
    (setq density nil)
    (setq height nil)
    (setq min nil)
    (setq max nil)
    (setq len (strlen line1))
    (setq count 1)
    (repeat len
    (setq commacheck (substr line1 count 1))
    (if (/= commacheck ",")
    (setq count (+ count 1))
    (progn
    (cond
    ((= blockfile nil)
    (setq blockfile (substr line1 place (- count 1)))
    (setq place (+ count 1)))
    ((= x_coord nil)
    (setq x_coord (substr line1 place (- count place)))
    (setq place (+ count 1)))
    ((= y_coord nil)
    (setq y_coord (substr line1 place (- count place)))
    (setq place (+ count 1)))
    ((= z_coord nil)
    (setq z_coord (substr line1 place (- count place)))
    (setq place (+ count 1)))
    ((= scalex nil)
    (setq scalex (substr line1 place (- count place)))
    (setq place (+ count 1)))
    ((= scaley nil)
    (setq scaley (substr line1 place (- count place)))
    (setq place (+ count 1)))
    ((= scalez nil)
    (setq scalez (substr line1 place (- count place)))
    (setq place (+ count 1)))
    ((= rotation nil)
    (setq rotation (substr line1 place (- count place)))
    (setq place (+ count 1)))
    ((= partno nil)
    (setq partno (substr line1 place (- count place)))
    (setq place (+ count 1)))
    ((= partdesc nil)
    (setq partdesc (substr line1 place (- count place)))
    (setq place (+ count 1)))
    ((= station nil)
    (setq station (substr line1 place (- count place)))
    (setq place (+ count 1)))
    ((= op nil)
    (setq op (substr line1 place (- count place)))
    (setq place (+ count 1)))
    ((= pa_cma nil)
    (setq pa_cma (substr line1 place (- count place)))
    (setq place (+ count 1)))
    ((= model nil)
    (setq model (substr line1 place (- count place)))
    (setq place (+ count 1)))
    ((= contcode nil)
    (setq contcode (substr line1 place (- count place)))
    (setq place (+ count 1)))
    ((= density nil)
    (setq density (substr line1 place (- count place)))
    (setq place (+ count 1)))
    ((= height nil)
    (setq height (substr line1 place (- count place)))
    (setq place (+ count 1)))
    ((= min nil)
    (setq min (substr line1 place (- count place)))
    (setq place (+ count 1))
    (setq max (substr line1 place (- (+ len 1) place))))
    )
    (setq count (+ count 1))
    )
    )
    )
    (setq insp (strcat x_coord "," y_coord "," z_coord))
    (command "insert" blockfile insp scalex scaley rotation partno
    partdesc station op pa_cma model contcode density height min max)
    (setq line1 (read-line file1))
    )
    (close file1)
    (setvar "osmode" saveosmode)
    (setvar "clayer" savelayer)
    (princ)
    )

    (defun *error* (msg)
    (terpri)
    (princ (strcat "\nError:" msg "\n"))
    (setvar "osmode" saveosmode)
    (setvar "clayer" savelayer)
    (Princ)
    )
     
    Anthony, Apr 6, 2004
    #1
Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.