找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1646|回复: 6

[求助] 求助各位大神

[复制链接]
发表于 2013-6-15 21:16:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
cad图如何批量等距、对齐排列,求大神,最好弄个个lisp

点评

论坛上有这样的程序,你找找  发表于 2013-6-15 21:22
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 593个

财富等级: 财运亨通

发表于 2013-6-15 21:19:00 来自手机 | 显示全部楼层
搜索 实体对齐

点评

只有这个错误的程序,能给我发个吗 Sub AlignEnt() Dim ss As AcadSelectionSet '创建选择集 Set ss = CreateSelectionSet ss.SelectOnScreen Dim ent As AcadEntity Dim MinPoint As Variant Dim  详情 回复 发表于 2013-6-16 09:35
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1742个

财富等级: 堆金积玉

发表于 2013-6-16 08:00:24 | 显示全部楼层
思路:组码或者包围框对齐
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-16 09:25:02 | 显示全部楼层
找不到,有就直接发个上来吧
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-16 09:35:39 | 显示全部楼层

只有这个错误的程序,能给我发个吗



Sub AlignEnt()
Dim ss As AcadSelectionSet
'创建选择集
Set ss = CreateSelectionSet

ss.SelectOnScreen

Dim ent As AcadEntity
Dim MinPoint As Variant
Dim MaxPoint As Variant

If ss.Count > 0 Then
Dim AlignMode As String
On Error Resume Next

ThisDrawing.Utility.InitializeUserInput 0, "Left Middle Right Up Down"
AlignMode = ThisDrawing.Utility.GetKeyword("选择对齐方式[左对齐(L)/对中(M)/右对齐(R)/上对齐(U)/下对齐(D)]/<左对齐>:")

'如果用户直接按下Enter键
If Err Then AlignMode = "Left"
If AlignMode = "" Then AlignMode = "Left"

Dim AlignPoint As Variant
Dim MovePoint(2) As Double

AlignPoint = ThisDrawing.Utility.GetPoint(, "请选择对齐点:")

For Each ent In ss
ent.GetBoundingBox MinPoint, MaxPoint
Select Case AlignMode
'获得对象移动的基点
Case "Left"
MovePoint(0) = MinPoint(0)
MovePoint(1) = AlignPoint(1)
MovePoint(2) = MinPoint(2)
Case "Middle"
MovePoint(0) = (MinPoint(0) + MaxPoint(0)) / 2
MovePoint(1) = AlignPoint(1)
MovePoint(2) = MinPoint(2)
Case "Right"
MovePoint(0) = MaxPoint(0)
MovePoint(1) = AlignPoint(1)
MovePoint(2) = MaxPoint(2)
Case "Up"
MovePoint(0) = AlignPoint(0)
MovePoint(1) = MaxPoint(1)
MovePoint(2) = MaxPoint(2)
Case "Down"
MovePoint(0) = AlignPoint(0)
MovePoint(1) = MinPoint(1)
MovePoint(2) = MinPoint(2)
End Select

ent.Move MovePoint, AlignPoint
'更新图形
Update
Next
Else
ThisDrawing.Utility.Prompt vbCr & "未选定对象,自动退出..."
End If
End Sub
'--------------------------------------------------------------------------------------------------------------------
Public Function CreateSelectionSet(Optional ssName As String = "ss") As AcadSelectionSet
Dim ss As AcadSelectionSet

On Error Resume Next

'错误处理
Set ss = ThisDrawing.SelectionSets(ssName)
If Err Then Set ss = ThisDrawing.SelectionSets.Add(ssName)

'初始状态下清空选择集
ss.Clear
Set CreateSelectionSet = ss
End Function
- 本文出自晓东CAD家园-论坛,原文地址:http://www.xdcad.net/forum/thread-658405-1-1.html

点评

XD 工具箱中有这个功能  详情 回复 发表于 2013-6-16 22:43
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2013-6-16 22:43:35 | 显示全部楼层
小百合 发表于 2013-6-16 09:35
只有这个错误的程序,能给我发个吗

XD 工具箱中有这个功能
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-25 12:26 , Processed in 0.390619 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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