xiatian 发表于 2008-6-4 17:06:00

[原创]vla-lntersectwith如何从VBA转化为VL

<p>我要求两多义线的交点,看了<font color="#ff0000"><strong>mccad管理员的帖子和</strong></font><font color="#000000"><a href="http://www.mjtd.com/object/acad2004/idh_intersectwith.htm">http://www.mjtd.com/object/acad2004/idh_intersectwith.htm</a>关于<p class="MsoNormal" align="left" style="MARGIN: 7.65pt 0cm 5pt; TEXT-INDENT: 3pt; TEXT-ALIGN: left; mso-pagination: widow-orphan;"><font face="Times New Roman">IntersectWith </font>方法的说明,写了下面的程序,(defun c:pll()<br/>&nbsp; (vl-load-com)<br/>&nbsp; (setq myacad (vlax-get-acad-object))<br/>&nbsp; (setq mydoc (vla-get-ActiveDocument myacad))<br/>&nbsp; (setq myms (vla-get-ModelSpace mydoc))<br/>&nbsp; (setq myline (vla-addline myms(vlax-3d-point '(10 20)) (vlax-3d-point '(30 80))))<br/>&nbsp; (setq myline2 (vla-addline myms(vlax-3d-point '(10 40)) (vlax-3d-point '(60 40))))<br/>&nbsp; (setq mypoint(vla-IntersectWith myms myline myline2))<br/>)调用(setq mypoint(vla-IntersectWith myms myline myline2))显示:错误: ActiveX 服务器返回错误: 未知名称: IntersectWith有哪为高手给指点一下..</p></font></p><p class="MsoNormal" align="left" style="MARGIN: 7.65pt 0cm 5pt; TEXT-INDENT: 3pt; TEXT-ALIGN: left; mso-pagination: widow-orphan;"><font face="Times New Roman">IntersectWith </font>方法的说明,写了下面的程序,(defun c:pll()<br/>&nbsp; (vl-load-com)<br/>&nbsp; (setq myacad (vlax-get-acad-object))<br/>&nbsp; (setq mydoc (vla-get-ActiveDocument myacad))<br/>&nbsp; (setq myms (vla-get-ModelSpace mydoc))<br/>&nbsp; (setq myline (vla-addline myms(vlax-3d-point '(10 20)) (vlax-3d-point '(30 80))))<br/>&nbsp; (setq myline2 (vla-addline myms(vlax-3d-point '(10 40)) (vlax-3d-point '(60 40))))<br/>&nbsp; (setq mypoint(vla-IntersectWith myms myline myline2))<br/>)调用(setq mypoint(vla-IntersectWith myms myline myline2))显示:错误: ActiveX 服务器返回错误: 未知名称: IntersectWith有哪为高手给指点一下..</p>

Andyhon 发表于 2008-6-4 17:27:00

Command: (setq mypoint (vla-IntersectWith myline myline 2))<br/>#&lt;variant 8197 ...&gt;

xiatian 发表于 2008-6-4 17:41:00

谢谢了..<strong><font face="Verdana" color="#61b713">Andyhon.多谢指点..</font></strong>

xiatian 发表于 2008-6-5 11:01:00

<p><strong><font face="Verdana" color="#61b713">Andyhon版主,我按照你的指点,我得到了交点,可无法返回交点的坐标.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (vlax-variant-value mypoint)<br/>#&lt;safearray...&gt;</font></strong></p><p><strong><font face="Verdana" color="#61b713">命令: (vlax-variant-type mypoint)<br/>8197命令: (vlax-safearray-&gt;list mypoint)<br/>; 错误: 参数类型错误: safearrayp #&lt;variant 8197 ...&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;命令: (vlax-safearray-&gt;list (vlax-variant-value mypoint))<br/>; 错误: ActiveX 服务器返回错误: 无效索引。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;请问版主用什么函数能得到交点坐标啊.</font></strong></p>

xiatian 发表于 2008-6-5 11:10:00

版主不用麻烦你你我自己出了点小错..麻烦了.

xiatian 发表于 2008-6-5 16:29:00

xiatian 发表于 2008-6-5 16:43:00

<p><strong><font face="Verdana" color="#61b713">Andyhon版主我要如图给等值线加标注,但标注要跟等值线垂直,交点都求出来了,可如何确定角度我想求交点的切线有这样函数吗??谢谢了</font></strong></p>

Andyhon 发表于 2008-6-5 20:19:00

<p>Andyhon不是版主,条件未足是也</p><p>我想求交点的切线?&nbsp;&nbsp; 何谓也<br/>(angle pt1 pt2) 求角度,而您要的不是这个!?</p>

xiatian 发表于 2008-6-10 10:01:00

Andyhon,不好意思下次注意                                                                                       我知知道(angle pt1 pt2) 可以,但是如何求pt1和pt2,我是在交点处标注的啊,知道了交点如何求其两测的线上的端点呢??我用(setq b(vlax-curve-getClosestPointTo vell a)),vell为点所在的多义线,a为交点,可求出来的点还是交点啊.?

Andyhon 发表于 2008-6-10 11:11:00

理解不来,可有图解说明
页: [1] 2
查看完整版本: [原创]vla-lntersectwith如何从VBA转化为VL