多行文字的尺寸
我大约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 好啊
似乎没有人能帮我解决这个问题,但我已经解决了,所以我会把它贴出来,以防它对别人有帮助。
; mtext info for plasma operator 10 high
(defun c:l10()
(setq point1 (getpoint "\nBottom Left Point"))
(setq point2 (getpoint point1 "\nTop Right Point"))
(setq point1X (car point1))
(setq point2X (car point2))
(setq Xdist (- point2X point1X))
(setq point1Y (cadr point1))
(setq point2Y (cadr point2))
(setq Ydist (- point2Y point1Y))
(command "-Layer" "Set" "TEXT" "")
(command "_mtext" pause "s" "standard" "h" "10" "w" "500"
(strcat (getvar "dwgname"))
;(strcat "By "(getvar "loginname"))
(strcat (menucmd "M=$(edtime,$(getvar,date),D MON YY )"))
(strcat "Length = " (rtos XDIST 2 1) )
(strcat "Height = " (rtos YDIST 2 1) )
" "
(strcat "Sheet = " (rtos(+ xdist 50) 2 1) " X " (rtos(+ ydist 50) 2 1) )
""); end command
(command "-Layer" "Set" previouslayer "")
(princ)
); end 你真慷慨
页:
[1]