乐筑天下

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

[编程交流] 通过单击获取多段线区域

[复制链接]

2

主题

4

帖子

2

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 17:32:33 | 显示全部楼层 |阅读模式
你好,
 
 
我有一个LisP文件,可以帮助我获得闭合多段线的面积值,并将其分配给文本。它需要在内部拾取一个点,然后围绕拾取的点创建最近的多段线。
但是,我的图形已经有一些多段线,我想通过单击多段线本身来获得它们的面积。
不幸的是,我对LisP一无所知。希望你们能帮我解决这个问题。
Thx太多了!
(详见附件)
DTICH。LSP
回复

使用道具 举报

55

主题

402

帖子

357

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
274
发表于 2022-7-5 17:54:32 | 显示全部楼层
  1. (defun c:test ( / a b c)
  2. (if (setq a (ssget '((0 . "*polyline"))))
  3.    (progn
  4.      (setq b 0)
  5.      (repeat (setq i (sslength a))
  6. (setq b
  7.        (+ (vla-get-area
  8.                (vlax-ename->vla-object (ssname a (setq i (1- i))))
  9.              )
  10.              b
  11.        )
  12. )
  13.      )
  14.      (setq c (strcat "\nComponent Area : " (rtos b 2 5)))
  15.      (alert c)
  16.      (prompt c)
  17.    )
  18. )
  19. (princ)
  20. )
回复

使用道具 举报

2

主题

4

帖子

2

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 18:02:54 | 显示全部楼层
似乎您的LisP用于获取多段线的面积之和。有没有关于分隔多段线的想法?
谢谢你的评论!
回复

使用道具 举报

55

主题

402

帖子

357

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
274
发表于 2022-7-5 18:19:03 | 显示全部楼层
您可以在此时选择其他选项
回复

使用道具 举报

55

主题

402

帖子

357

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
274
发表于 2022-7-5 18:23:29 | 显示全部楼层
这一条用多段线起点处的区域标记文本。
[code](defun c:测试(/a b c)(vl load com)(if(setq a(ssget’((0.*多段线)))(repeat(setq i(sslength a))(setq b(vlax ename->vla object(ssname a(setq i(1-i))))(setq c(vlax get b‘坐标))(command.text“c”“\u non”(list(car c)(cadr c))50;
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 18:36:42 | 显示全部楼层
另一种方法是仍然使用bpoly获取其区域,然后擦除最后一个并写入文本。我认为GP的代码有一个出色的区域例程,它可以计算出文本位置的区域中心。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 05:48 , Processed in 0.503913 second(s), 75 queries .

© 2020-2025 乐筑天下

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