LISP error: bad argument type: stringp nil

1,384 views
Skip to first unread message

Jason

unread,
Apr 5, 2010, 4:51:41 PM4/5/10
to Customize your ACAD
I'm receiving the message "error: bad argument type: stringp nil" when
attempting to run a LISP routine. I've had this routine for many years
and it has performed flawlessly until just recently. I'm unable to
determine what exactly could have changed, but any help would be
appreciated! Unfortunately I never got into anything remotely LISP
programming related, so am totally clueless in this area.

I'm using AutoCAD 2010, and the code is as follows:

(DEFUN C:FLEX()(M:OFF)(IF R10@ NIL(SETQ R10@ 0))
(PROMPT(STRCAT"\nDiameter: <"(R1O R10@)"> "))(SETQ R1|@(GETREAL)R1|
@(IF R1|@ R1|@ R10@)R10@(FIX R1|@)
R10l (STRCAT #LCET14 "/F"(ITOA R10@)) R1$l(ENTSEL"\nSelect center-
line: "))(SETQ CL (GETVAR "CLAYER"))(SETVAR "CLAYER" "HVAC-EQUIP-FLEX")
(COMMAND".Insert"R10l(COMMAND))(COMMAND".Measure"R1$l"B" (STRCAT
"F"(ITOA R10@))""(* 0.45 R10@))(ENTDEL(CAR R1$l))(INITGET(+ 1 2 4))
(SETQ R1lQ(GETPOINT"\nTag midpoint: "))(SETVAR "CLAYER" "HVAC-EQUIP-
DUCT-TXT")(COMMAND".Text"R1lQ (getvar "textsize")"0"(STRCAT(ITOA
R10@)"%%C"))(SETVAR "CLAYER" CL)(M:ON))

Thank you in advance.

Masani

unread,
Apr 6, 2010, 12:59:22 AM4/6/10
to Customize your ACAD
Hi Jason,

stringp error will come when you use string functions like STRCAT on a
non string variable like numbers.

I am not able to find the exact problem with the code you have posted.
I think you have missed some code. Please post all the code for better
suggession.

or Please let me know your requirement I will provide you the
solution.

regards,
sreekar masani.

Jason

unread,
Apr 6, 2010, 4:16:42 PM4/6/10
to Customize your ACAD
Sreekar,

Thank you for your quick response and your offer to help, it is MUCH
appreciated. Yes, I did indeed leave off quite a bit of code. I only
posted the "Flex" portion of the routine because that specific
function is what I'm most concerned about at the moment. I didn't
realize that variables in other sections of the code would come into
play. It is a rather large bit of code, but I'll try to paste it here.
Again, the "Flex" portion is of most concern now:

(DEFUN C:SSCALE()
(IF(=(GETVAR"USERR5")0)(SETVAR"USERR5"0.25))
(SETQ DS1 (GETVAR "DIMSCALE"))
(SETQ DS2 (/ DS1 12))
(SETQ R1j (/ 1 DS2))
(IF R1j(SETVAR"USERR5"R1j)NIL)
(SETQ R1@ (getvar "textsize"))
(PRINT))
(SETQ R1Q NIL R1l 1 R1& NIL R11 NIL)

