明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1315|回复: 7

[VBA群] 2013-06-01 明经AutoCAD.VBA编程(45054712) 群聊记录:我移动一个实体,实体连接着两根线,一入一出,现在我想移动完实体后,线也自动连

 关闭 [复制链接]
发表于 2013-6-1 07:45:42 | 显示全部楼层 |阅读模式
在路上26 07:45:42
我移动一个实体,实体连接着两根线,一入一出,现在我想移动完实体后,线也自动连接着实体原来的入点和出点,在cad的AcadDocument_ObjectModified事件中可以获取移动到的点的坐标,如何获取实体移动前的点的坐标,即被移动实体的Handle,
 楼主| 发表于 2013-6-1 08:18:09 | 显示全部楼层
在路上26 08:18:09
[qqimg]oldimg/{148E7D9F-40CB-C91C-E7AB-4362C8372CAD}.jpg[/qqimg]
高手们都没起呢吗???
 楼主| 发表于 2013-6-1 09:13:26 | 显示全部楼层
在路上26 09:13:26
移动完一个实体,能够知道它的handle,即现在的插入点,怎么才能知道,它移动前的位置呢??
在路上26 09:15:02
高手们,你们在哪里啊?
一缕阳光 09:16:12
记录移动前坐标不行?
一缕阳光 09:16:48
移动完 就不可能得到原来位置了
在路上26 09:17:40
在cad的哪个事件,能获得移动前坐标啊??
我在beforecommand,实验了,好像不行也
轻舞飞扬 09:18:21
你是不会得到handle还是不会得到点啊?
一会点,一会儿handle的。
真是……
一缕阳光 09:19:09
干脆你就问 怎么移动对象得了
在路上26 09:19:38
ok,我把我的问题说简单点
[qqimg]oldimg/{17FAE10C-508E-19D4-8E26-6A9A0F61F7FD}.jpg[/qqimg]
轻舞飞扬 09:20:13
我反正听明白了,就是……堪忧
在路上26 09:20:21
我想移动中间的方框,但希望左右两边跟它连接的红线也随着动
一缕阳光 09:21:33
把移动前的位置保存下来不行?
在路上26 09:21:46
如果先选择,在点Move,我可以通过AcadDocument_SelectionChanged,事件来获得实体移动前的坐标,但如果先点Move,再选择实体,就不知道在哪获得了
一缕阳光 09:21:50
或者干脆用复制
获取原对象位置后 再删除其
轻舞飞扬 09:22:30
xdata(3)
(0)=左线handle
(1)=左先交点
(2)=右handle
(3)=右交点
结合objectmodified
在路上26 09:23:23
通过objectmodified
,我只能得到变动后实体的坐标啊
交点不用考虑,我可以通过实体的插入点,计算出来
轻舞飞扬 09:23:55
先去学xdata吧
只能说到这儿了
在路上26 09:24:10
vba,做不到吗?
轻舞飞扬 09:25:06
你问他们我这方法可行不。可行你就先学了xdata再说
在路上26 09:27:16
xdata,有好的资料吗?望推荐
一缕阳光 09:28:13
这方法不错
在路上26 09:28:45
xdata(3)
(0)=左线handle
(1)=左先交点
(2)=右handle
(3)=右交点
结合objectmodified???这方法可行??
一缕阳光 09:29:22
可以的 等于保存当前的情况
一缕阳光 09:30:27
vba有相关的资料 xdata
sqbao 09:35:31
有相关书籍么
在路上26 09:35:57
明白一缕阳光说的意思了
一缕阳光 09:37:38
好使哦
sqbao 09:38:01
这东西以前没接触过
感觉很不错啊
vba手册中介绍太少了
gx 09:38:45
扩展数据好东西,
轻舞飞扬 09:39:04
select 过滤没用过?
一缕阳光 09:39:05
是你不看 怎么会少呢
说得很明白的
sqbao 09:39:25
过滤用过
但是扩展没用过
轻舞飞扬 09:39:34
用过就好
差不多
最简单的说,只是数字不一样
在路上26 09:44:52
恩,挺好的提议!
轻舞飞扬 09:46:05
别激动
一年前还在问variant的问题
在路上26 09:47:47
如果我把方框移走,且已经知道原先的插入点,现在我想获取与它相联的线段,该线段为属性块,怎么获得呢,以前我用过以方框的中心为基准点,用cad的方框选择,来获得它周围的实体,但好像不太好用,尤其在现在的视窗,不包含原先实体位置的情况下,哪位有其他方法
 楼主| 发表于 2013-6-1 10:33:41 | 显示全部楼层
