明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5952|回复: 22

[函数] 请教:如何让两条多段线头连头、尾连尾

  [复制链接]
发表于 2011-2-13 21:20:08 | 显示全部楼层 |阅读模式
一个很简单的lsp,选择两条多段线(仅仅讨论多段线),然后让其分别头尾相连:
  1. (defun c:aa( / e1 e2 e1obj e2obj p1 p2 p3 p4)

  2. (setq e1 (car(entsel)))
  3. (setq e2 (car(entsel)))
  4. (setq e1obj (vlax-ename->vla-object e1))
  5. (setq e2obj (vlax-ename->vla-object e2))
  6. (setq p1 (vlax-curve-getstartPoint e1obj)  p2 (vlax-curve-getEndPoint e1obj))
  7. (setq p3 (vlax-curve-getstartPoint e2obj)  p4 (vlax-curve-getEndPoint e2obj))
  8. (command "_.line" "non" p1 "non" p3 "")
  9. (command "_.line" "non" p2 "non" p4 "")
  10. )

我本来以为,只要将选中的pline都变成顺时针或逆时针,就能达到如下图中例二、例三的效果。

(为了节约各位老大时间,我将上边程序中将选中的线统一变成逆时针走向的部分省略了,反正都是照Gu_xl老大抄的。)

但在如下图的情况中,选中的六条白色pline都是逆时针走向,但执行程序后红色的连线却不一样。为什么啊?

要怎么做才能使所有结果都符合下图中例二、例三的效果?


本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2011-2-13 21:22:24 | 显示全部楼层
不知道大家明白我的意思没有……也就是说,想要选中两条pline,然后让其如例二、例三那样头尾相连,需要满足什么条件呢?
发表于 2011-2-13 21:44:47 | 显示全部楼层
最近两端点连线
 楼主| 发表于 2011-2-13 22:03:50 | 显示全部楼层
回复 ZZXXQQ 的帖子

这个办法我也想过,但不符合我的需要。为节约各位老大的时间,主贴中的lsp是简化了的,我必须要用到(vlax-curve-getstartPoint) 和(vlax-curve-getEndPoint)来取pline的两个端点,因为接下来我还要用到(vlax-curve-getPointAtDist)函数来给两条pline中间加线。
 楼主| 发表于 2011-2-13 22:08:46 | 显示全部楼层
哦…………是不是可以这样,如果两条首尾连线存在交点,那么就将其中一条pline反向?
发表于 2011-2-13 22:26:28 | 显示全部楼层
??有何用?
 楼主| 发表于 2011-2-13 22:54:47 | 显示全部楼层
哈哈,搞定了。
 楼主| 发表于 2011-2-13 23:07:40 | 显示全部楼层
本帖最后由 mandala 于 2011-2-17 09:05 编辑

回复 pop159 的帖子

大有用处。以下是完整的lsp,用来画形状较复杂的斜坡图形。先选定上下两条坡线,然后自动绘制斜坡。坡线可以由line、pline、spline和arc混合组成。





本帖子中包含更多资源

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

x
发表于 2011-2-14 07:58:46 | 显示全部楼层
请问mandala
我复制程序运行后,显示:命令: xxp 程序出错!返回到起始状态。
请问要如何操作?望指教。
谢谢
祝兔年吉祥如意!
发表于 2011-2-14 08:38:27 | 显示全部楼层
运行xxp之前,先打flatten 命令 之后取消 就能运行xxp 命令
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-12 10:52 , Processed in 0.191037 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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