dbgeek 发表于 2022-7-6 16:40:36

多行文字的尺寸

我大约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

dbgeek 发表于 2022-7-6 17:16:14

好啊
 
似乎没有人能帮我解决这个问题,但我已经解决了,所以我会把它贴出来,以防它对别人有帮助。
 
; 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

Lee Mac 发表于 2022-7-6 18:06:38

你真慷慨
页: [1]
查看完整版本: 多行文字的尺寸