明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: mandala

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

  [复制链接]
发表于 2011-2-14 08:41:16 | 显示全部楼层

楼主用lisp这个如何实现啊

本帖子中包含更多资源

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

x
发表于 2011-2-14 09:11:24 | 显示全部楼层
本帖最后由 461045462 于 2011-2-14 09:43 编辑
jackynine 发表于 2011-2-14 08:38
运行xxp之前,先打flatten 命令 之后取消 就能运行xxp 命令


谢谢jackynine
按照您的指教,运行flatten后提示:
命令: flatten
选择要转换成2维的对象...
取消。然后运行xxp命令,还是不行。
如果我运行flatten,点击线条后,显示:
选择对象: 找到 1 个,总计 1 个
选择对象:
移除隐藏的线条吗? <No>:
然后回车。再运行xxp,显示的还是:
命令: xxp
程序出错!返回到起始状态。
不知是为什么?请指教
谢谢
 楼主| 发表于 2011-2-14 10:37:31 | 显示全部楼层
本帖最后由 mandala 于 2011-2-14 10:56 编辑

回复 461045462 的帖子

哦,不是因为未加载flatten的原因,因为程序中的
(acet-autoload2        '("FLATTENSUP.LSP"        (acet-flatn ss hide)))
语句已经加载了flatten所需要的函数。

你的程序出错是因为你的cad中没有“fuhao”这个层,而这个程序需要调用这个层来画符号。程序找不到这个层就挂了。在我的cad系统里默认有这个层,所以没考虑这个问题。你可以建一个图层,名为fuhao,就可以运行了,或者干脆删除(setvar "clayer"  "fuhao")这个语句,也可以根据你自己的需要将其改为任意层名。

现在我重新贴了一遍源程序,把那句话删掉了,试过可以正常运行。你再试一下。
 楼主| 发表于 2011-2-14 10:41:57 | 显示全部楼层
本帖最后由 mandala 于 2011-2-14 10:46 编辑

回复 qcw911 的帖子

俺不晓得。如果只框选的话,似乎只能选物体而不能确定你想要物体的哪一端?你问问论坛大佬们,俺刚学lisp一个多月。
 楼主| 发表于 2011-2-14 11:00:15 | 显示全部楼层
本帖最后由 mandala 于 2011-2-14 11:15 编辑

其实在实际地形测量中,很多斜坡的形状是非常复杂的,我这个lsp的思路是根据斜坡上边的齿数,将斜坡下边等分,然后点对点相连。办法可能是比较笨的,因为一些形状特别恶劣的斜坡,用这个程序画出来的效果不太理想。

我也是抛砖引玉,希望能有高手提供一些更好的画斜坡的思路。
发表于 2011-2-14 11:00:37 | 显示全部楼层
ZZXXQQ 发表于 2011-2-13 21:44
最近两端点连线

框选后如何判断最近两点?
 楼主| 发表于 2011-2-14 11:04:43 | 显示全部楼层
本帖最后由 mandala 于 2011-2-14 11:06 编辑

回复 qcw911 的帖子

在主贴的例子里倒是可以判断出来的:框选取得两条线,然后用(vlax-curve-getEndPoint)、(vlax-curve-getstartPoint)函数分别取得两条线的起点和终点,再判断一下距离。

这个例子里两条线是分别框选的,你上边那是一起框了,还得分析到底选中了什么东西、选中了多少东西……
发表于 2011-2-14 11:15:24 | 显示全部楼层
本帖最后由 461045462 于 2011-2-14 11:41 编辑

回复 mandala 的帖子

谢谢
学习了。我再试试

我开始复制你新的程序运行后,可以实现坎的连接。然后我关掉cad,重新打开,运行程序,却又出错:
命令: xxp
请依次选择斜坡的上边线(仅限PLINE、LINE、ARC、SPLINE),选择完毕后按空格或右键结束

选择对象: 找到 1 个
选择对象:  
请依次选择斜坡的下边线(仅限PLINE、LINE、ARC、SPLINE),选择完毕后按空格或右键结束

选择对象: 找到 1 个
选择对象:  程序出错!返回到起始状态
不知是为什么?
我使用pl画线,复制一根
我再试试

 楼主| 发表于 2011-2-14 12:03:06 | 显示全部楼层
本帖最后由 mandala 于 2011-2-14 12:05 编辑

回复 461045462 的帖子

删掉程序中的错误函数,再运行一遍程序,然后看看出错提示。

这种情况一般是因为程序在你的电脑上存盘的时候,某条命令因换行而不完整了,比如
(vlax-curve-getstartPoint e2obj)
变成了
(vlax-curve-
getstartPoint e2obj)

在我单位的几台电脑上运行了很多遍,都没出现错误。
发表于 2011-2-14 12:28:19 | 显示全部楼层
回复 mandala 的帖子

我先是复制在记事本上运行后出错,如果直接复制在cad上运行就可以。
后来我用xlii 编辑后运行就可以了。或许正是复制在记事本上时出问题了。
现已解决。
谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-7-27 06:37 , Processed in 0.166520 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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