BIGAL 发表于 2022-7-6 11:28:26

另一直线弧交点

我确信这是一个简单的解决方案,我不确定我做错了什么。我在这里搜索了论坛,看了很多例子,这就是为什么我看不出有什么错。
 
我有一条与弧相交的线,如果该线被延伸以满足弧,那么简单的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)

jammie 发表于 2022-7-6 11:34:48

你就快到了,尝试更新
 
(setq intpt (vlax-invoke obj1 'intersectWith obj2 1))
 

 
(setq intpt (vlax-invoke obj2 'intersectWith obj1 acExtendThisEntity))

BIGAL 发表于 2022-7-6 11:38:15

发现它需要使用acExtendOtherEntity它总是一个简单的答案,但在帮助中有时很难找到它。
 
(setq intpt(vlax调用obj1’与obj2 acExtendotherEntity相交)
 
而且
(setq intpt(vlax调用obj1’与obj2 2相交)
; 2是acExtendotherEntity
; 3是acExtendboth

jammie 发表于 2022-7-6 11:45:07

没有想过在这种情况下使用acExtendOtherEntity
 
以后可能会发现它很有用

BIGAL 发表于 2022-7-6 11:47:31

感谢jammie获得了扩展哪一个的顺序,这会有所不同。两种方法都有效。
 
仅仅是一个小怪癖,需要注意的是,osnaps可以超越答案。

Lee Mac 发表于 2022-7-6 11:51:03

比加尔,
 
OSNAP不会影响VL/Ent*方法,因此我建议使用以下方法:
 

(lambda (p) (entmakex (cons 0 "POINT") (cons 10 p)))

 
创建您的点。
 
另一个有用的线索:
 
http://www.cadtutor.net/forum/showthread.php?t=44768

jammie 发表于 2022-7-6 11:57:25

好奇的
 
为什么在这里使用lambda?

Lee Mac 发表于 2022-7-6 11:59:25

我想展示一个通用的例子(即,不要使它特定于一个变量),但不想定义一个函数来实现它-也许没有必要,但猫可以在许多方面被剥皮

jammie 发表于 2022-7-6 12:04:25

这很有道理
 
如何调用表达式来实际创建点?

Lee Mac 发表于 2022-7-6 12:08:50

在这个例子中可能不太实际,但是:
 

((lambda (p) (entmakex (cons 0 "POINT") (cons 10 p)))intpt)
页: [1] 2
查看完整版本: 另一直线弧交点