有声 10:33:41
[qqimg]oldimg/{3D49BA1B-FACF-6898-0EEB-C20011FC7A29}.gif[/qqimg]
小学生 10:36:31
VBA做这个,我劝你,就别弄了
小学生 10:37:26
即使做出来了,效果也很差
有声 10:38:11
[qqimg]oldimg/{960727F6-55FA-3F4E-E882-BC5DD40998AA}.jpg[/qqimg]语文课上,老师正在讲艾青的《我爱这土地》,有学生问:为何艾青的这首诗如此广为传诵呢?老师思考了很久决定用毕生所学来解答,于是充满感情地说道:“因为艾青...”这时台下不知谁唱了起来:“简单的生长,依然随时可以为你疯狂~~”
小学生 10:39:40
我看艾青的儿子比艾青更有名
有声 10:40:23
晚上接到女友电话,说受刺激了。问清楚才知道原来这货被室友说胖所以嚷嚷着要减肥!正下楼去买苹果呢。到水果摊后因为要挑苹果所以她就先把手机放口袋但没有挂断我也就一直听着。付完钱就听到她往回走,不久,就听到"老板,我要这个鸭胗、还有这个这个。。。这就是所谓的减肥啊
有声 10:41:52
[qqimg]oldimg/{2AEF89A5-B8D8-D7BD-252D-E2A1E17F2C82}.gif[/qqimg]
有声 10:48:58
[qqimg]oldimg/{98AED7F0-FE3F-4980-6E4E-550E64A41FEC}.gif[/qqimg]
有声 10:52:48
[qqimg]oldimg/{4A8D1847-8D1B-6E3A-92D9-A764FBE7587A}.gif[/qqimg]
 楼主| 发表于 2013-6-1 17:56:36 | 显示全部楼层
Arc 17:56:36
Sub Gpl()
Dim seer As AcadSelectionSet
Dim seername As String
seername = "seegrre"
Dim var As Variant
Dim pp(1) As Double
Dim cc As Double
Dim pl As AcadLWPolyline
Dim coor() As Double
Dim Dx As Double
Dim DY As Double
Dim j As Integer
Dim k As Integer
Dim i As Integer
Dim Bl As Boolean
Bl = False
Set seer = ThisDrawing.SelectionSets.Add(seername)
Dim f(0) As Integer
Dim d(0) As Variant
f(0) = 0
d(0) = "LWPOLYLINE"
seer.SelectOnScreen f, d

For Each pl In seer
var = pl.Coordinates
i = UBound(var)
ReDim coor(i) As Double

'-------------------------------------------------
'为PP 附值
For we = 0 To i - 2 Step 2
If Bl = False Then
Bl = True
Dx = var(we)
DY = var(we + 1)
Else
cc = var(we) - var(we + 1)
If Dx - DY > cc Then
Dx = var(we)
DY = var(we + 1)
End If
End If
 Next
 Bl = False
 
pp(0) = Dx
pp(1) = DY
'--------------------------------------------------
'判断下标
For j = 0 To i - 1
If var(j) = pp(0) And var(j + 1) = pp(1) Then
k = j
Exit For
End If
Next
For e = 0 To i - k
coor(e) = var(k + e)
Next
For r = 0 To k - 1
 coor(i - k + r + 1) = var(r)
Next
pl.Coordinates = coor
pl.color = acBlue

Next
seer.Delete



End Sub
 楼主| 发表于 2013-6-1 21:28:10 | 显示全部楼层
Arc 21:28:10
请教下 ,,怎样获得圆和线相交的两个坐标呢?
理智&清醒 21:29:27
圆方程直线方程求解
Arc 21:30:07
。。。。大侠 能具体点?、
度娘?
理智&清醒 21:30:38
你是编程求吗
Arc 21:30:51
嗯 是的
理智&清醒 21:31:18
百度吧、
Arc 21:31:24
求 点到线最距离。。。。。
。。。。。
理智&清醒 21:31:57
[qqimg]oldimg/{2D801E9F-BE3B-BE59-2FEE-E2D9CBE400F1}.jpg[/qqimg]
Arc 21:32:06
谢谢、
一缕阳光 21:34:00
直接用cad的获取图形相交点的方法
Arc 21:34:16
什么方法?
语法?
一缕阳光 21:34:35
看帮助
Arc 21:34:41
Arc 21:35:51
。。搜索什么关键字啊
一缕阳光 21:36:28
相交

查过?
Arc 21:36:48
我差的是交点
刚差的
一缕阳光 21:38:16
没查到?
Arc 21:38:22
没有
Arc 21:38:53
[qqimg]oldimg/{FE84F5C1-E9A4-420F-DAC3-3681C8848EE5}.jpg[/qqimg]
 楼主| 发表于 2013-6-1 21:51:04 | 显示全部楼层
Arc 21:51:04
大侠在吗、
怎么获得圆和多段线的两个交点啊
理智&清醒 21:52:49
判断多段线点在院内院外
小学生 21:54:36
好象有一个获得交点的函数
一缕阳光 21:54:37
[qqimg]oldimg/{EC9A4FEA-478B-2638-C4CF-09B3A5C1E6F6}.jpg[/qqimg]
我搜索怎么就查的出来呢
理智&清醒 21:55:46
基础函数里肯定有,这个要是都自己写别开发了就
一缕阳光 21:56:36
有现成的 为什么不用
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-23 17:22 , Processed in 0.196459 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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