乐筑天下

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

[编程交流] 正在寻找可以计算的Lsp

[复制链接]

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 16:48:03 | 显示全部楼层 |阅读模式
首先,大家好!很高兴成为其中一员。
我对这个论坛很陌生,所以对于AutoCad软件,我是一个地理信息系统狂热者。
 
目前正在进行一些城市规划,我的公司需要计算现有多边形、图案填充和多段线的面积。很多人在同一个项目上工作,这就是为什么我们有不同类型的几何体。
我可以手动将所有这些更改为闭合多段线,但有2000多个多边形和图案填充。
是否有任何lsp可以计算所有类型的几何体?我尝试了很多,但他们只是在计算闭合多段线。
 
非常感谢,很抱歉英语不好
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 17:02:22 | 显示全部楼层
该程序不需要闭合多段线:总面积
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 17:11:37 | 显示全部楼层
我现在正在做的事情
 
  1. ; Total HATCH area labeller
  2. (Defun C:AHAT (/ arean area2 lay col en hobj Hp num rp sset)
  3. (setq Hp (ENTGET (CAR (ENTSEL "\nPICK HATCH "))))
  4. (SETQ LAY (CDR (ASSOC 8 HP)))
  5. (setq sset (ssget  (list (cons 0 "hatch") (CONS 8 LAY))))
  6. (setq arean 0)
  7. (setq area2 0)
  8. (REPEAT (setq num (sslength sset))
  9. (setq en (ssname sset (setq num (- num 1))))
  10. (SETQ COL (CDR (ASSOC 62 (entget EN)))) ; by layer check
  11. (SETQ ARNEW (vla-get-area (vlax-ename->vla-object en)))
  12. (IF (= COL NIL)
  13. (setq AREAN (+ AREAN ARNEW))
  14. (SETQ AREA2 (+ AREA2 ARNEW))
  15. )
  16. )
  17. (ALERT (STRCAT "AREA IS ..." (RTOS AREAN 2 2)"\N\NAREA2 IS ..." (RTOS AREA2 2 2)))
  18. (princ)
  19. )
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 17:22:13 | 显示全部楼层
比加尔,是你激励我写这篇文章的:
  1. ; Total area of hatches with certain pattern
  2. (defun C:test ( / SH enx SS i Lst )
  3. (setvar 'errno 0)
  4. (while (/= 52 (getvar 'errno))
  5.    (setq SH (car (entsel "\nSelect source hatch pattern to filter by <exit>: ")))
  6.    (cond
  7.      ((= 7 (getvar 'errno)) (princ) (setvar 'errno 0))
  8.      ((and SH (/= "HATCH" (cdr (assoc 0 (setq enx (entget SH))))) (princ "\nThis is not a "HATCH".")))
  9.      (
  10.        (and
  11.          SH
  12.          (princ (strcat "\nSelect hatches with "" (cdr (assoc 2 enx)) "" pattern to sum their area: "))
  13.          (setq SS (ssget (list (assoc 0 enx) (assoc 2 enx))))
  14.          (repeat (setq i (sslength SS))
  15.            (setq Lst (cons (vla-get-Area (vlax-ename->vla-object (ssname SS (setq i (1- i))))) Lst))
  16.          )
  17.          (not (alert (strcat "\nTotal area of the hatch with "" (cdr (assoc 2 enx)) "" pattern is: " (rtos (apply '+ Lst) 2 2) " units.")))
  18.        )
  19.        (setvar 'errno 52)
  20.      )
  21.    )
  22. )
  23. (princ)
  24. )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 17:29:46 | 显示全部楼层
@Grrr/BIGAL:注意查询具有自交边界的图案填充对象的ActiveX区域属性的问题
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 17:43:17 | 显示全部楼层
 
哦,对了,我没有考虑过这种情况!
把我的灵感作为一个概念(谢天谢地,我不需要真正使用它)。
回复

使用道具 举报

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 17:55:07 | 显示全部楼层
非常感谢。
我没想到会得到这样的帮助。有了这个lisp-s和一些小编辑,我设法得到了总面积。我没有太多的代码制作经验,但我编辑了Princ(或Grr)的代码,得到了不同lsp的mpolygons结果,然后是不同的图案填充和多段线。
无论如何,非常感谢!
库姆布拉!
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 14:03 , Processed in 0.492361 second(s), 66 queries .

© 2020-2025 乐筑天下

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