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