明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1581|回复: 4

[求助]在vba中怎样实现对多线段上的点进行编辑

[复制链接]
发表于 2008-10-6 10:27:00 | 显示全部楼层 |阅读模式

在vba中怎样实现对多线段上的点进行编辑,例如加点、删点

能实现对所选的两个点之间自动进行加点

谢谢各位高手!

发表于 2008-10-13 16:58:00 | 显示全部楼层

我的想法是不管加点,还是删点,都是删除掉原本的线,再重新画上新的线,

加点的话,两种做作法,

一、是选两个点起来,自动在两点之间补上一个点,

你先用getPoint方法,取到输入点,然后用两点距离公式((x1-x2)^2+(y1-y2)^2)^0.5

小于1 就是该点,再把两点之间增加新的点就可以了(x1+x2)/2,(y1+y2)/2

二、是比较方便的,用getpoint方法,取得输入的点后,

然后和你的连续线的每一段做垂直交点距离的计算,小于1就是该点。

计算交点公式:a1x+b1y=c1,a2x+b2y=c2

'△ <> 0 为相容
'△ = △x=△y 为相依
'△ = 0 and △x <> 0 And △y<>0 为矛盾


Delta = a1 * b2 - b1 * a2
DeltaX = c1 * b2 - b1 * c2
DeltaY = a1 * c2 - c1 * a2

'求解
'△:Delta △x:DeltaX △y:DeltaY
'x=△x/△,y=△y/△

删点

删点直接用getPoint方法,取到输入点,

然后用两点距离公式((x1-x2)^2+(y1-y2)^2)^0.5

小于1 就是该点。

然后重新画上没有该点的线就可以了。

---------

详细建议看一下,斜率、二元一次方程式求解的资料。

发表于 2008-10-13 19:46:00 | 显示全部楼层

增点用AddVertex

删点你把两个点合并成一个点就可以了

 楼主| 发表于 2008-10-15 10:07:00 | 显示全部楼层
那怎样获取一条多线段上当前所选择的几个点的信息呢?如坐标信息、当前点的节点数、将点加入选择集?
发表于 2008-10-15 14:26:00 | 显示全部楼层

GetEntity方法可以让使用者选线,
看ObjectName 是不是为 "AcDbPolyline" 可以知道是否为聚合线,
座标可以从Coordinates取出,
点的状态,可以自己另外宣告结构来存放。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-26 06:23 , Processed in 0.172520 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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