乐筑天下

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

[编程交流] 管网检查

[复制链接]

95

主题

477

帖子

383

银币

后起之秀

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

铜币
475
发表于 2022-7-6 21:54:05 | 显示全部楼层 |阅读模式
我以前从未输入过代码。net之前,但我认为我可能需要冒险进入它的东西,我试图实现。我希望能够有一个命令来检查管网,如果在不相等的地方,反转为空结构(我可能还会添加另一个结构),则将它们放在另一层。我尝试使用LISP实现这一点的原因是,我无法从vlax转储中找到任何提供此信息的信息,因此我认为这是不可能的。要做到这一点,最好的语言是什么?VBA。网络,还是其他什么?还有,什么是一个好的起点?
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 22:03:55 | 显示全部楼层
.网络开发不是一个人通常可以学会的东西,如果没有大量的时间来编码,做大量的阅读,更多的编码,当你陷入困境时访问论坛(你会),当然还有更多的编码。。。除非你已经精通另一门高级语言。
 
是什么减缓了最新AutoCAD的速度。NET开发人员认为,您已经知道的关于LISP/VBA的知识在某种程度上是适用的,而它在很大程度上是不适用的(除了常识逻辑,它应该适用于任何API)。。。有。NET开发,然后是AutoCAD。NET开发,Civil 3D在此平台上拥有自己的后续竞技场。。。如果你想为自己节省一些时间,首先要学会。NET开发,然后在学习了基础知识后再回来。
 
一旦你建立了基础,回来就像学习一个对象模型及其固有的对象、属性、方法和事件一样简单(例如,学习第二种浪漫语言的词汇)。
 
 
 
这里有一个旧的线索,可以帮助你开始。净值一般:
 
http://www.cadtutor.net/forum/showthread.php?69646-从哪里开始-。网
 
 
... 当您准备好更具体地使用Civil 3D时,请访问我的朋友Jeff的网站,在那里您可以找到一些示例源代码来学习:
 
http://www.quuxsoft.com/
 
 
说到SincPac,您在上面的原始请求,听起来很像SincPac的PIPEELEVATIONEDITOR命令。
 
 
 
 
免责声明:我和Quux在NDA下工作,所以我完全有偏见。
 
 
 
干杯
回复

使用道具 举报

95

主题

477

帖子

383

银币

后起之秀

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

铜币
475
发表于 2022-7-6 22:06:03 | 显示全部楼层
感谢BlackBox提供的提示和建议!我知道我需要开始学习。NET,因为我主要为Civil 3D编写代码。其他线程中的那些资源非常有用,感谢您的发布!我以前在Excel中做过VBA编程,所以我希望至少有一些逻辑/语法与vb类似。网
回复

使用道具 举报

95

主题

477

帖子

383

银币

后起之秀

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

铜币
475
发表于 2022-7-6 22:12:04 | 显示全部楼层
Blackbox,我很好奇您是否知道是否有方法通过LISP访问连接管道的反转高程。我知道AutoCAD有一些隐藏的函数和属性不是从vlax转储中显示的,但我不确定这是否是其中之一(还有,你知道这些隐藏函数的好来源吗?)
回复

使用道具 举报

20

主题

338

帖子

323

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-6 22:16:45 | 显示全部楼层
我意识到这个帖子有点过时了,也许你已经找到了答案。
 
要获得管道的起点和终点,需要使用以下工具:
 
让“obj”成为管道对象。
  1. (setq startpoint (vlax-safearray->list (vlax-variant-value (vlax-get-property obj 'PointAtParam 0)))) 'CenterPoint of Start of Pipe
  2. (setq endpoint (vlax-safearray->list (vlax-variant-value (vlax-get-property obj 'PointAtParam 1)))) 'CenterPoint of End of Pipe
回复

使用道具 举报

95

主题

477

帖子

383

银币

后起之秀

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

铜币
475
发表于 2022-7-6 22:19:47 | 显示全部楼层
希普,非常感谢你的帮助。这是一个代码,我一直在敲我的头有一段时间。到目前为止,我遇到的问题是1)在我有了起点和终点之后,我不知道该做什么。我该如何测试哪一个是结构中的一个?2) 理想情况下,我希望进一步扩展此代码,以便提示用户选择结构类型并输入所需的下拉列表。然后,代码将测试所有人孔,例如,看看它们是否有0.2英尺的落差。这似乎会让代码变得更复杂,我最终感觉迷失在重复循环中了,哈哈
  1. ;;;Finding the startpoint and endpoint of the pipes was written by Hippe013
  2. (defun c:invertdroptester (/ ss cnt obj pipename)
  3. (if (setq ss (ssget "_X" '((0 . "AECC_STRUCTURE"))))
  4.    (progn
  5.      (setq cnt 0)
  6.      (repeat (sslength ss)
  7.        (setq structureobj (vlax-ename->vla-object (ssname ss cnt)))
  8.        (if (and (> (vlax-get-property structureobj 'connectedpipescount) 0)
  9.                 (= (vla-get-description structureobj) "Null Structure")
  10.          (progn
  11.            (setq pipename (vlax-get-property structureobj 'connectedpipenames))
  12.            (setq ss1 (ssget "_X" '((0 . "AECC_STRUCTURE")))
  13.                  cnt1 0)
  14.            (repeat (sslength ss1)
  15.              (setq pipeobj (vlax-ename->vla-object (ssname ss1 cnt1)))
  16.              (if (= (vlax-get-property pipeobj 'displayname) pipename)
  17.                (progn
  18.                  ;;;Starting of code written by Hippe013
  19.                  (setq startpoint (vlax-safearray->list (vlax-variant-value (vlax-get-property pipeobj 'PointAtParam 0)))) ;CenterPoint of Start of Pipe
  20.                  (setq endpoint (vlax-safearray->list (vlax-variant-value (vlax-get-property pipeobj 'PointAtParam 1)))) ;CenterPoint of End of Pipe
回复

使用道具 举报

20

主题

338

帖子

323

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-6 22:26:46 | 显示全部楼层
Bronco15,
 
这很有趣,因为我已经写了一段代码来实现您的要求。不过要回答你的问题:
 
1) 一旦你有了起点和终点,你可以测试看哪个点更接近结构的中心。我只会用XY来做这个。
 
2) 这可能有点复杂,因为你需要知道哪一个保持不变,哪一个得到调整。假设该结构只有两个连接管道(输入和输出)。您是握住最低的内底并在另一个上调整另一个0.2,还是握住进水管并向下调整另一个0.2。
 
我有一些子程序,我愿意与大家分享。请注意,它们是在LISP中,而不是在vb中。网
 
如果你感兴趣,请告诉我。
 
当做
 
回复

使用道具 举报

95

主题

477

帖子

383

银币

后起之秀

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

铜币
475
发表于 2022-7-6 22:29:44 | 显示全部楼层
本,非常感谢你愿意帮忙。如果你能分享你的代码,我将不胜感激。由于信息是如何给出的,我很难找到像结构插入点这样的基本信息。因此,该代码的目标至少是不实际更改任何管道的内底,而只是检查所有内底是否满足所需的落差。
回复

使用道具 举报

20

主题

338

帖子

323

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-6 22:36:28 | 显示全部楼层
你所做的看起来相当合理。我将在周末编写一个测试代码。
回复

使用道具 举报

95

主题

477

帖子

383

银币

后起之秀

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

铜币
475
发表于 2022-7-6 22:42:54 | 显示全部楼层
哇,谢谢!我希望有一些管网的示例代码,特别是作为未来代码的良好起点。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

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

© 2020-2025 乐筑天下

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