为什么文本没有出现
我已经浏览了所有旧的lisp文件,并将lisp从170多个缩小到了60个,这一个有一个很好的概念,它只是不能一直工作。它在获取面积(用于面积提取)后插入房间名称块,并在输入插入的信息B后请求房间名称行1和2以及房间编号,但没有刚刚插入的面积、房间名称和房间编号。什么是不对的,我该如何修复它。我对Lisp程序知道得不多,我几乎看不懂,以前也没有创建过自己的Lisp程序。(DEFUN C:ARE ()
(IF (TBLSEARCH "LAYER" "ROOMNAMES" )
(PROGN
(SETQ RGN (GETVAR "REGENMODE" ))
(SETVAR "REGENMODE" 0)
(COMMAND "LAYER" "M" "DESIGN")
(COMMAND "C" "1" "")
(COMMAND "")
(COMMAND "LAYER" "S" "ROOMNAMES" "")
(SETVAR "REGENMODE" RGN)
);PROGN
); IF
(SETQ AR2 (ENTSEL "\N PICK AREA"))
(COMMAND "AREA" "E" AR2 )
(SETQ AR (GETVAR "AREA"))
(SETQ AR1 (/ AR 144 ))
(SETQ AR2 (RTOS AR1 2 1))
(SETQ SCL (GETVAR "DIMSCALE"))
(SETQ PNT (GETPOINT "\ N PICK INSERTION POINT:"))
(SETQ NME (GETSTRING "\ N ENTER ROOMNAME LINE#2"))
(SETQ NME2 (GETSTRING "\ N ENTER ROOMNAME LINE #1"))
(SETQ NME3 (GETSTRING "\ N ENTER NUMBER"))
(COMMAND "INSERT" "ROOM" PNT SCL SCL "0" NME NME2 NME3 AR2)
)
LISP似乎写得非常糟糕-我会尝试重写。 Lisp程序写得更好:
(defun c:ARE (/ *error* varlist oldvars ar2 ar scl pnt nme2 nme nme3)
(defun *error* (msg)
(mapcar 'setvar varlist oldvars)
(if (= msg "")
(princ "\nFunction Complete.")
(princ (strcat "\n" (strcase msg)))
) ;_end if
(princ)
) ;_end defun
(setq varlist (list "CMDECHO" "ATTREQ" "CLAYER" "OSMODE")
oldvars (mapcar 'getvar varlist)
) ;_end setq
(mapcar 'setvar varlist (list 0 1 "0" 0))
(if (not (tblsearch "LAYER" "ROOMNAMES"))
(command "-layer" "m" "ROOMNAMES" "C" "1" "ROOMNAMES" "")
(setvar "clayer" "ROOMNAMES")
) ; if
(while
(not ar2)
(setq ar2 (car (entsel "\nPick Area: ")))
) ;_end while
(command "_area" "object" ar2)
(setq ar(rtos (/ (getvar "AREA") 144) 2 1)
scl (getvar "dimscale")
) ;_end setq
(if (and
(setq pnt(getpoint "\nPick insertion point:")
nme2 (getstring "\nEnter Roomname Line #1: ")
nme(getstring "\nEnter Roomname Line #2: ")
nme3 (getstring "\nEnter Number: ")
) ;_end setq
) ;_end and
(command "-insert" "room" pnt scl scl "0.0" nme nme2 nme3 ar)
) ;_end if
(*error* "")
(princ)
) ;_end defun
如果这不能正常工作,请提供您正在使用的块,我将进行测试。 Lisp程序有帮助吗? 我得到了同样的结果。我把积木挂上了。谢谢你的帮助
图纸3.dwg 好啊
使用此代码:
在块dwg中,分解块并从图形中清除块,然后另存为房间。dwg在ACAD库搜索路径中,它将工作。 这几乎完美无瑕。出于某种原因,虽然它没有在插入点插入,但它会偏离约1.5英尺。我该如何解决这个问题?我注意到,当我选择块时,它在插入点处有一个夹点,如果这有助于了解其插入关闭的原因的话。 nvm我修复了它。我的区块在原始dwg中不是0,0,我移动了它,现在它工作得很好,谢谢! 好极了-我想这可能是关于插入点的问题。
很高兴你能正常工作。
页:
[1]