我大约5年没有写任何lisp文件了,所以我有点生疏。
我想使用lisp函数将文本框添加到包含几个变量的图形中。
我的大部分工作正常,但我有几个小问题。
当我完成了一个平面模式的数控切割,我目前添加了一些信息的底部绘图的机器操作员,所以我决定加快了一点与lisp功能。
第一部分用于在图案的长度和宽度上绘制两条线,然后单击这些线以获取文本框的属性。
我更喜欢使用两个拾取点,如左下角和右上角来获得尺寸,但我不知道如何做到这一点。
另一个问题是,我想把每个值加50mm到一行中,表示图纸尺寸,但我无法得到任何方程。
任何帮助都将不胜感激。
谢谢
- (defun c:l2(/ lSel hsel spt lLen hlen)
- (vl-load-com)
- ;Draw construction lines
- (setq previouslayer (getvar "clayer"))
- (command "-Layer" "Set" "Defpoints" "")
- (command "_line" pause pause "")
- (command "_line" pause pause "")
- (command "-Layer" "Set" previouslayer "")
- ;select construction lines
- (if (and
- (setq lSel (entsel "\nSelect length"))
- (setq hSel (entsel "\nSelect height"))
- )
- ;Get selected line info
- (progn
- ;length
- (setq lObj
- (vlax-ename->vla-object(car lSel))
- sPt
- (cadr lSel)
- lLen ; Length
- (rtos (vla-get-Length lObj))
- )
- ;height
- (setq lObj
- (vlax-ename->vla-object(car hSel))
- sPt
- (cadr hSel)
- hLen ; Height
- (rtos (vla-get-Length lObj))
- )
- ;Place data in mtext box
- (setq previouslayer (getvar "clayer"))
- (command "-Layer" "Set" "TEXT" "")
- (command "_mtext" pause "s" "standard" "h" "20" "w" "500"
- (strcat (getvar "dwgname"))
- (strcat (menucmd "M=$(edtime,$(getvar,date),D MON YY )"))
- (strcat "Length = " lLen )
- (strcat "Height = " hLen)
- (strcat "Sheet = " )
- (strcat "Drawn By "(getvar "loginname"))
- ""); end command
- (command "-Layer" "Set" previouslayer "")
- ); end progn
- );end if
- (princ)
- ); end
|