明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2359|回复: 14

[讨论] 【求助】请教一个延伸程序所需的函数!

  [复制链接]
发表于 2011-7-24 11:37 | 显示全部楼层 |阅读模式
想达到的效果如图








即是 编写一个lisp程序 让两段直线相交!


我现在不知道用什么函数能够选中这两段线段
接下的程序我想到了用list函数和entlast函数
求达人指点!


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2011-7-24 12:10 | 显示全部楼层
如果单选直接用FILLET就可以实现,如果需要框选可以考虑用inters函数
发表于 2011-7-24 13:27 | 显示全部楼层
(command "FILLET" pause pause)
 楼主| 发表于 2011-7-24 14:40 | 显示全部楼层
回复 chpmould 的帖子

谢谢!
不过fillet命令一次只能选中一条线  我想达到一次性框选两条线然后就相交的效果
能否告知inters函数的具体命令?
再次感谢!
发表于 2011-7-24 15:36 | 显示全部楼层
求两条直线的交点
(inters pt1 pt2 pt3 pt4 [onseg])
所有的点都以当前 UCS 表示,如果提供的四个点都是三维点,inters 函数检查三维交点。只要所提供的点中有一个是二维点,inters 函数就将这两条线投影到当前构造平面上,仅检查二维交点。
参数
pt1
第一条直线的端点。
pt2
第一条直线的另一端点。
pt3
第二条直线的端点。
pt4
第二条直线的另一端点。
onseg
如果指定为 nil,则由四个 pt 参数定义的两条线被认为是无限长的。如果省略 onseg 参数或其值不为 nil,则交点必须同时位于两条线上,否则 inters 返回 nil。
返回值
如果 onseg 参数存在且为 nil,则 inters 返回交点坐标,即使这个交点不在其中的一条线(或者两条线)的端点范围之内。如果忽略 onseg 参数或其值不为 nil,则交点必须同时位于两条线上,否则 inters 返回 nil。如果两条直线不相交,inters 函数返回 nil。
示例
(setq a '(1.0 1.0) b '(9.0 9.0))
(setq c '(4.0 1.0) d '(4.0 2.0))
 楼主| 发表于 2011-7-26 20:12 | 显示全部楼层
回复 zhynt 的帖子

谢谢你! inters函数看懂了!  但是还没达到我要的效果!

以下是我的理解:
inters函数必须知道两条线段的端点坐标
但是我希望达到的效果是:通过鼠标框选两条线段【同时选中两条线段!】两条线段自动延伸并相交!
其实我是在寻找【能选择图形并将其保存到某个变量中以便于某个CAD命令调用】的函数  例如像entlast这样的能把图形赋值给某个变量的函数  但entlast不能选择特定的图形!
刚接触lisp  希望多多指教!

期待大大解答!
发表于 2011-7-26 20:22 | 显示全部楼层
让我想想....
先一次性选中两条直线
如果是多段线,先炸碎
如果不是,转成vla对象
用vla-get-startpoint和vla-get-endpoint获取两条线的起始点,共四个点s1 e1 s2 e2
用inters得到交点坐标int
比较s1 与s2,s1和e2的距离,确定要改变的点
最后用vla-put-startpoint或者vla-put-endpoint设置为int
应该就OK了
发表于 2011-7-26 20:36 | 显示全部楼层
回复 fergus1987 的帖子

看图解,直接使用倒角方式:CHAMFER 命令,
不知是否能解决楼主的问题
发表于 2011-7-26 20:59 | 显示全部楼层
本帖最后由 chpmould 于 2011-7-26 21:02 编辑

针对此题目大概写了一下

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2011-7-26 21:13 | 显示全部楼层
chpmould 发表于 2011-7-26 20:59
针对此题目大概写了一下

2010下运行的,低版本运行不了.......
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-6 04:06 , Processed in 0.179764 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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