明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2990|回复: 17

[已解答] 求助:非闭合多段线两端同时延伸给定距离的编程思路?谢谢!

[复制链接]
发表于 2013-7-7 19:02 | 显示全部楼层 |阅读模式
如题:

请大家帮忙
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2022-5-9 17:25 | 显示全部楼层
vormittag 发表于 2013-7-7 19:26
如果首尾两端都是直线就好搞一些。
起终点的切线矢量通过vlax-curve-getFirstDeriv 可以取得,沿伸以后的 ...

延伸圆弧是最烦人,总是一个方向延伸
发表于 2013-7-7 19:26 | 显示全部楼层
如果首尾两端都是直线就好搞一些。
起终点的切线矢量通过vlax-curve-getFirstDeriv 可以取得,沿伸以后的点很容易算得出来,然后把起终点的坐标更新就行了。

如果首尾是圆弧就要讨厌一些,看你想要的效果了,如果是沿圆弧切线沿伸,跟上面思路是一样的,不过要补充首尾两个点。

如果是沿圆弧沿伸,这是最讨厌的,首先要算出沿伸后起终点的位置,接下来有两种方法:第一,在首尾添加两个点,添加两段的凸度要算出来,添加进去然后更新图元,这种方法一定有解;第二,不添加点,用沿伸后的坐标直接更新,这时还要算出沿伸以后首尾的凸度,然后更新起点的位置和凸度,更新终点的坐标,更新倒数第二个点的凸度,这种方法最麻烦,而且圆弧弧度比较大的时候不一定有解,好处是多段线的顶点数没有增加。
发表于 2013-7-7 19:26 | 显示全部楼层
我来说下我的思路。也许还不正确,仅供参考。
1、选线,求得PL线起点P1、终点P2、及其角度ANG1 与ANG2
2、再求各点在各自角度延伸后的点。P3 P4
3、根据P3.P4修改PL线的起点、终点坐标。
 楼主| 发表于 2013-7-7 19:51 | 显示全部楼层
本帖最后由 xhq1954425 于 2013-7-7 19:52 编辑

两端是直线的,我没弄过PL,看来还是有点难度!向楼上二位深表谢意!!

本帖子中包含更多资源

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

x
发表于 2013-7-7 20:15 | 显示全部楼层
调用_extend不行吗?
 楼主| 发表于 2013-7-7 20:31 | 显示全部楼层
本帖最后由 xhq1954425 于 2013-7-7 20:58 编辑
自贡黄明儒 发表于 2013-7-7 20:15
调用_extend不行吗?

谢谢你!原本想是多有不便,但是既然你说了就必有其道理!我又试了一下,想法是先在两端点处,以伸长量为半径分别画圆(用屏幕背景色画),并选为延伸边界,然后用栏选(F ),第一点在圆心,第二点为随意,还真行了,剩下的就是如何获取两端点的坐标问题了,这样也解决了两端无论是什么情况都行!你说你多聪明!!, 没说的,再次谢谢你!
发表于 2013-7-7 21:00 | 显示全部楼层
使用命令LENGTHEN也行。
(command "LENGTHEN" "DE" <长度> 端点 ... "")
发表于 2013-7-7 21:01 | 显示全部楼层
本帖最后由 Gu_xl 于 2013-7-8 09:27 编辑
xhq1954425 发表于 2013-7-7 20:31
谢谢你!原本想是多有不便,但是既然你说了就必有其道理!我 ...

最基本的lengthen命令都忘了吗?
  1. (defun c:tt ()
  2.   (initget 7)
  3.   (setq d (getreal "\n延伸距离:"))
  4.   (setq e (car(entsel "\n选择曲线:")))
  5.   (command "_lengthen" "de" d)
  6.   (command (list e (trans (vlax-curve-getStartPoint e) 0 1)) (list e (trans (vlax-curve-getEndPoint e) 0 1)) "")
  7.   (princ)
  8.   )

点评

老大:能改写下,框选批量吗?  发表于 2020-2-22 23:45
 楼主| 发表于 2013-7-7 21:22 | 显示全部楼层
本帖最后由 xhq1954425 于 2013-7-7 21:25 编辑
Gu_xl 发表于 2013-7-7 21:01
最基本的lengthen命令都忘了吗?

你要是出手那还说啥就是强大!一个顶三呀


本帖子中包含更多资源

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

x
 楼主| 发表于 2013-7-7 21:34 | 显示全部楼层
我的问题解决了,怎么在标题上改成   已解决???要不就显得不好了……
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-12 00:32 , Processed in 0.168789 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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