另一直线弧交点
我确信这是一个简单的解决方案,我不确定我做错了什么。我在这里搜索了论坛,看了很多例子,这就是为什么我看不出有什么错。我有一条与弧相交的线,如果该线被延伸以满足弧,那么简单的lisp可以工作,如果该线不接触,则无法使其工作,并且不确定为什么不使用扩展实体。
(vl-load-com)
(setq obj1 (vlax-ename->vla-object (car(entsel "\nPick arc :"))))
(setq obj2 (vlax-ename->vla-object (car(entsel "\nPick line :"))))
(setq intpt (vlax-invoke obj1 'intersectWith obj2 1))
; 1 is extend line acExtendthisentity
;(setq intpt (vlax-invoke obj1 'intersectWith obj2 acExtendnone))
; 0 is acExtendnone
(command "point" intpt)
(princ)
你就快到了,尝试更新
(setq intpt (vlax-invoke obj1 'intersectWith obj2 1))
到
(setq intpt (vlax-invoke obj2 'intersectWith obj1 acExtendThisEntity)) 发现它需要使用acExtendOtherEntity它总是一个简单的答案,但在帮助中有时很难找到它。
(setq intpt(vlax调用obj1’与obj2 acExtendotherEntity相交)
而且
(setq intpt(vlax调用obj1’与obj2 2相交)
; 2是acExtendotherEntity
; 3是acExtendboth 没有想过在这种情况下使用acExtendOtherEntity
以后可能会发现它很有用 感谢jammie获得了扩展哪一个的顺序,这会有所不同。两种方法都有效。
仅仅是一个小怪癖,需要注意的是,osnaps可以超越答案。 比加尔,
OSNAP不会影响VL/Ent*方法,因此我建议使用以下方法:
(lambda (p) (entmakex (cons 0 "POINT") (cons 10 p)))
创建您的点。
另一个有用的线索:
http://www.cadtutor.net/forum/showthread.php?t=44768 好奇的
为什么在这里使用lambda? 我想展示一个通用的例子(即,不要使它特定于一个变量),但不想定义一个函数来实现它-也许没有必要,但猫可以在许多方面被剥皮 这很有道理
如何调用表达式来实际创建点? 在这个例子中可能不太实际,但是:
((lambda (p) (entmakex (cons 0 "POINT") (cons 10 p)))intpt)
页:
[1]
2