(DEFUN C:MODE()
(SETQ R10(STRCASE(GETSTRING"\nAnnotate and tag drawing? <Y>/N: "))
R1$(IF(OR(= R10"Y")(= R10""))
(STRCASE(GETSTRING"\nRun Square, Round, or Flat-oval duct? <S>/R/F:
"))NIL))(IF(= R10"N")(SETQ R1Q 1 R1l NIL R1& NIL R11 NIL)NIL)
(COND((OR(= R1$"S")
(= R1$""))(SETQ R1Q NIL R1l 1 R1& NIL R11 NIL))
((= R1$"R")(SETQ R1Q NIL R1l NIL R1& 1 R11 NIL))
((= R1$"F")(SETQ R1Q NIL R1l NIL R1& NIL R11 1)))
(PRINT))

(DEFUN M:ON()
;(SETVAR"ORTHOMODE"R10j)
(SETVAR"HIGHLIGHT"1)(SETVAR"OSMODE" 39)
(SETVAR"SNAPANG"R1?@)(SETVAR"SNAPMODE"0)(IF
R1j@(COMMAND".Linetype""S"R1j@ R1@@))
(PRIN1))


(DEFUN C:STATUSA()
(PROMPT(COND(R1Q"\nAnnotation mode is OFF.")
(R1l"\nAnnotation mode is ON. Drawing SQUARE duct.\n")
(R1&"\nAnnotation mode is ON. Drawing ROUND duct.\n")
(R11"\nAnnotation mode is ON. Drawing FLAT-OVAL duct.\n")))
(PRINT))(DEFUN C:FIXIT()M:ON(SETVAR "HIGHLIGHT" 1)
(COMMAND"SNAP""R"(LIST 0 0)0.0)
(SETVAR"Osmode"39)(SETVAR"Snapmode"0)(PRIN1))(DEFUN R1O(R1|)(SETQ R1|
(RTOS R1| 2 0)))

(DEFUN R1%(R1?j R1jj)
(SETQ R1@j(OSNAP R1?j"endp")R1Qj(OSNAP R1jj"endp")
R1lj(POLAR R1?j(+(ANGLE R1?j R1@j)(/ PI 2))100)R1&j
(INTERS R1?j R1lj R1jj R1Qj NIL))(SETQ R11j(DISTANCE R1?j R1&j)))

(DEFUN M:OFF()
(GRAPHSCR)(SETVAR"CMDECHO"0)(SETVAR"HIGHLIGHT"0)
(SETQ
R1#j(GETVAR"OSMODE")R10j(GETVAR"ORTHOMODE")R1$j(GETVAR"LUNITS")R1Oj
(GETVAR"LUPREC")R1|j(GETVAR"AUNITS")R1%j(GETVAR"AUPREC")R1?
@(GETVAR"SNAPANG"))
(IF(=(GETVAR"USERR5")0)(C:SSCALE)NIL)(PRIN1))

(DEFUN R1Q@()
(SETVAR"SNAPBASE"(LIST(CAR R1?j)(CADR R1?j)))
(SETVAR"SNAPANG"(ANGLE R1?j R1jj)))

(DEFUN R1l@()(SETVAR"OSMODE"39)
;(SETVAR"ORTHOMODE"1)
(SETVAR"SNAPMODE"0))

(DEFUN R1&@()
(COND((OR R1l R11 R11@)
(IF R1#@(PROMPT(STRCAT"\nWidth is "(R1O R10@)"\nDepth <"(R1O R1#@)">:
"))
(PROMPT(STRCAT"\nWidth is "(R1O R10@)"\nDepth: ")))
(SETQ R1$@(GETREAL)R1$@(IF R1$@ R1$@ R1#@)R1#@ R1$@))
(R1&(PROMPT(STRCAT"\nCurrent diameter is "(R1O R10@))))))

(DEFUN R1O@()
(M:OFF)
(SETVAR"OSMODE"39)


(IF R10@ NIL(SETQ R10@ 0))

(PROMPT(STRCAT"\nBranch width <"(R1O R10@)">: "))
(SETQ R1|@(GETREAL)


R1|@(IF R1|@ R1|@ R10@)

R10@ R1|@)
;(R1&@)
(SETQ R1?j(GETPOINT"\nBranch center-line: ")
R1jj(OSNAP R1?j"ENDPOINT")
R1%@(ANGLE R1?j R1jj)))

(DEFUN R1?Q()
(M:OFF)
(IF R1jQ(PROMPT(STRCAT"\nDegree of turn <"(R1O R1jQ)">: "))
(PROMPT"\nDegree of turn: "))(SETQ R1@Q(GETREAL)R1@Q
(IF R1@Q R1@Q R1jQ)R1jQ R1@Q)(SETVAR"OSMODE"39)(SETQ R1?j
(GETPOINT"\nSelect heel: ")R1jj(GETPOINT"\nSelect throat: ")R10@
(DISTANCE R1?j R1jj)))

(DEFUN C:ADT()(M:OFF)(SETQ R1QQ
(GETSTRING"\nA/D Tag: <1>/2/3/4 ")R1QQ(IF(= R1QQ"")"ADT1"
(STRCAT"ADT"R1QQ))
R1lQ(GETPOINT"\nTag point: ")
R1&Q(STRCASE(GETSTRING"\nMark: "))
R11Q(GETINT"\nCFM: "))
(COMMAND".Insert"R1QQ R1lQ R1@""0 R1&Q R11Q)(M:ON))

(DEFUN C:BR1()
(R1O@)
(R1Q@)
(R1l@)
(SETQ R1#Q(GETANGLE R1?j"\n\Direction: ")
R1@j(POLAR R1?j R1%@(/ R1|@ 2))
R1Qj(POLAR R1@j(+ R1%@ PI)R1|@)
R1lj(POLAR R1Qj R1#Q 4)
R1&j(POLAR R1@j R1#Q 4)
dpt1(POLAR R1&j R1%@ 2)
dpt2(POLAR dpt1(+ R1#Q pi)2)
dpt3(POLAR dpt2(+ R1%@ pi)(+ r1|@ 4)))
(COMMAND".PLINE"R1@j"w"0 0 R1&j R1lj R1Qj R1@@)
(COMMAND"CHANGE"(ENTLAST)"""p""la""RHVACS-PIPEDUCT""")
(COMMAND".PLINE"dpt1 dpt2 dpt3 nil)
(COMMAND"CHANGE"(ENTLAST)"""p""lt""hidden""c""2""la""RHVACS-
PIPEDUCT""")
(M:ON))

(DEFUN C:BR2()
(R1O@)
(R1Q@)
(R1l@)
(SETQ R1#Q(GETANGLE R1?j"\nDirection: ")
R1%@(GETANGLE R1?j"\nDirection of trunk air flow: ")
R1@j(POLAR R1?j R1%@(/ R1|@ 2))
R1Qj(POLAR R1@j R1#Q 4)R1lj(POLAR R1Qj(+ PI R1%@)R1|@)
R1&j(POLAR R1@j(+ PI R1%@)(+ R1|@ 4)))
(COMMAND".pLINE"R1@j"w"0 0 R1Qj R1lj R1&j R1@@)
(COMMAND"CHANGE"(ENTLAST)"""p""la""RHVACS-PIPEDUCT""")
(M:ON))

(DEFUN C:BR3()
(R1O@)
(SETQ R10Q(/(/ R10@(SIN(/ PI 4)))2))(R1Q@)(R1l@)
(SETQ R1%@(GETANGLE R1?j"\nDirection to diverge: "))
(COMMAND".Snap""R"R1?j
(POLAR R1?j(+ R1%@(/ PI 4))1))(R1l@)(SETQ R1#Q
(GETANGLE R1?j"\nBranch direction: ")R1$Q(STRCASE
(GETSTRING"\nBranch CCW? <Y>/N "))R1OQ(IF(OR(= R1$Q"")
(= R1$Q"Y"))(+ R1#Q(/ PI 2))(- R1#Q(/ PI 2)))R1@j
(POLAR R1?j R1%@ R10Q)R1Qj(POLAR R1@j R1#Q 4)R1lj
(POLAR R1Qj R1OQ R1|@)R1&j(POLAR R1?j(- R1%@ PI)R10Q))
(COMMAND".pLine"R1@j"w"0 0 R1Qj R1lj R1&j R1@@)(M:ON))

(DEFUN C:BR4()
(R1O@)
(R1Q@)
(R1l@)(SETQ R1#Q(GETANGLE R1?j"\nDirection: ")
R1|Q(POLAR R1?j R1%@(/ R10@ 2))R1@j(POLAR R1|Q R1%@ 2)
R1Qj(POLAR R1|Q R1#Q 4)
R1lj(POLAR R1Qj(+ PI R1%@)R1|@)
R1&j(POLAR R1|Q(+ PI R1%@)(+ R1|@ 2)))
(COMMAND".pLINE"R1@j"w"0 0 R1Qj R1lj R1&j R1@@)
(COMMAND"CHANGE"(ENTLAST)"""p""la""RHVACS-PIPEDUCT""")
(M:ON))

(DEFUN C:BR5()
(R1O@)
(R1Q@)
(R1l@)
(SETVAR"OSMODE"39)
(SETQ R1jj(GETPOINT R1?j"\nOther side of trunk: "))
(SETVAR"OSMODE"39)
(R1% R1?j R1jj)
(SETQ R1#Q(ANGLE R1&j R1?j)
R1|Q(POLAR R1?j R1%@(/ R10@ 2))
R1@j(POLAR R1|Q R1%@ 2)
R1Qj(POLAR R1|Q R1#Q 4)
R1lj(POLAR R1Qj(+ PI R1%@)R1|@)
R1&j(POLAR R1|Q(+ PI R1%@)(+ R1|@ 2))
R1%Q(POLAR R1?j(- R1#Q PI)(* 0.25 R10@)))
(COMMAND".Break"R1@j R1&j)
(COMMAND".pLine"R1@j"w"0 0 R1Qj R1lj R1&j"a""s"R1%Q R1@j R1@@)
(COMMAND"CHANGE"(ENTLAST)"""p""la""RHVACS-PIPEDUCT""")
(M:ON))

(DEFUN C:BR6()
(R1O@)
(SETQ R10Q(/(/ R10@(SIN(/ PI 4)))2))
(R1Q@)
(R1l@)
(SETVAR"OSMODE"39)
(SETQ R1jj(GETPOINT R1?j"\nOther side of trunk: "))
(SETVAR"OSMODE"39)
(SETQ R1%@(GETANGLE R1?j"\nDirection of air flow: "))
(R1% R1?j R1jj)
(COMMAND".Snap""R"R1?j(POLAR R1?j(+ R1%@(/ PI 4))1))
(R1l@)
(SETQ R1#Q(GETANGLE R1?j"\nBranch direction: ")
R1$Q(STRCASE(GETSTRING"\nBranch CCW? <Y>/N "))
R1OQ(IF(OR(= R1$Q"")(= R1$Q"Y"))(+ R1#Q(/ PI 2))(- R1#Q(/ PI 2)))
R1@j(POLAR R1?j R1%@ R10Q)
R1Qj(POLAR R1@j R1#Q 4)
R1lj(POLAR R1Qj R1OQ R1|@)
R1&j(POLAR R1?j(- R1%@ PI)R10Q)
R1%Q(POLAR R1?j(- R1#Q PI)(* 0.25 R10@)))
(COMMAND".Break"R1@j R1&j)
(COMMAND".pLine"R1@j"w"0 0 R1Qj R1lj R1&j"a""s"R1%Q R1@j R1@@)
(COMMAND"CHANGE"(ENTLAST)"""p""la""RHVACS-PIPEDUCT""")
(M:ON))

(DEFUN C:CAN()
(M:OFF)
(SETVAR"OSMODE"39)
(SETQ R1?j(GETPOINT"\nCanvas connector insertion point: "))
(SETVAR"OSMODE"39)
(SETQ R1jj(OSNAP R1?j"ENDP"))
(R1Q@)
(R1l@)
(SETVAR"OSMODE"39)
(SETQ R10@(GETDIST R1?j" Other side: "))
(SETVAR"OSMODE"39)
(Setq R1@Q(GETANGLE R1?j"\nInsertion angle: <0> ")
R1@Q(ANGTOS(IF R1@Q R1@Q 0)0 1))
(COMMAND".Insert"(strcat #LCET14 "/CAN")R1?j 1 R10@ R1@Q)
(COMMAND"Change"(entlast)"""p""la""RHVACS-PIPEDUCT""")
(M:ON))

(DEFUN C:CLT()
(M:OFF)
(SETVAR"OSMODE"39)
(SETQ R1?j(GETPOINT"\nStart point #1: ")
R1#@ 1
R1jj(GETPOINT R1?j"\nStart point #2: ")
R10@(DISTANCE R1?j R1jj)
R1@j(POLAR R1?j(ANGLE R1?j R1jj)(/ R10@ 2))
R1?l 1)
;(R1&@)
(WHILE R1?l
(SETQ R1jl(GETDIST"\nNew width: <no change> ")R1@l R1jl R1jl(IF R1jl
R1jl R10@))(IF(NOT R1&)
(PROGN(SETQ R1@l(IF R1@l R1@l )))
(SETQ R1@l R1jl))
(SETQ R1Ql(* 3(MAX(ABS(- R1#@ R1@l))(ABS(- R10@ R1jl)))))
(IF(= R1Ql 0)(PROMPT"*INVALID* Either depth or width must change")
(SETQ R1?l NIL)))
(PROMPT(STRCAT"\nLength: <"(R1O R1Ql)"> "))
(SETQ R1ll(GETDIST R1@j)R1ll(IF R1ll R1ll R1Ql))
(R1Q@)
(R1l@)
(SETQ R1&l(GETANGLE R1@j"\nDirection: ")
R1Qj(POLAR R1@j R1&l R1ll)
R1lj(POLAR R1Qj(ANGLE R1@j R1jj)(/ R1jl 2))
R1&j(POLAR R1lj(ANGLE R1jj R1@j)R1jl)
R10@ R1jl R1#@ R1@l)
(COMMAND".pLINE"R1&j"w"0 0 R1?j R1jj R1lj R1&j R1@@)
(COMMAND"CHANGE"(ENTLAST)"""p""la""RHVACS-PIPEDUCT""")
(M:ON))

(DEFUN C:FD()
(M:OFF)
(setvar"osmode"39)
(SETQ R1?j(GETPOINT"\nStart point on duct: "))
(setvar"osmode"39)
(setq R1&l(getpoint R1?j"Other side of duct: "))
(setvar"osmode"39)
(setq ang2(getangle r1?j"\nDirection of air flow: "))
(setq ang1(angle r1?j r1&l))
(setq dist1(distance r1?j r1&l))
(setq dist1(+ dist1 4))
(setq pt2(polar r1?j (+ pi ang1) 5.4))
(setq pt1(polar pt2 ang2 4.3))
(setq pt3(polar r1?j ang1 dist1)
R11l(STRCASE(GETSTRING"\nFire, Smoke, or Both: <F>/S/B "))
R11l(COND((OR(= R11l"")(= R11l"F"))(strcat #LCET14 "/FD"))((= R11l"S")
(strcat #LCET14 "/SD"))((= R11l"B")(strcat #LCET14 "/FSD"))))
(COMMAND".pline"pt1"w""0""8.8"pt2"w""0""0"pt3 nil)
(COMMAND"Change"(entlast)"""p""c""2""lt""hidden""la""RHVACS-
PIPEDUCT""")
(SETQ R1?j(GETPOINT"Label point: "))
(setq ad (getvar "attdia"))(SETVAR "ATTDIA" 0)
(COMMAND".Insert"R11l R1?j(getvar "dimscale")""0)
(COMMAND"Change"(entlast)"""p""la""RHVACS-PIPEDUCT-TXT""")
(setvar "attdia" ad)
(M:ON))

(DEFUN C:FLEX()(M:OFF)(IF R10@ NIL(SETQ R10@ 0))
(PROMPT(STRCAT"\nDiameter: <"(R1O R10@)"> "))(SETQ R1|@(GETREAL)R1|
@(IF R1|@ R1|@ R10@)R10@(FIX R1|@)
R10l (STRCAT #LCET14 "/F"(ITOA R10@)) R1$l(ENTSEL"\nSelect center-

line: "))(SETQ CL (GETVAR "CLAYER"))(SETVAR "CLAYER" "RHVACS-FLEXDUCT")


(COMMAND".Insert"R10l(COMMAND))(COMMAND".Measure"R1$l"B" (STRCAT
"F"(ITOA R10@))""(* 0.45 R10@))(ENTDEL(CAR R1$l))(INITGET(+ 1 2 4))

(SETQ R1lQ(GETPOINT"\nTag midpoint: "))(SETVAR "CLAYER" "RHVACS-
FLEXDUCT-TXT")(COMMAND".Text"R1lQ (getvar "textsize")"0"(STRCAT(ITOA


R10@)"%%C"))(SETVAR "CLAYER" CL)(M:ON))

(DEFUN C:LABEL()
(M:OFF)
(SETQ LAY (GETVAR "CLAYER"))
(SETVAR "CLAYER" "RHVACS-PIPEDUCT-TXT")
(PROMPT(STRCAT"\nLabeling "(COND((OR R1Q R1l)"SQUARE Duct.")
(R1&"ROUND Duct.")
(R11"FLAT-OVAL Duct."))))
(SETQ R1$l(ENTSEL"\nFace of duct: ")
R1j&(CADR R1$l)
R1?j(OSNAP R1j&"mid"))
(SETVAR"OSMODE"39)
(SETQ R1jj(GETPOINT R1?j"\nOpposite face: ")
R1@&(ENTGET(CAR R1$l))
R10@(DISTANCE R1?j R1jj)
R1&l(+(ANGLE R1?j R1jj)(/ PI 2))
R1&l(IF(AND(> R1&l(/(* 5 PI)8))
(< R1&l(/(* 13 PI)8)))(+ R1&l PI)R1&l)
R1@j(POLAR R1?j(ANGLE R1?j R1jj)(/ R10@ 2)))
(SETVAR"OSMODE"39)
(COND((OR R1Q R1l R11)
(PROMPT(STRCAT"\nWidth is "(R1O R10@)
(IF R1#@(STRCAT"\nDepth: <"(R1O R1#@)"> ")"\nDepth: ")))
(SETQ R1$@(GETREAL)
R1$@(IF R1$@ R1$@ R1#@)
R1#@ R1$@))
(R1&(PROMPT(STRCAT"\nDiameter is "(R1O R10@)))))
(COND((OR R1Q R1l)
(COMMAND".Text""m"R1@j R1@(ANGTOS R1&l 0 1)(STRCAT(R1O R10@)"x"(R1O
R1#@))))(R1&(COMMAND".Text""m"R1@j R1@(ANGTOS R1&l 0 1)(STRCAT(R1O
R10@)(CHR 129))))
(R11(COMMAND".Text""m"R1@j R1@(ANGTOS R1&l 0 1)(STRCAT(R1O
R10@)"x"(R1O R1#@)
" F"))))(SETVAR "CLAYER" LAY)
(M:ON))

(DEFUN C:MPEL()
(R1?Q)
(R1&@)
(SETQ R1Q&(* R1@Q(/ PI 180))
R1l&(POLAR R1jj(ANGLE R1?j R1jj)R10@))
(COND((AND(> R1@Q 0)(<= R1@Q 35))
(SETQ R1&&(/ R1Q& 2)R11& 0))((AND(> R1@Q 35)(<= R1@Q 71))
(SETQ R1&&(/ R1Q& 4)R11& 1))((AND(> R1@Q 71)(<= R1@Q 90))
(SETQ R1&&(/ R1Q& 8)R11& 3)))
(SETVAR"OSMODE"39)
(SETQ R1$Q(STRCASE(GETSTRING"\nElbow CCW? <Y>/N "))
R1&l(IF(OR(= R1$Q"")(= R1$Q"Y"))(-(ANGLE R1?j R1jj)(/ PI 2))(+(ANGLE
R1?j R1jj)
(/ PI 2)))
R1#& R1&l R10&(* R10@(/(SIN R1&&)(COS R1&&)))
R1$&(*(* 2 R10@)(/(SIN R1&&)(COS R1&&)))
R1O&(* 2 R10&)R1|&(* 2 R1$&)
R1%&(IF(OR(= R1$Q"")(= R1$Q"Y"))1 -1)
R1@j(POLAR R1jj R1&l R10&)
R1Qj(POLAR R1?j R1&l R1$&)
R1@Q(ABS R1@Q))
(COMMAND".Pline"R1?j R1jj R1@j R1Qj R1?j R1@@)
(COMMAND"CHANGE"(ENTLAST)"""p""la""RHVACS-PIPEDUCT""")
(SETQ R1?j R1Qj R1jj R1@j)
(REPEAT R11&
(SETQ R1&l(COND((= R11& 1)(+ R1&l(* R1%&(/ R1Q& 2))))((= R11& 3)(+
R1&l(* R1%&(/ R1Q& 4)))))
R1@j(POLAR R1jj R1&l R1O&)
R1Qj(POLAR R1?j R1&l R1|&))
(COMMAND".pLine"R1?j R1Qj R1@j R1jj R1@@)
(COMMAND"CHANGE"(ENTLAST)"""p""la""RHVACS-PIPEDUCT""")
(SETQ R1?j R1Qj R1jj R1@j))
(SETQ R1@j(POLAR R1jj(+ R1#&(* R1%& R1Q&))R10&)
R1Qj(POLAR R1?j(+ R1#&(* R1%& R1Q&))R1$&))
(COMMAND".pLine"R1?j R1Qj R1@j R1jj R1@@)
(COMMAND"CHANGE"(ENTLAST)"""p""la""RHVACS-PIPEDUCT""")
(M:ON))

(DEFUN C:MVD()
(M:OFF)
(SETQ R1j@(GETVAR"CELTYPE")
R1?1(STRCASE(GETSTRING"\nSquare or Round Damper? <S>/R "))
R1?1(IF(= R1?1"")"S"R1?1))
(SETVAR"OSMODE"39)
(SETQ R1?j(GETPOINT"\nSelect either face of duct: ")
R1jj(GETPOINT R1?j"\nSelect opposite face: "))
(SETVAR"OSMODE"39)
(R1% R1?j R1jj)
(SETQ R10@ R11j
R1@j R1&j
R1&l(ANGLE R1?j R1@j)
R1%@(+ R1&l(/ PI 2))
R1Qj(POLAR R1@j R1&l 3)
R1lj(POLAR R1?j(+ R1&l PI)3)
R1&j(POLAR R1lj R1%@ 4))
(IF(= R1?1"S")
(PROGN(SETQ R1ll(* R10@ 0.25)
R1%Q(POLAR R1?j R1&l 1.5)
R1j1(POLAR R1%Q R1%@(/ R1ll 2))
R1@1(POLAR R1j1 R1&l(- R10@ 3))
R1Q1(POLAR R1@1(+ R1%@ PI)R1ll)
R1l1(POLAR R1Q1(- R1&l PI)(- R10@ 3)))
(COMMAND".Linetype""S""HIDDEN"R1@@".pLine"R1j1"w"0 0 R1@1 R1Q1
R1l1"C")
(COMMAND"CHANGE"(ENTLAST)"""p""c""2""la""RHVACS-PIPEDUCT"""))
(PROGN(SETQ R1%Q(POLAR R1?j R1&l(/ R10@ 2)))
(COMMAND".Linetype""S""HIDDEN"R1@@".Insert"(strcat #LCET14 "/
rmvd")R1%Q(* 0.6 R10@)(- R10@ 3)(ANGTOS R1%@ 0 1))
(COMMAND"CHANGE"(ENTLAST)"""p""lt""hidden""c""2""la""RHVACS-
PIPEDUCT""")))
(COMMAND".Linetype""S""HIDDEN"R1@@)
(COMMAND".pLine"R1Qj"w"0 0 R1lj R1&j R1@@)
(COMMAND"CHANGE"(ENTLAST)"""p""c""2""la""RHVACS-PIPEDUCT""")
(COMMAND".Linetype""S"R1j@ R1@@)
(M:ON))

(DEFUN C:OS()
(M:OFF)
(SETVAR"OSMODE"39)
(SETQ R1#1(GETREAL"\nOffset angle: <20> ")
R1#1(IF R1#1 R1#1 20)R1Q&(* R1#1(/ PI 180))
R101(-(/ PI 2)R1Q&)
R1&&(/ R1Q& 2))
(SETQ R1$1(GETDIST"\nOffset distance: ")
R1?j(GETPOINT"\nFrom side: ")
R1jj(GETPOINT R1?j"\nTo side: ")
R10&(GETDIST"\nThroat: <2 in> ")
R10&(IF R10& R10& 2)
R1O1(ANGLE R1?j R1jj)
R10@(DISTANCE R1?j R1jj))
(SETVAR"OSMODE"39)
(SETQ R1$Q(GETSTRING"\nTurn CCW? <Y>/N "))
(IF(OR(= R1$Q"Y")(= R1$Q""))(SETQ R1|1(- R1O1(/ PI 2))
R1%1(- R1O1 R101))
(SETQ R1|1(+ R1O1(/ PI 2))
R1%1(+ R1O1 R101)))
(SETQ R1?#(* R10@(/(SIN R1&&)(COS R1&&)))
R1@j(POLAR R1jj R1|1 R10&)
R1Qj(POLAR R1?j R1|1(+ R10& R1?#))
R1lj(POLAR R1Qj R1%1(/ R1$1(SIN R1Q&)))
R1&j(POLAR R1lj R1|1 R10&)
R1%Q(POLAR R1&j R1O1 R10@)
R1j1(POLAR R1%Q(+ PI R1|1)(+ R10& R1?#)))
(COMMAND".pLINE"R1&j"w"0 0 R1lj R1Qj R1?j R1jj R1@j R1j1 R1%Q R1&j
R1@@)
(COMMAND"CHANGE"(entlast)"""p""la""RHVACS-PIPEDUCT""")
(M:ON))

(DEFUN C:RADL()
(R1?Q)(R1&@)
(SETQ R1$Q(STRCASE(GETSTRING"\nElbow CCW? <Y> "))
R1@Q(IF(OR(= R1$Q"")(= R1$Q"Y"))R1@Q(- R1@Q)))
(SETVAR"OSMODE"39)
(PROMPT(STRCAT"\nC/L radius <"(RTOS(* 1.5 R10@)2 1)">: "))
(SETQ R1j#(GETDIST)
R1j#(IF R1j# R1j#(* 1.5 R10@))
R1l&(POLAR R1jj(ANGLE R1?j R1jj)(- R1j#(/ R10@ 2)))
R1@#(+(ANGLE R1jj R1?j)(* R1@Q(/ PI 180)))
R1@j(POLAR R1l& R1@#(DISTANCE R1l& R1jj))
R1Qj(POLAR R1@j R1@# R10@))
(IF(OR(= R1$Q"")(= R1$Q"Y"))
(COMMAND".PLINE"R1jj"W"0 0 R1?j"a""d"(ANGTOS(-(ANGLE R1?j R1jj)(/ PI
2)))
R1Qj"l"R1@j"a""d"(ANGTOS(- R1@#(/ PI 2)))R1jj R1@@)
(COMMAND".PLINE"R1jj"W"0 0 R1?j"a""d"(ANGTOS(+(ANGLE R1?j R1jj)(/ PI
2)))
R1Qj"l"R1@j"a""d"(ANGTOS(+ R1@#(/ PI 2)))R1jj R1@@))
(COMMAND"CHANGE"(entlast)"""p""la""RHVACS-PIPEDUCT""")
(M:ON))

(DEFUN C:RO2SQ()
(M:OFF)
(SETVAR"OSMODE"39)
(SETQ R1?j(GETPOINT"\nStart Point #1: ")
R1jj(GETPOINT R1?j"\nStart point #2: ")
R1Q#(DISTANCE R1?j R1jj))
(PROMPT(STRCAT"\nCurrent diameter is "(R1O R1Q#)))
(SETQ R1jl(GETDIST"\nNew width: ")
R1Ql(* 4(ABS(- R1Q# R1jl)))
R1Ql(IF(= R1Ql 0)6 R1Ql))
(PROMPT(STRCAT"\nLength <"(R1O R1Ql)">: "))
(SETQ R1ll(GETDIST R1jj)
R1ll(IF R1ll R1ll R1Ql))
(SETQ R1@j(POLAR R1?j(ANGLE R1?j R1jj)(/ R1Q# 2)))
(R1Q@)
(R1l@)
(SETQ R1&l(GETANGLE R1@j"\nDirection: ")
R1Qj(POLAR R1@j R1&l R1ll)
R1lj(POLAR R1Qj(ANGLE R1@j R1jj)(/ R1jl 2))
R1&j(POLAR R1lj(ANGLE R1jj R1@j)R1jl)
R1%Q(POLAR R1@j(ANGLE R1?j R1jj)(/ R1Q# 4))
R1j1(POLAR R1@j(ANGLE R1jj R1?j)(/ R1Q# 4))
R10@ R1jl)
(COMMAND".pLINE"R1j1"w"0 0 R1&j R1@j R1lj
R1%Q"""CHANGE"(ENTLAST)"""p""la""RHVACS-PIPEDUCT""")
(COMMAND".pLINE"R1&j R1?j R1jj
R1lj"C""CHANGE"(ENTLAST)"""p""la""RHVACS-PIPEDUCT""")
(M:ON))

(DEFUN C:RO90()(M:OFF)(SETVAR"OSMODE"39)(SETQ
R1l#(STRCASE(GETSTRING"\nElbow Up or Down: <U>/D "))R1?
j(GETPOINT"\nStart point #1: ")R1jj(GETPOINT R1?j"\nStart point #2:
")R10@(DISTANCE R1?j R1jj))(R1Q@)(R1l@)(SETQ R1#Q(GETANGLE R1?
j"\nDirection: ")R1&#(ANGLE R1?j R1jj))(PROMPT(STRCAT"\nCenter-line
radius: <"(R1O(* 1.5 R10@))"> "))(SETQ R1$Q(GETDIST)R1$Q(IF R1$Q
R1$Q(* 1.5 R10@))R1@j(POLAR R1?j R1#Q R1$Q)R1Qj(POLAR R1jj R1#Q R1$Q))
(COMMAND".pLINE"R1Qj"w"0 0 R1jj R1?j R1@j R1@@)
(COMMAND".Arc"R1Qj"e"R1@j"r"(/ R10@ 2))(COMMAND".Arc"R1@j"e"R1Qj"r"(/
R10@ 2))(IF(OR(= R1l#"D")(= R1l#"d"))(PROGN(SETVAR"HIGHLIGHT"1)
(PROMPT"\nSelect arc to hide: ")(SSGET)
(COMMAND".Change""p""""p""lt""DASHED""")))(M:ON))

(DEFUN C:RR90()
(M:OFF)
(SETVAR"OSMODE"39)
(SETQ R1l#(STRCASE(GETSTRING"\nElbow Up or Down? <U>/D "))
R11#(STRCASE(GETSTRING"Supply or Return? <S>/R "))
R11#(IF(= R11#"")"S")
R1j@(GETVAR"CELTYPE")
R1?j(GETPOINT"\nStart point #1: ")
R1jj(GETPOINT R1?j"\nStart point #2: ")
R10@(DISTANCE R1?j R1jj))
(R1&@)
(PROMPT(STRCAT"\nCenter-line radius: <"(R1O(* 1.5 R1#@))"> "))
(SETQ R1$Q(GETDIST)
R1$Q(IF R1$Q R1$Q(* 1.5 R1#@)))
(R1Q@)
(R1l@)
(SETQ R1&l(GETANGLE R1jj"\nDirection: ")
R1lj(POLAR R1jj R1&l(- R1$Q(/ R1#@ 2)))
R1&j(POLAR R1jj R1&l(+ R1$Q(/ R1#@ 2)))
R1@j(POLAR R1?j R1&l(- R1$Q(/ R1#@ 2)))
R1Qj(POLAR R1?j R1&l(+ R1$Q(/ R1#@ 2))))
(COMMAND".pLINE"R1?j"w"0 0 R1Qj R1&j R1jj"c")
(COMMAND"CHANGE"(ENTLAST)"""p""la""RHVACS-PIPEDUCT""")
(COND((OR(= R1l#"U")(= R1l#""))
(COMMAND".pLine"R1Qj R1lj R1@j(IF(= R11#"S")R1&j)R1@@))((= R1l#"D")
(COMMAND".Linetype""S""DASHED"R1@@)
(COMMAND".pLine"R1Qj R1lj R1@j(IF(= R11#"S")R1&j)R1@@)
(COMMAND".Linetype""S"R1j@ R1@@)))
(COMMAND"CHANGE"(ENTLAST)"""p""la""RHVACS-PIPEDUCT""")
(M:ON))

(DEFUN C:S90()(M:OFF)(SETVAR"OSMODE"39)(SETQ
R1l#(STRCASE(GETSTRING"\nElbow Up or Down? <U>/D
"))R11#(STRCASE(GETSTRING"Supply or Return? <S>/R "))R11#(IF(=
R11#"")"S")R1j@(GETVAR"CELTYPE")R1?j(GETPOINT"\nStart point #1:
")R1jj(GETPOINT R1?j"\nStart point #2: ")R10@(DISTANCE R1?j R1jj)R11@
T)(R1&@)(SETQ R10&(GETDIST"\nThroat <4>: ")R10&(IF R10& R10& 4)R11@
NIL)(R1Q@)(R1l@)(SETQ R1&l(GETANGLE R1jj"\nDirection: ")R1lj(POLAR
R1jj R1&l R10&)R1&j(POLAR R1jj R1&l(+ R10& R1#@))R1@j(POLAR R1?j R1&l
R10&)R1Qj(POLAR R1?j R1&l(+ R10& R1#@)))(COMMAND".pLINE"R1Qj"w"0 0 R1?
j R1jj R1&j"c")(COND((OR(= R1l#"U")(= R1l#""))(COMMAND".pLine"R1Qj
R1lj R1@j(IF(= R11#"S")R1&j)R1@@))((= R1l#"D")
(COMMAND".Linetype""S""DASHED"R1@@)(COMMAND".pLine"R1Qj R1lj R1@j(IF(=
R11#"S")R1&j)R1@@)(COMMAND".Linetype""S"R1j@ R1@@)))(M:ON))

(DEFUN C:SQ2RO()
(M:OFF)
(SETVAR"OSMODE"39)
(SETQ R1?j(GETPOINT"\nStart point #1: ")
R1jj(GETPOINT R1?j"\nStart point #2: ")
R10@(DISTANCE R1?j R1jj))
(SETQ R1Q#(GETDIST"\nDiameter for round: ")

R1Ql(* 3(ABS(- R10@ R1Q#))))

(PROMPT(STRCAT"\nLength <"(R1O R1Ql)">: "))
(SETQ R1ll(GETDIST R1jj)R1ll(IF R1ll R1ll R1Ql))
(R1Q@)
(R1l@)
(SETQ R1&l(GETANGLE R1jj"\nDirection: ")
R1@j(POLAR R1?j(ANGLE R1?j R1jj)(/ R10@ 2))
R1Qj(POLAR R1@j R1&l R1ll)
R1%Q(POLAR R1Qj(ANGLE R1@j R1jj)(/ R1Q# 2))
R1j1(POLAR R1%Q(ANGLE R1jj R1@j)R1Q#)
R10@(DISTANCE R1%Q R1j1)
R1lj(POLAR R1Qj(ANGLE R1?j R1jj)(/ R10@ 4))
R1&j(POLAR R1Qj(ANGLE R1jj R1?j)(/ R10@ 4)))
(COMMAND".pLINE"R1&j"w"0 0 R1?j R1Qj R1jj R1lj "")
(COMMAND"CHANGE"(ENTLAST)"""p""la""RHVACS-PIPEDUCT""")
(COMMAND".pLINE"R1j1 R1?j R1jj R1%Q"C")
(COMMAND"CHANGE"(ENTLAST)"""p""la""RHVACS-PIPEDUCT""")
(M:ON))

(DEFUN C:SQRL()(R1?Q)(SETQ R10&(GETDIST"\nThroat length: <2> ")
R10&(IF R10& R10& 2)R1Q&(* R1@Q(/ PI 180))ds(getvar "dimscale"))
(SETVAR"OSMODE"39)(SETQ R1$Q(STRCASE(GETSTRING"\nElbow CCW? <Y>/N: "))
R1?#(* R10@(/(SIN(/ R1Q& 2))(COS(/ R1Q& 2)))))
(IF(OR(= R1$Q"")(= R1$Q"Y"))
(SETQ R1&l(-(ANGLE R1?j R1jj)
(/ PI 2))R1O1(+ R1&l R1Q&))(SETQ R1&l(+(ANGLE R1?j R1jj)(/ PI 2))
R1O1(- R1&l R1Q&)))
(SETQ R1@j(POLAR R1jj R1&l R10&)
R1Qj(POLAR R1?j R1&l(+ R10& R1?#))
R1lj(POLAR R1Qj R1O1(+ R10& R1?#))
R1&j(POLAR R1@j R1O1 R10&))
(COMMAND".pLINE"R1&j"w"0 0 R1@j R1jj R1?j R1Qj R1lj R1&j R1@@)
(COMMAND "change" (entlast) "" "p" "la" "RHVACS-PIPEDUCT" "")
(IF(= R1@Q 90)(PROGN(COMMAND".Insert"(strcat #LCET14 "/TV")(COMMAND))
(COMMAND".Line"R1@j R1Qj R1@@)
(SETQ R1$l(ENTLAST)R1O#(POLAR R1@j(ANGLE R1@j R1Qj)1))
(COMMAND".Measure"R1O#"B""TV""Y"(* ds 0.0833333))
(ENTDEL R1$l)))
(M:ON))

(DEFUN C:SST()
(M:OFF)
(SETVAR"OSMODE"39)
(SETQ R1?j(GETPOINT"\nChange side: ")
R1#@ 1
R1jj(GETPOINT R1?j"\nStraight side: ")
R10@(DISTANCE R1?j R1jj)R1?l 1)
(WHILE R1?l
(SETQ R1jl(GETDIST"\nNew width: <no change> ")
R1jl(IF R1jl R1jl R10@)
R1@l(IF R1@l R1@l 1)
R1Ql(* 3.0(MAX(ABS(- R1#@ R1@l))(ABS(- R10@ R1jl)))))
(IF(= R1Ql 0)(PROMPT"*INVALID* Either depth or width must change")
(SETQ R1?l NIL)))
(PROMPT(STRCAT"\nLength <"(R1O R1Ql)">: "))
(SETQ R1ll(GETDIST R1jj)
R1ll(IF R1ll R1ll R1Ql))
(R1Q@)
(R1l@)
(SETQ R1&l(GETANGLE R1jj"Show direction: ")
R1@j(POLAR R1jj R1&l R1ll)
R1Qj(POLAR R1@j(ANGLE R1jj R1?j)R1jl)R10@ R1jl R1#@ R1@l)
(COMMAND".pLINE"R1Qj"w"0 0 R1?j R1jj R1@j R1Qj R1@@)
(COMMAND"CHANGE"(ENTLAST)"""p""la""RHVACS-PIPEDUCT""")
(M:ON))

(DEFUN C:TEE()
(M:OFF)
(SETVAR"OSMODE"39)
(SETQ R1%# 0 R1?0(GETINT"\nTee Type <1>/2/3: ")
R1?0(IF R1?0 R1?0 1)
R1?j(COND((= R1?0 1)(GETPOINT"\nElbow side: "))
((OR(= R1?0 2)(= R1?0 3))
(GETPOINT"\nSide for larger elbow: ")))
R1jj(GETPOINT"\nOpposite side: ")
T(GETDIST"\nMinimum throat length <4>: ")
T(IF T T 4)
R1##(ANGLE R1?j R1jj)
R1j0(+ R1## PI)
R1@0(GETDIST"\nWidth of elbow (or larger elbow): ")
R1@j(POLAR R1?j R1## R1@0)
R10@(DISTANCE R1?j R1jj))
(COND((= R1?0 3)
(SETQ R1%#(GETDIST"\nWidth of smaller elbow: ")
R1Q0 R1jj R1jj(POLAR R1jj R1j0 R1%#))))
(R1Q@)
(R1l@)
(R1&@)
(SETQ R1%@(GETANGLE R1?j"\nDirection to go: ")
R1l0(+ R1%@ PI)
R1Qj(POLAR R1@j R1%@(+ T R1@0))
R1lj(POLAR R1Qj R1j0(+ T R1@0))
R1&j(POLAR R1lj R1l0 R1@0)
R1%Q(POLAR R1&j R1## T))
(COND((OR(= R1?0 1)(= R1?0 3))
(SETQ R1j1(POLAR R1Qj R1%@ 3.0)
R1@1(POLAR R1j1 R1##(- R10@ R1@0 R1%#))
R1Q1(POLAR R1@1 R1l0 3.0)
R1l1(POLAR R1Q1 R1##(+ R1%# T))
R1&0(POLAR R1l1 R1l0 R1%#)
R110(POLAR R1&0 R1j0 T)))
((= R1?0 2)
(SETQ R1j1(POLAR R1Qj R1##(+(- R10@ R1@0)T))
R1@1(POLAR R1j1 R1l0(- R10@ R1@0))
R1Q1(POLAR R1@1 R1j0 T))))
(COND((= R1?0 1)
(COMMAND".pLine"R1@j"w"0 0 R1j1 R1@1 R1jj R1?j R1%Q R1&j R1lj R1Qj
R1@@"change"(entlast)"""p""la""RHVACS-PIPEDUCT"""))((= R1?0 2)
(COMMAND".pLine"R1?j"w"0 0 R1jj R1Q1 R1@1 R1j1 R1lj R1&j
R1%Q"c""change"(entlast)"""p""la""RHVACS-PIPEDUCT""""Line"R1Qj R1@j
R1@@"change"(entlast)"""p""la""RHVACS-PIPEDUCT"""))
((= R1?0 3)
(COMMAND".pLine"R1Q1"w"0 0 R1l1 R1&0 R110 R1Q0 R1?j R1%Q R1&j R1lj
R1Qj R1@@"change"(entlast)"""p""la""RHVACS-PIPEDUCT"""".pLine"R1@j
R1j1 R1@1 R1jj R1@@"change"(entlast)"""p""la""RHVACS-PIPEDUCT""")))
(SETQ R1l#(STRCASE(GETSTRING"\nAdd splitter damper? N/<Y>: ")))
(IF(= R1l#"N")NIL(PROGN(COMMAND".Line"R1@j(POLAR R1@j(- R1%@(* 0.95
PI))R1@0)R1@@)
(command"change"(entlast)"""p""la""RHVACS-PIPEDUCT""")
(COMMAND".Circle"R1@j 0.5"change"(entlast)"""p""la""RHVACS-
PIPEDUCT""")
(COND((= R1?0 3)
(COMMAND".Line"R1jj(POLAR R1jj(- R1%@(* 0.95 PI))R1@0)R1@@)
(command"change"(entlast)"""p""la""RHVACS-PIPEDUCT""")
(COMMAND".Circle"R1jj 0.5)))))
(command"change"(entlast)"""p""la""RHVACS-PIPEDUCT""")
(M:ON))

(DEFUN C:TV()(M:OFF)(SETVAR"OSMODE"39)(SETQ R1?j(GETPOINT"\nElbow's
throat: ")R1jj(GETPOINT R1?j"\nElbow's heel: "))(SETVAR"OSMODE"39)
(COMMAND".Insert"(strcat #LCET14 "/TV")(COMMAND))(COMMAND".Line"R1?j
R1jj R1@@)(SETQ R1$l(ENTLAST)R1O#(POLAR R1?j(ANGLE R1?j R1jj)1))
(COMMAND".Measure"R1O#"B""TV""Y"2.125)(ENTDEL R1$l)(M:ON))(c:sscale)

Masani

unread,
Apr 6, 2010, 11:57:06 PM4/6/10
to Customize your ACAD
Jason,

I could able understand your problem.
Routine is trying to insert a block in the drawing. There is a
variable [#LCET14] which is used to build block name. I guess this
varibale should contain a path.

example :
if user enters a diameter 3. Block name will be F3. If thisblock is
available as a drawing in some specified path like c:/temp/ we have to
set the variable #LCET14 with this path. If this is the case do one
thing. At the top of the lisp routine place the following line.

(setq #LCET14 "c:/temp")

I am just placing c:/temp. You can change as per your blocks/drawings
location.

Please let me know if this solves your problem.

Regards,
Sreekar Masani

> (IF R1#@(STRCAT"\nDepth: <"(R1O R1#@)"> ...
>
> read more »

Jason

unread,
Apr 8, 2010, 11:25:19 AM4/8/10
to Customize your ACAD
Sreekar,

I set the variable as you suggested and it appears to be working fine!
Thank you for your help! I wonder if it was a change in AutoCAD 2010
or Windows 7 that had this effect? I've been using this LISP routine
for many years without this issue.

Whatever the cause, your suggestion has fixed the issue and I thank
you once again for your assistance.

- Jason

> ...
>
> read more »

Reply all
Reply to author
Forward
0 new messages