乐筑天下

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

[编程交流] Lisp面积和/或po长度

[复制链接]

2

主题

19

帖子

19

银币

初来乍到

Rank: 1

铜币
9
发表于 2022-7-5 15:24:23 | 显示全部楼层 |阅读模式
我正在寻找一条lisp rutine,将多段线的面积或周长作为引线,但我希望它是动态的(字段),随着多段线的更改,引线内的值应该更改。
 
谢谢你的关注。
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-5 15:29:22 | 显示全部楼层
试试这个
 
  1. (defun C:FA  (/ acsp adoc cpt elist en ent fld lead_obj lpt mtx oid osm)
  2. (vl-load-com)
  3. (or adoc
  4.      (setq adoc
  5.      (vla-get-activedocument
  6.        (vlax-get-acad-object)
  7.        )
  8.     )
  9.      )
  10. (if (and
  11. (= (getvar "tilemode") 0)
  12. (= (getvar "cvport") 1)
  13. )
  14.    (setq acsp (vla-get-paperspace adoc))
  15.    (setq acsp (vla-get-modelspace adoc))
  16.    )
  17. (setq osm (getvar "osmode"))
  18. (setvar "osmode" 0)
  19. (while
  20.    (setq ent (entsel "\nSelect pline or hit Enter to exit"))
  21.     (setq en (car ent))
  22.     (if (wcmatch (cdr (assoc 0 (setq elist (entget en)))) "*POLYLINE")
  23.       (progn
  24. (setq cpt (trans (cadr ent)1 0)
  25.        lpt (trans (getpoint cpt "\nPick the ending point of leader:") 1 0)
  26.        )
  27. (setq oID (vla-get-objectid (vlax-ename->vla-object en)))
  28. (setq fld
  29.         (strcat
  30.           (strcat "Area = " "%<\\AcObjProp Object(%<\\_ObjId "
  31.                   (itoa oID)
  32.                   ">%).Area \\f "%lu2%pr2">%"
  33.                   "\\P")
  34.           (strcat "Perimeter = " "%<\\AcObjProp Object(%<\\_ObjId "
  35.                   (itoa oID)
  36.                   ">%).Length \\f "%lu2%pr2">%"))
  37.        )
  38. (setq mtx (vlax-invoke
  39.              acsp 'AddMText lpt 0.0 fld)
  40.        )
  41. (vlax-put mtx
  42.            'AttachmentPoint
  43.            (cond ((> (car cpt) (car lpt))
  44.                   6
  45.                   )
  46.                  ((< (car cpt) (car lpt))
  47.                   4
  48.                   )
  49.                  (T 4)
  50.                  )
  51.            )
  52. (vlax-put mtx 'Height (getvar "textsize"))
  53. (setq lead_obj        (vlax-invoke
  54.                   acsp
  55.                   'Addleader
  56.                   (apply 'append (list cpt lpt))
  57.                   mtx
  58.                   acLineWithArrow
  59.                   )
  60.        )
  61. (vlax-put lead_obj 'VerticalTextPosition 0);1
  62. )
  63.       )
  64.     )
  65. (setvar "osmode" osm)
  66. (princ)
  67. )
  68. (princ "\n Start command with FA ...")
  69. (princ)
回复

使用道具 举报

2

主题

19

帖子

19

银币

初来乍到

Rank: 1

铜币
9
发表于 2022-7-5 15:33:56 | 显示全部楼层
测试它,直到现在看起来很好。
非常感谢
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-5 15:35:21 | 显示全部楼层
很高兴我帮了你
干杯
 
~'J'~
回复

使用道具 举报

1

主题

14

帖子

13

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 15:38:36 | 显示全部楼层
当多段线更改时,区域的文字如何更改?如何更改文本格式?我不熟悉lisp例程
 
谢谢
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-5 15:41:00 | 显示全部楼层
欢迎登机,特莫!
不够清楚您需要什么格式
我猜您希望添加具有特定精度的文本
和单位
你用什么单位?公制还是英制?
最好将小屏幕截图附加为。此处为jpg文件
使用下面的“管理附件”按钮
更改多段线后,文本应该会更改
自动,只需在主菜单中使用View->Regen即可
 
Hth公司
 
~'J'~
回复

使用道具 举报

1

主题

14

帖子

13

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 15:46:38 | 显示全部楼层
regen命令有效。。。我想添加平方英尺而不是平方英寸的文本。数值高亮显示,我想去掉它。我该怎么做?
 
谢谢
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-5 15:47:56 | 显示全部楼层
请尝试以下表达式:
  1. (setq fld
  2.         (strcat
  3.           (strcat "Area = " "%<\\AcObjProp Object(%<\\_ObjId "
  4.                   (itoa oID)
  5.                   ">%).Area \\f "%pr1%lu2%ct4%qf1 SQ. FT.">%"
  6.                   "\\P")
  7.           (strcat "Perimeter = " "%<\\AcObjProp Object(%<\\_ObjId "
  8.                   (itoa oID)
  9.                   ">%).Length \\f "%lu3%pr1">%"))
  10.        )

 
要在重生成后取消高亮显示多段线,只需按ESC键
 
~'J'~
回复

使用道具 举报

1

主题

14

帖子

13

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 15:51:30 | 显示全部楼层
这奏效了。我可以显示“手柄Id”而不是显示的周长吗?你在哪里学的?如何发布图像,以便显示突出显示的内容?
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-5 15:53:20 | 显示全部楼层
试试另一个:
  1. (setq fld
  2.         (strcat
  3.           (strcat "Area = " "%<\\AcObjProp Object(%<\\_ObjId "
  4.                   (itoa oID)
  5.                   ">%).Area \\f "%lu2%pr2">%"
  6.                   "\\P")
  7.           (strcat "Handle ID = " (vla-get-handle (vlax-ename->vla-object en))
  8. ))
  9.        )

 
要在此处上载内容,请向下滚动此页面
并使用“管理附件”按钮
 
~'J'~
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-14 03:10 , Processed in 1.031607 second(s), 72 queries .

© 2020-2025 乐筑天下

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