() SW
. . ( ). , , .
( ) Transform2 IComponent2. . , .
(MathTransform) , .
SW api .
9 (a, b, c, d, e, f, g, h, i) , 3 (j, k, l) . m . (n, o, p) .
.
(a, b, c) X. , , X . :
o a X X .
o b Y X .
o c Z X .
(d, e, f) .
o d X Y .
o e Y Y .
o f Z Y .
, 3 (g, h, i).
o g X Z .
o h Y Z .
o i Z Z .
j, k, l (9, 10, 11 ) , . -, , , j, k l X, Y, Z .
o j X .
o k Y .
o l Z .
Transform2 , IMathTransform.
( ), ArrayData IMathTransform.
.
.
.
(Transform2)
(ArrayData)
, (ArrayData)
(Transform2)
.
. . . . . X X . .)
|
|
Visual Basic
Option Explicit Dim swApp As SldWorks.SldWorks Dim model As ModelDoc2 Dim assem As AssemblyDoc Dim sel As SelectionMgr Dim comp As Component2 Dim transform As MathTransform Dim dataTransform As Variant
Option Explicit Dim swApp As SldWorks.SldWorks Dim model As ModelDoc2 Dim assem As AssemblyDoc Dim sel As SelectionMgr Dim comp As Component2 Dim transform As MathTransform Dim dataTransform As Variant |
.
o comp () .
o transform .
o dataTransform .
Visual Basic
Sub main() Set swApp = Application.SldWorks Set model = swApp.ActiveDoc Set assem = model Set sel = model.SelectionManager Set comp = sel.GetSelectedObjectsComponent3(1, -1)
Sub main() Set swApp = Application.SldWorks Set model = swApp.ActiveDoc Set assem = model Set sel = model.SelectionManager Set comp = sel.GetSelectedObjectsComponent3(1, -1) |
.
GetSelectedObjectsComponent3(1, -1) ISelectionMgr, GetSelectedObject6, .
[IComponent2] = [ISelectionMgr]. GetSelectedObjectsComponent3(Index, Mark)
o Index . 1.
o Mark .
-1 ,
0
Visual Basic
Set transform = comp.Transform2 dataTransform = transform.ArrayData
Set transform = comp.Transform2 dataTransform = transform.ArrayData |
.
:
X :
Visual Basic
dataTransform(0) = 1 dataTransform(1) = 0 dataTransform(2) = 0
dataTransform(0) = 1 dataTransform(1) = 0 dataTransform(2) = 0 |
Y :
Visual Basic
dataTransform(3) = 0 dataTransform(4) = 1 dataTransform(5) = 0
dataTransform(3) = 0 dataTransform(4) = 1 dataTransform(5) = 0 |
Z :
Visual Basic
dataTransform(6) = 0 dataTransform(7) = 0 dataTransform(8) = 1
dataTransform(6) = 0 dataTransform(7) = 0 dataTransform(8) = 1 |
(0, 0, 0) .
Visual Basic
dataTransform(9) = 0 dataTransform(10) = 0 dataTransform(11) = 0
dataTransform(9) = 0 dataTransform(10) = 0 dataTransform(11) = 0 |
.
Visual Basic
transform.ArrayData = dataTransform comp.Transform2 = transform End Sub
transform.ArrayData = dataTransform comp.Transform2 = transform End Sub |
. .
|
|
. .
, , . , :
Visual Basic
Set comp = sel.GetSelectedObjectsComponent3(1, -1) Set transform = comp.Transform2 dataTransform = transform.ArrayData Dim el For Each el In dataTransform Debug.Print el Next el
Set comp = sel.GetSelectedObjectsComponent3(1, -1) Set transform = comp.Transform2 dataTransform = transform.ArrayData Dim el For Each el In dataTransform Debug.Print el Next el |
. . Immediate .
SW api .
1. . GetConfigurationByName IModelDoc
2. . GetRootComponent3 IConfiguration.
3. . GetChildren IComponent2.
.
Visual Basic
Option Explicit Dim swApp As SldWorks.SldWorks Dim model As ModelDoc2 Dim assem As AssemblyDoc Dim rootComp As Component2 Dim config As Configuration
Option Explicit Dim swApp As SldWorks.SldWorks Dim model As ModelDoc2 Dim assem As AssemblyDoc Dim rootComp As Component2 Dim config As Configuration |
.
rootComp Component2. .
Visual Basic
Sub main() Set swApp = Application.SldWorks Set model = swApp.ActiveDoc Set assem = model
Sub main() Set swApp = Application.SldWorks Set model = swApp.ActiveDoc Set assem = model |
.
Visual Basic
Set config = model.ConfigurationManager.ActiveConfiguration
Set config = model.ConfigurationManager.ActiveConfiguration |
.
Visual Basic
Set rootComp = config.GetRootComponent3(True) Debug.Print rootComp.Name2
Set rootComp = config.GetRootComponent3(True) Debug.Print rootComp.Name2 |
. Name2 IComponent2.
Visual Basic
Call infoParts(rootComp)
Call infoParts(rootComp) |
.
Visual Basic
Function infoParts(comp As Component2) Dim varComp As Variant Dim elem varComp = comp.getChildren If arrIsEmpty(varComp) = False Then Debug.Print "-:" For Each elem In varComp If elem.GetSuppression <> 0 And elem.IsPatternInstance = False Then Debug.Print elem.Name2 End If Set comp = elem infoParts comp Next End If End Function
Function infoParts(comp As Component2) Dim varComp As Variant Dim elem varComp = comp.getChildren If arrIsEmpty(varComp) = False Then Debug.Print "-:" For Each elem In varComp If elem.GetSuppression <> 0 And elem.IsPatternInstance = False Then Debug.Print elem.Name2 End If Set comp = elem infoParts comp Next End If End Function |
infoParts . :
Visual Basic
Dim varComp As Variant Dim elem
|
|
Dim varComp As Variant Dim elem |
varComp
Visual Basic
varComp = comp.getChildren
varComp = comp.getChildren |
getChildren . . ( ) . .
Visual Basic
If arrIsEmpty(varComp) = False Then
If arrIsEmpty(varComp) = False Then |
:
Visual Basic
Function arrIsEmpty(arr As Variant) As Boolean Dim u As Integer On Error Resume Next u = UBound(arr) If Err = 0 And UBound(arr) <> -1 Then arrIsEmpty = False Else arrIsEmpty = True End If End Function
Function arrIsEmpty(arr As Variant) As Boolean Dim u As Integer On Error Resume Next u = UBound(arr) If Err = 0 And UBound(arr) <> -1 Then arrIsEmpty = False Else arrIsEmpty = True End If End Function |
. : VBA.
Visual Basic
For Each elem In varComp If elem.GetSuppression <> 0 And elem.IsPatternInstance = False Then Debug.Print elem.Name2 End If Set comp = elem infoParts comp Next
For Each elem In varComp If elem.GetSuppression <> 0 And elem.IsPatternInstance = False Then Debug.Print elem.Name2 End If Set comp = elem infoParts comp Next |
, for Each.
Visual Basic
If elem.GetSuppression <> 0 And elem.IsPatternInstance = False Then
If elem.GetSuppression <> 0 And elem.IsPatternInstance = False Then |
, .
infoParts. .
- :
, .