明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1985|回复: 2

求两线相交 最精简的代码 lisp

[复制链接]
发表于 2011-5-28 20:35 | 显示全部楼层 |阅读模式
求两线相交 最精简的代码 lisp
该程序可以求任意两种线型相交的交点 。 有兴趣的朋友可以应用到 等高线中剖断面
;by zo roo 2011-05-28   
(defun C:jlxd(/ m_ent1 m_ent2 m_jdtab);求两线交点程序
  (setq en1 (entsel "\n请选择第一条曲线: "))
  (setq en2 (entsel "\n请选择第二条曲线: "))
  (setq e1 (vlax-ename->vla-object(car en1))
       e2 (vlax-ename->vla-object(car en2))
)
  (setq PT2(vlax-invoke e1 'intersectwith e2 0))
  (princ pt2)
(command "pline"  pt2)
)

这里要感谢caoyin 提供一下代码
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=59005&highlight=
求交点,
(vla-intersectwith VLA对象 VLA对象 延伸模式)
延伸模式为 0~3 的整型(0--不延伸,1--延伸基本对象,2--延伸参数传递的对象,3--延伸)
返回 ActiveX 点
或用 vlax-invoke 调用
(setq e1 (vlax-ename->vla-object(car(entsel)))
      e2 (vlax-ename->vla-object(car(entsel)))
)
(vlax-invoke e1 'intersectwith e2 3)





 楼主| 发表于 2011-5-28 20:39 | 显示全部楼层
http://www.cad8.net/archiver/?tid-18425.html

vla-intersectwith的用法

快乐天使 发表于 2010-1-5 09:27:10

(setq intpoint (vla-intersectwith (vlax-ename->vla-object ent1)

                        (vlax-ename->vla-object ent2)

                acextendnone

                  )

   )

   (setq intpoint (vlax-variant-value intpoint))

   (setq pt        (vl-catch-all-apply

                  'vlax-safearray->list

                  (list intpoint)

                )

   )

From:CAD吧 (http://www.cad8.net/)
Link:http://www.cad8.net/archiver/?tid-18425.html
 楼主| 发表于 2011-5-29 11:50 | 显示全部楼层
由于一时疏忽(defun C:jlxd(/ m_ent1 m_ent2 m_jdtab);求两线交点程序
中有多余的变量
改为(defun C:jlxd();
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-6-15 10:51 , Processed in 0.361948 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表