明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 9303|回复: 22

[讨论] 【源码】框选直线动态拉伸

[复制链接]
发表于 2013-12-31 21:35:17 | 显示全部楼层 |阅读模式
本帖最后由 荒野孤行 于 2015-4-11 19:22 编辑

各位,编写了一个关于批量选择直线,然后动态拉长或缩短直线的程序。图2是用CAD里面的命令LENGTHEN对单条直线执行的效果。

附上附件源码:


本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2018-8-18 17:48:38 | 显示全部楼层
JUST LEARNING'S NICE CODE
发表于 2018-8-14 11:56:37 | 显示全部楼层
谢谢楼主的分享
发表于 2018-8-24 15:08:05 | 显示全部楼层
楼主 这个挺好
发表于 2014-1-1 01:32:11 | 显示全部楼层
你可以研究下这个
框选直线动态拉伸edata版本
http://bbs.mjtd.com/forum.php?mo ... &fromuid=338795
 楼主| 发表于 2014-1-1 09:38:01 来自手机 | 显示全部楼层
edata 发表于 2014-1-1 01:32
你可以研究下这个
框选直线动态拉伸edata版本
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=108877 ...

看了下回复时间,你写程序写到那么晚呃。
你是专业开发程序的么?
发表于 2014-1-1 10:23:44 | 显示全部楼层
荒野孤行 发表于 2014-1-1 09:38
看了下回复时间,你写程序写到那么晚呃。
你是专业开发程序的么?

不是的,只是兴趣,大冷天的,还没空调,写完调试好,才发现很晚了。。。
发表于 2014-1-2 09:39:12 | 显示全部楼层
lisp不懂,只是从编程的角度考虑。
问题的难点应该在于如何判断是延伸那一边。对于普通的线段,可以根据原来端点1和最终端点1与原来端点2的相对位置来判断是伸长还是缩短以及长度和方向,但是对于垂直或者水平(取决于你是如何判断方向位置的),如何确定是延伸哪个点?毕竟在这种情况下,两个点都是一样的,如果需要用户去手工选择,也就失去了批量的意义了。
建议楼主先考虑上面的极限情况,找出一个能适用所有情况的算法。
发表于 2014-1-3 19:19:42 | 显示全部楼层
可以自定义长度吗?
 楼主| 发表于 2014-1-4 10:52:19 | 显示全部楼层
混沌初开 发表于 2014-1-3 19:19
可以自定义长度吗?

不可以,是通过鼠标当前位置点做与直线的垂直线,交点即直线伸缩的位置
 楼主| 发表于 2014-1-4 10:52:55 | 显示全部楼层
edata 发表于 2014-1-1 10:23
不是的,只是兴趣,大冷天的,还没空调,写完调试好,才发现很晚了。。。

看下我写的效果,是否有不同?

评分

参与人数 1明经币 +1 收起 理由
edata + 1 赞一个!

查看全部评分

发表于 2014-1-4 12:35:44 | 显示全部楼层
荒野孤行 发表于 2014-1-4 10:52
看下我写的效果,是否有不同?

和我最初的想法有些像,因为时间关系,所以只写了框选直线,
目前和我的程序差异
1,选择方式,我是框选,通过框选内判断拉伸点。而你采用(ssget)普通方式,更灵活。比如直线重叠,很好用。
2,因为我锁定了拉伸点,简单模拟的lengthen命令的dy效果,所以拉伸点的时候很好控制。而你采用判断grread拖动点与起点、终点距离来判定拉伸点,方式灵活,但是bug是改变拉伸点的时候没有恢复原来的起点终点,而导致原来起点或终点会改变,以前我也回复个类似的帖。
3,因为模拟lengthen,所以我的右键是放弃,空格、回车确定
4,grdraw 连线的点 不一样。
  程序是拿来用的,能适合自己用才是好程序。
 楼主| 发表于 2014-1-5 22:29:25 来自手机 | 显示全部楼层
edata 发表于 2014-1-4 12:35
和我最初的想法有些像,因为时间关系,所以只写了框选直线,
目前和我的程序差异
1,选择方式,我是框选 ...

是的,如果按esc键则应该恢复到之前,这个我没想出来怎么写,只能通过用户后退操作来返回了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-23 12:39 , Processed in 0.229239 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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