明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: mikewolf2k

合并一根直线上的两根线段

  [复制链接]
发表于 2004-2-15 09:22:00 | 显示全部楼层
无痕兄的意思是对于多个顶点的多段线来说,如果起端边或终端边与另外的线是同线,则应该合并。
 楼主| 发表于 2004-2-15 13:43:00 | 显示全部楼层
无痕兄所说的多端点的polyline所有端点都是在一条直线上么?如果不是那当然不能合并.对于所有端点在同一直线上的polyline,程序只取最外端的两个点,与该polyline的起端边和终端边无关.
发表于 2004-2-15 16:23:00 | 显示全部楼层
哦,知道了。我没仔细看程序,因为不用vba,所以偷懒了一回:)。谢谢释疑
发表于 2004-2-16 11:15:00 | 显示全部楼层
明总的getline函数中,如果选择的实体不是直线或多段线,应该就退不出循环语句了。应该把do放在ThisDrawing.Utility.GetEntity ent, pnt, PromptTxt前


但如果这样,按取消键就不能退出命令。
 楼主| 发表于 2004-2-16 19:04:00 | 显示全部楼层
程序已改过,纠正一个错误.


对于第一根线段为多于3个顶点的polyline,执行到“line1.Coordinates = basepnt”时即出现“FATAL ERROR:Unhandled Access Violation Reading 0x0000 Exception at 6721a714h”错误,然后CAD退出。由于该程序对于3个顶点的polyline能够运行通过,说明polyline的Coordinates属性能够重新定义大小,那么为什么对于更多顶点的polyline就出错呢?我觉得不是我程序的故障,请老大指点迷津。后来经过实验,可以一次减少一个端点.现在我是将多端点的polyline一次减少一个端点,直到只剩2个,然后再合并.
发表于 2004-2-16 22:42:00 | 显示全部楼层
就取头尾两点不行么?为什么一次减少一个端点?


如果多端点的pl线其端点都在一个直线上,它的area属性=0!!!!!


以此可以做出判断
 楼主| 发表于 2004-2-16 22:52:00 | 显示全部楼层
只取头尾两点不能保证是最外侧的两点.


通过调试程序发现,多端点的polyline一次只能减少一个端点,所以要一次减少一个端点,直到只剩两个.


多端点的pl都在一条直线上,如果端点是反复的话(1-3-2-4-5-3),在vb里它的area不是等于0,而是一个非常小的数值
发表于 2004-2-20 13:09:00 | 显示全部楼层
其实可以取出所有点后(包括两个物体),对所有点排序,并判定是否共线。


程序会简洁很多
 楼主| 发表于 2004-2-20 19:49:00 | 显示全部楼层
会么?我现在是只取线段的两个端点(共4个)排序,没道理比取很多点排序复杂吧?
发表于 2005-11-27 19:37:00 | 显示全部楼层
好东西!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 10:05 , Processed in 0.185522 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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