- UID
- 5244
- 积分
- 1648
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2002-5-18
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2002-12-9 19:59:20
|
显示全部楼层
下面介绍几个对选择集操作的函数,就像对单个实体那样,VBA没有提供对选择集中的所有实体进行操作的功能。

- [FONT=courier new]
- ' 圆形阵列
- Sub ssetArrayPolar(ByVal ssetObj As AcadSelectionSet, ByVal NumberOfObjects As Long, ByVal AngleToFill As Double, ByVal CenterPoint As Variant)
- Dim i As Integer
-
- On Error GoTo ErrTrap
- For i = 0 To ssetObj.Count - 1
- ssetObj(i).ArrayPolar NumberOfObjects, AngleToFill, CenterPoint
- Next
- Exit Sub
-
- ErrTrap:
- On Error GoTo 0
- End Sub
- ' 矩形陈列
- Sub ssetArrayRectangular(ByVal ssetObj As AcadSelectionSet, ByVal NumberOfRows As Long, ByVal NumberOfColumns As Long, ByVal NumberOfLevels As Long, ByVal DistBetweenRows As Double, ByVal DistBetweenCols As Double, ByVal DisBetweenLevels As Double)
- Dim i As Integer
-
- On Error GoTo ErrTrap
- For i = 0 To ssetObj.Count - 1
- ssetObj(i).ArrayRectangular NumberOfRows, NumberOfColumns, NumberOfLevels, DistBetweenRows, DistBetweenCols, DisBetweenLevels
- Next
- Exit Sub
-
- ErrTrap:
- On Error GoTo 0
- End Sub
- ' 镜像
- Sub ssetMirror(ByVal ssetObj As AcadSelectionSet, ByVal Point1 As Variant, ByVal Point2 As Variant)
- Dim i As Integer
-
- On Error GoTo ErrTrap
- For i = 0 To ssetObj.Count - 1
- ssetObj(i).Mirror Point1, Point2
- Next
- Exit Sub
-
- ErrTrap:
- On Error GoTo 0
- End Sub
- ' 三维镜像
- Sub ssetMirror3D(ByVal ssetObj As AcadSelectionSet, ByVal Point1 As Variant, ByVal Point2 As Variant, ByVal Point3 As Variant)
- Dim i As Integer
-
- On Error GoTo ErrTrap
- For i = 0 To ssetObj.Count - 1
- ssetObj(i).Mirror3D Point1, Point2, Point3
- Next
- Exit Sub
-
- ErrTrap:
- On Error GoTo 0
- End Sub
- ' 移动
- Sub ssetMove(ByVal ssetObj As AcadSelectionSet, ByVal FromPoint As Variant, ByVal ToPoint As Variant)
- Dim i As Integer
-
- On Error GoTo ErrTrap
- For i = 0 To ssetObj.Count - 1
- ssetObj(i).Move FromPoint, ToPoint
- Next
- Exit Sub
-
- ErrTrap:
- On Error GoTo 0
- End Sub
- ' 旋转
- Sub ssetRotate(ByVal ssetObj As AcadSelectionSet, ByVal BasePoint As Variant, ByVal RotationAngle As Double)
- Dim i As Integer
-
- On Error GoTo ErrTrap
- For i = 0 To ssetObj.Count - 1
- ssetObj(i).Rotate BasePoint, RotationAngle
- Next
- Exit Sub
-
- ErrTrap:
- On Error GoTo 0
- End Sub
- ' 三维旋转
- Sub ssetRotate3D(ByVal ssetObj As AcadSelectionSet, ByVal Point1 As Variant, ByVal Point2 As Variant, ByVal RotationAngle As Double)
- Dim i As Integer
-
- On Error GoTo ErrTrap
- For i = 0 To ssetObj.Count - 1
- ssetObj(i).Rotate3D Point1, Point2, RotationAngle
- Next
- Exit Sub
-
- ErrTrap:
- On Error GoTo 0
- End Sub
- ' 比例缩放
- Sub ssetScaleEntity(ByVal ssetObj As AcadSelectionSet, ByVal BasePoint As Variant, ByVal ScaleFactor As Double)
- Dim i As Integer
-
- On Error GoTo ErrTrap
- For i = 0 To ssetObj.Count - 1
- ssetObj(i).ScaleEntity BasePoint, ScaleFactor
- Next
- Exit Sub
-
- ErrTrap:
- On Error GoTo 0
- End Sub
- ' 矩阵操作
- Sub ssetTransformBy(ByVal ssetObj As AcadSelectionSet, ByVal TransformationMatrix As Variant)
- Dim i As Integer
-
- On Error GoTo ErrTrap
- For i = 0 To ssetObj.Count - 1
- ssetObj(i).TransformBy TransformationMatrix
- Next
- Exit Sub
-
- ErrTrap:
- On Error GoTo 0
- End Sub
- [/FONT]
|
|