乐筑天下

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

[编程交流] 管网检查

[复制链接]

20

主题

338

帖子

323

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-6 22:46:31 | 显示全部楼层
Broncos15,
 
下面是一些示例代码,用于获取连接管道的结构,并列出管道内底。我们是否应该在visual lisp部分中启动一个新线程来列出管道和结构的lisp代码?
 
  1. (defun C:PrintStructure ()
  2. (setq ss (selectstructure))
  3. (setq struct (vlax-ename->vla-object (ssname ss 0)))
  4. (princ (strcat "\n" (vlax-get-property struct 'DisplayName) " - Sump Elevation: "
  5.          (rtos (vlax-get-property struct 'SumpElevation) 2 2)))
  6. (setq cnt (vlax-get-property obj 'ConnectedPipesCount))
  7. (setq i 0)
  8. (repeat cnt
  9.    (setq pipe (vlax-get-property struct 'ConnectedPipe i))
  10.    (setq end (getend struct pipe))
  11.    (setq dia (vlax-get-property pipe 'InnerDiameterOrWidth))
  12.    (setq p (vlax-safearray->list (vlax-variant-value (vlax-get-property pipe 'PointAtParam end))))
  13.    (setq inv (- (caddr p) (/ dia 2.0)))
  14.    (princ (strcat "\n" (vlax-get-property pipe 'DisplayName) " - Invert: " (rtos inv 2 2)))
  15.    (setq i (+ i 1))
  16.    )
  17. (princ)
  18. )
  19. (defun getend (struct pipe)
  20. (setq p (vlax-get-property struct 'Position))
  21. (setq p (list (vlax-get-property p 'X)(vlax-get-property p 'Y)))
  22. (setq p0 (vlax-safearray->list (vlax-variant-value (vlax-get-property pipe 'PointAtParam 0))))
  23. (setq p1 (vlax-safearray->list (vlax-variant-value (vlax-get-property pipe 'PointAtParam 1))))
  24. (if (< (distance (list (car p0)(cadr p0)) p)
  25. (distance (list (car p1)(cadr p1)) p))
  26.    0
  27.    1))
  28. (defun selectstructure ()
  29. (princ "\nSelect Structure: ")
  30. (setq sel (ssget "_+.:S"  '((0 . "AECC_STRUCTURE"))))
  31. (if (not sel)
  32.    (progn
  33.      (princ "\nOops, Invalid Selection")
  34.      (selectstructure)))
  35. sel
  36. )
回复

使用道具 举报

95

主题

477

帖子

383

银币

后起之秀

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

铜币
475
发表于 2022-7-6 22:52:20 | 显示全部楼层
谢谢你,希普!我将用这个和我添加的编辑在LISP中开始一个线程。此外,代码中有一个小错误,
  1. (setq cnt (vlax-get-property obj 'ConnectedPipesCount))
  1. (setq cnt (vlax-get-property struct 'ConnectedPipesCount))
回复

使用道具 举报

20

主题

338

帖子

323

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-6 22:55:45 | 显示全部楼层
接得好。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 13:19 , Processed in 0.671064 second(s), 57 queries .

© 2020-2025 乐筑天下

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