乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 112|回复: 2

[编程交流] 多行文字的尺寸

[复制链接]

1

主题

8

帖子

7

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 16:40:36 | 显示全部楼层 |阅读模式
我大约5年没有写任何lisp文件了,所以我有点生疏。
 
我想使用lisp函数将文本框添加到包含几个变量的图形中。
我的大部分工作正常,但我有几个小问题。
当我完成了一个平面模式的数控切割,我目前添加了一些信息的底部绘图的机器操作员,所以我决定加快了一点与lisp功能。
 
第一部分用于在图案的长度和宽度上绘制两条线,然后单击这些线以获取文本框的属性。
我更喜欢使用两个拾取点,如左下角和右上角来获得尺寸,但我不知道如何做到这一点。
 
另一个问题是,我想把每个值加50mm到一行中,表示图纸尺寸,但我无法得到任何方程。
 
任何帮助都将不胜感激。
 
谢谢
 
  1. (defun c:l2(/ lSel hsel spt lLen hlen)
  2. (vl-load-com)
  3. ;Draw construction lines
  4. (setq previouslayer (getvar "clayer"))
  5. (command "-Layer" "Set" "Defpoints" "")
  6. (command "_line" pause pause "")
  7. (command "_line" pause pause "")
  8. (command "-Layer" "Set" previouslayer "")
  9. ;select construction lines
  10. (if (and
  11.           (setq lSel (entsel "\nSelect length"))
  12.           (setq hSel (entsel "\nSelect height"))
  13.       )
  14. ;Get selected line info
  15.    (progn
  16. ;length
  17.      (setq lObj
  18.                 (vlax-ename->vla-object(car lSel))
  19.                sPt
  20.                 (cadr lSel)
  21.                lLen ; Length
  22.                 (rtos (vla-get-Length lObj))
  23.                )
  24. ;height
  25.      (setq lObj
  26.                 (vlax-ename->vla-object(car hSel))
  27.                sPt
  28.                 (cadr hSel)
  29.                hLen ; Height
  30.                 (rtos (vla-get-Length lObj))
  31.                )
  32. ;Place data in mtext box
  33. (setq previouslayer (getvar "clayer"))
  34. (command "-Layer" "Set" "TEXT" "")
  35.      (command "_mtext" pause "s" "standard" "h" "20" "w" "500"              
  36.               (strcat (getvar "dwgname"))
  37.               (strcat (menucmd "M=$(edtime,$(getvar,date),D MON YY )"))
  38.               (strcat "Length = " lLen )
  39.               (strcat "Height = " hLen)
  40.               (strcat "Sheet = " )
  41.               (strcat "Drawn By "(getvar "loginname"))
  42.                   ""); end command
  43. (command "-Layer" "Set" previouslayer "")
  44.      ); end progn
  45.    );end if
  46. (princ)
  47. ); end
回复

使用道具 举报

1

主题

8

帖子

7

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 17:16:14 | 显示全部楼层
好啊
 
似乎没有人能帮我解决这个问题,但我已经解决了,所以我会把它贴出来,以防它对别人有帮助。
 
  1. ; mtext info for plasma operator 10 high
  2. (defun c:l10()
  3. (setq point1 (getpoint "\nBottom Left Point"))
  4. (setq point2 (getpoint point1 "\nTop Right Point"))
  5. (setq point1X (car point1))
  6. (setq point2X (car point2))
  7. (setq Xdist (- point2X point1X))
  8. (setq point1Y (cadr point1))
  9. (setq point2Y (cadr point2))
  10. (setq Ydist (- point2Y point1Y))
  11. (command "-Layer" "Set" "TEXT" "")
  12.      (command "_mtext" pause "s" "standard" "h" "10" "w" "500"              
  13.               (strcat (getvar "dwgname"))
  14.               ;(strcat "By "(getvar "loginname"))
  15.               (strcat (menucmd "M=$(edtime,$(getvar,date),D MON YY )"))
  16.               (strcat "Length = " (rtos XDIST 2 1) )
  17.               (strcat "Height = " (rtos YDIST 2 1) )
  18.               " "
  19.               (strcat "Sheet = " (rtos(+ xdist 50) 2 1) " X " (rtos(+ ydist 50) 2 1) )
  20.                   ""); end command
  21. (command "-Layer" "Set" previouslayer "")
  22. (princ)
  23. ); end
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 18:06:38 | 显示全部楼层
你真慷慨
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-4 19:36 , Processed in 0.312836 second(s), 58 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表