- , , (. API Application Programming Interface). , , . , . , , .. . , API- . . Solid Works, Basic.
, ( ), . , , : , swApp, (), Model , Assembly:
Dim swApp As Object: Set swApp = Application.SldWorks
Dim Model As ModelDoc2: Set Model = swApp.ActiveDoc
Dim Assembly As AssemblyDoc: Set Assembly = swApp.ActiveDoc.
.
( 1, 8.1). . , , . Selection Manager:
Dim SelMan As SelectionMgr: Set SelMan = Model.SelectionManager.
- :
For i = 1 To SelectedObjectCount
BaseCollection.Add Selman.GetSelectedObject6(i, -1)
Next i,
SelectedObjectCount , . BaseCollection. .
( 2) ‑ ( 4.1). , , . . Solid Works ‑ Face2. , , U V [2]. GetUVBounds, Face2. , : (Umin, Umax, Vmin, Vmax). :
|
|
Dim FaceUVBounds, Dim1 As Double, Dim2 As Double
FaceUVBounds = BaseFace.GetUVBounds: Dim1 = Fabox(1) - Fabox(0): Dim2 = Fabox(3) - Fabox(2).
1. ‑: F = {fi}, i =1..3 |
2. , SB |
3. , SL |
4. |
6. |
8. |
9. |
10. |
5. |
7. |
11. |
8.1 -
( 3) . , keName. Assembly AddComponent, AssemblyDoc:
[swApp.OpenDoc keName &, swDocPART] [3]
dim keComponet as Component: Set keComponet = Assembly.AddComponent (keName, Pt(0), Pt(1), Pt(2))
[swApp.CloseDoc keName],
Pt(i) - ‑ AddComponent. , , , . keComponet , .
AddMate3, ModelDoc2. , :
BaseFace.Select True
LocFace.Select True
Model.AddMate3 Type, Align, False, 0, 0, 0, 0, 0, 0, 0, 0, False, Erf.
Type , , .. Align . , , .
, LocFace. , BaseFace, , LocFace [4]. . , , . , , ‑ , .. . (Feature) , :
Dim LocFace as Feature: Set LocFace = keComponent.FeatureByName(LocatingSurfaceName).
( 4) ( 6) ( 8.2). . .
|
|
( 8), 7, , . [5] :
Dim keFaces: keFaces = keComponent.GetBody.GetFaces,
GetBody , (Boundary Representation), keFaces , Face2. , , - ..
, Face.Normal. , GetLoops , . Loop2, , , GetVertices, . , . , :
FacesLoops = SettingFace.GetLoops
For j = 0 to LoopsCount
LoopsVertices = FaceLoop(j).GetVertices
For k = 0 to VerticesCount
VerticesCollection.Add LoopsVertices(k)
Next k
Next j,
SettingFace , VerticesCollection , .
, , keComponent. , . , , kePositionMatrix:
kePositionMatrix As MathTransform: Set kePositionMatrix = keComponent.Transform.
MathTransform. , .
. , , [6]. , ( 4.2). GetBox:
Dim keBox: keBox = keComponent.GetBox (A1,A2),
1 2 , . , keBox ‑ Cmin Cmax. .
( 9). . ( , 3.1). . , - . , ( 8.4) , , , . , . , , H. , δH. H.
, , (Equation Manager), :
|
|
Dim keEquations As EquationMgr: Set keEquations = ke.GetModelDoc.GetEquationMgr.
<>=<>. , , . .
For i = 0 To EquationCount
If = keEquations.Equation(i) Like ParameterName & "=*" Then Equm.Equation(i) = ParameterName & = & NewValue
Next i.
, . , , . .
( 5 7) ‑ . , , [7], .. .
8.3 | 8.4 |