Compare commits
2 commits
main
...
Prec_reduc
Author | SHA1 | Date | |
---|---|---|---|
7ccf5f4e3b | |||
ae173de478 |
20 changed files with 324 additions and 0 deletions
Binary file not shown.
BIN
reducer/Precessing_Reducer/Create Plane Example.swp
Normal file
BIN
reducer/Precessing_Reducer/Create Plane Example.swp
Normal file
Binary file not shown.
BIN
reducer/Precessing_Reducer/Insert axis Example.swp
Normal file
BIN
reducer/Precessing_Reducer/Insert axis Example.swp
Normal file
Binary file not shown.
Binary file not shown.
BIN
reducer/Precessing_Reducer/Precessing_Reducer_gear_macro_002.swp
Normal file
BIN
reducer/Precessing_Reducer/Precessing_Reducer_gear_macro_002.swp
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
reducer/Precessing_Reducer/Precessing_Reducer_gear_macro_007.swp
Normal file
BIN
reducer/Precessing_Reducer/Precessing_Reducer_gear_macro_007.swp
Normal file
Binary file not shown.
Binary file not shown.
BIN
reducer/Precessing_Reducer/Select Plane Example.swp
Normal file
BIN
reducer/Precessing_Reducer/Select Plane Example.swp
Normal file
Binary file not shown.
BIN
reducer/Precessing_Reducer/Test_gear.SLDPRT
Normal file
BIN
reducer/Precessing_Reducer/Test_gear.SLDPRT
Normal file
Binary file not shown.
BIN
reducer/Precessing_Reducer/Test_gear_002.SLDPRT
Normal file
BIN
reducer/Precessing_Reducer/Test_gear_002.SLDPRT
Normal file
Binary file not shown.
BIN
reducer/Precessing_Reducer/Test_gear_003.SLDPRT
Normal file
BIN
reducer/Precessing_Reducer/Test_gear_003.SLDPRT
Normal file
Binary file not shown.
BIN
reducer/Precessing_Reducer/Test_gear_004.SLDPRT
Normal file
BIN
reducer/Precessing_Reducer/Test_gear_004.SLDPRT
Normal file
Binary file not shown.
BIN
reducer/Precessing_Reducer/Test_gear_005.SLDPRT
Normal file
BIN
reducer/Precessing_Reducer/Test_gear_005.SLDPRT
Normal file
Binary file not shown.
BIN
reducer/Precessing_Reducer/Vectors Example.swp
Normal file
BIN
reducer/Precessing_Reducer/Vectors Example.swp
Normal file
Binary file not shown.
166
reducer/Precessing_Reducer/gear.txt
Normal file
166
reducer/Precessing_Reducer/gear.txt
Normal file
|
@ -0,0 +1,166 @@
|
|||
Option Explicit
|
||||
|
||||
Sub Main()
|
||||
Dim swApp As SldWorks.SldWorks
|
||||
Dim swModel As SldWorks.ModelDoc2
|
||||
Dim swSketchMgr As SldWorks.SketchManager
|
||||
Dim swPart As SldWorks.PartDoc
|
||||
Dim points() As Double
|
||||
Dim i As Integer
|
||||
Dim Z1, Z2 As Integer
|
||||
Dim t As Double
|
||||
Dim x, y, z As Double
|
||||
Dim numPoints As Integer
|
||||
Dim radius As Double
|
||||
Dim numTurns As Double
|
||||
Dim height As Double
|
||||
Dim boolStatus As Boolean
|
||||
|
||||
Dim cone_angle As Double
|
||||
Dim nutation_angle As Double
|
||||
Dim prec_angle As Double
|
||||
|
||||
'Dim swSketchPoint As SldWorks.SketchPoint
|
||||
Dim swSketchSegment As SldWorks.SketchSegment
|
||||
|
||||
' Iiaee??aiea e SolidWorks
|
||||
Debug.Print "1. Attempting to connect to SolidWorks"
|
||||
On Error Resume Next
|
||||
Set swApp = Application.SldWorks
|
||||
If swApp Is Nothing Then
|
||||
MsgBox "Ia oaaeinu iiaee??eouny e SolidWorks!", vbCritical
|
||||
Debug.Print "1. Failed to connect to SolidWorks"
|
||||
Exit Sub
|
||||
End If
|
||||
On Error GoTo 0
|
||||
Debug.Print "1. Successfully connected to SolidWorks"
|
||||
|
||||
' I?iaa?ea aeoeaiiai aieoiaioa
|
||||
Debug.Print "2. Checking active document"
|
||||
Set swModel = swApp.ActiveDoc
|
||||
If swModel Is Nothing Then
|
||||
MsgBox "Ioe?ieoa aieoiaio aaoaee a SolidWorks!", vbExclamation
|
||||
Debug.Print "2. No active document found"
|
||||
Exit Sub
|
||||
End If
|
||||
Debug.Print "2. Active document found: " & swModel.GetTitle
|
||||
|
||||
' I?iaa?ea, ?oi yoi aieoiaio aaoaee
|
||||
If swModel.GetType <> swDocPART Then
|
||||
MsgBox "Aeoeaiue aieoiaio aie?ai auou aaoaeu?!", vbExclamation
|
||||
Debug.Print "2. Document is not a part, type: " & swModel.GetType
|
||||
Exit Sub
|
||||
End If
|
||||
Set swPart = swModel
|
||||
Debug.Print "2. Document is a part"
|
||||
|
||||
' Eieoeaeecaoey SketchManager
|
||||
Debug.Print "3. Initializing SketchManager"
|
||||
Set swSketchMgr = swModel.SketchManager
|
||||
If swSketchMgr Is Nothing Then
|
||||
MsgBox "Ia oaaeinu eieoeaeece?iaaou SketchManager!", vbCritical
|
||||
Debug.Print "3. Failed to initialize SketchManager"
|
||||
Exit Sub
|
||||
End If
|
||||
Debug.Print "3. SketchManager initialized"
|
||||
|
||||
' I?iaa?ea e cae?uoea aeoeaiiai yneeca
|
||||
Debug.Print "4. Checking for active sketch"
|
||||
If Not swSketchMgr.ActiveSketch Is Nothing Then
|
||||
swSketchMgr.InsertSketch True ' Cae?uou oaeouee yneec
|
||||
swModel.ClearSelection2 True ' I?enoea auaaeaiey
|
||||
Debug.Print "4. Closed active sketch"
|
||||
Else
|
||||
Debug.Print "4. No active sketch found"
|
||||
End If
|
||||
|
||||
' Onoaiiaea ?a?eia yneeca
|
||||
Debug.Print "5. Setting sketch mode"
|
||||
swModel.SketchManager.AddToDB = False ' Ioee??aiea i?yiie caiene aey nei?inoe
|
||||
|
||||
' Nicaaiea 3D-yneeca
|
||||
Debug.Print "6. Creating 3D sketch"
|
||||
On Error Resume Next
|
||||
swModel.SketchManager.Insert3DSketch True
|
||||
If Err.Number <> 0 Then
|
||||
MsgBox "Ioeaea i?e nicaaiee 3D-yneeca: " & Err.Description, vbCritical
|
||||
Debug.Print "6. Error creating 3D sketch: " & Err.Description
|
||||
On Error GoTo 0
|
||||
Exit Sub
|
||||
End If
|
||||
On Error GoTo 0
|
||||
Debug.Print "6. 3D sketch created successfully"
|
||||
|
||||
' Iano?aeaaaiua ia?aiao?u oanoa?aiee
|
||||
Z2 = 60
|
||||
Z1 = Z2 - 1
|
||||
radius = 60 ' ?aaeon nie?aee (a ieeeeiao?ao)
|
||||
radius = radius / 1000 ' ?aaeon nie?aee (a iao?ao)
|
||||
numPoints = 360 ' Eiee?anoai eiio?ieuiuo oi?ae
|
||||
cone_angle = 10
|
||||
nutation_angle = 5
|
||||
prec_angle = 5
|
||||
|
||||
|
||||
' Eieoeaeecaoey ianneaa oi?ae
|
||||
ReDim points(0 To numPoints * 3 - 1) ' [x1, y1, z1, x2, y2, z2, ...]
|
||||
|
||||
' Aaia?aoey eii?aeiao oi?ae (nie?aeu)
|
||||
Debug.Print "7. Generating control points"
|
||||
For i = 0 To numPoints - 1
|
||||
x = radius * Cos(cone_angle) * (-1 * Cos(prec_angle) * Sin(prec_angle * (Z1 / Z2)) + Sin(prec_angle) * Cos(prec_angle * (Z1 / Z2)) * Cos(nutation_angle)) - (radius * Sin(cone_angle) * Sin(prec_angle) * Sin(nutation_angle))
|
||||
y = -1 * radius * Cos(cone_angle) * (Sin(prec_angle) * Sin(prec_angle * (Z1 / Z2)) + Cos(prec_angle) * Cos(prec_angle * (Z1 / Z2)) * Cos(nutation_angle)) + (radius * Sin(cone_angle) * Cos(prec_angle) * Sin(nutation_angle))
|
||||
z = -1 * radius * Cos(cone_angle) * Cos(prec_angle * (Z1 / Z2)) * Sin(nutation_angle) - (radius * Sin(cone_angle) * Cos(nutation_angle))
|
||||
points(i * 3) = x
|
||||
points(i * 3 + 1) = y
|
||||
points(i * 3 + 2) = z
|
||||
Debug.Print "7. Point " & i & ": (" & x & ", " & y & ", " & z & ")"
|
||||
Next i
|
||||
' For i = 0 To numPoints - 1
|
||||
' t = i / (numPoints - 1)
|
||||
' x = radius * Cos(numTurns * 2 * 3.14159 * t)
|
||||
' y = radius * Sin(numTurns * 2 * 3.14159 * t)
|
||||
' z = height * t
|
||||
' points(i * 3) = x
|
||||
' points(i * 3 + 1) = y
|
||||
' points(i * 3 + 2) = z
|
||||
' Debug.Print "7. Point " & i & ": (" & x & ", " & y & ", " & z & ")"
|
||||
' Next i
|
||||
Debug.Print "7. Control points generated"
|
||||
|
||||
' Nicaaiea nieaeia
|
||||
Debug.Print "8. Creating spline"
|
||||
Debug.Print "Err.Number: " & Err.Number
|
||||
On Error Resume Next
|
||||
' boolStatus = swSketchMgr.CreateSpline(points)
|
||||
Set swSketchSegment = swSketchMgr.CreateSpline2((points), True)
|
||||
' If Err.Number <> 0 Then
|
||||
' MsgBox "Ioeaea i?e nicaaiee nieaeia: " & Err.Description, vbCritical
|
||||
' Debug.Print "8. Error creating spline: " & Err.Description
|
||||
' swSketchMgr.InsertSketch False
|
||||
' On Error GoTo 0
|
||||
' Exit Sub
|
||||
'End If
|
||||
'If Not boolStatus Then
|
||||
' MsgBox "Ia oaaeinu nicaaou nieaei! I?iaa?uoa ia?aiao?u.", vbCritical
|
||||
' Debug.Print "8. Failed to create spline"
|
||||
' swSketchMgr.InsertSketch False
|
||||
' Exit Sub
|
||||
'End If
|
||||
'On Error GoTo 0
|
||||
'Debug.Print "8. Spline created successfully"
|
||||
|
||||
' Caaa?oaiea yneeca
|
||||
Debug.Print "9. Closing sketch"
|
||||
swSketchMgr.InsertSketch True
|
||||
Debug.Print "9. Sketch closed"
|
||||
|
||||
' Iaiiaeaiea iiaaee
|
||||
Debug.Print "10. Rebuilding model"
|
||||
swModel.ForceRebuild3 True
|
||||
Debug.Print "10. Model rebuilt"
|
||||
|
||||
' Niiauaiea ia oniaoiii caaa?oaiee
|
||||
MsgBox "3D-nieaei oniaoii nicaai!", vbInformation
|
||||
End Sub
|
||||
|
158
reducer/Precessing_Reducer/spiral.txt
Normal file
158
reducer/Precessing_Reducer/spiral.txt
Normal file
|
@ -0,0 +1,158 @@
|
|||
Option Explicit
|
||||
|
||||
Sub Main()
|
||||
Dim swApp As SldWorks.SldWorks
|
||||
Dim swModel As SldWorks.ModelDoc2
|
||||
Dim swSketchMgr As SldWorks.SketchManager
|
||||
Dim swPart As SldWorks.PartDoc
|
||||
Dim points() As Double
|
||||
Dim i As Integer
|
||||
Dim t As Double
|
||||
Dim x, y, z As Double
|
||||
Dim numPoints As Integer
|
||||
Dim radius As Double
|
||||
Dim numTurns As Double
|
||||
Dim height As Double
|
||||
Dim boolStatus As Boolean
|
||||
|
||||
'Dim swSketchPoint As SldWorks.SketchPoint
|
||||
Dim swSketchSegment As SldWorks.SketchSegment
|
||||
|
||||
' ????????????? ????????? ???????
|
||||
radius = 0.01 ' ?aaeon nie?aee (a iao?ao)
|
||||
numTurns = 2 ' Eiee?anoai aeoeia nie?aee
|
||||
height = 0.01 ' Aunioa nie?aee (a iao?ao)
|
||||
numPoints = 10 ' Eiee?anoai eiio?ieuiuo oi?ae
|
||||
|
||||
' Iiaee??aiea e SolidWorks
|
||||
Debug.Print "1. Attempting to connect to SolidWorks"
|
||||
On Error Resume Next
|
||||
Set swApp = Application.SldWorks
|
||||
If swApp Is Nothing Then
|
||||
MsgBox "Ia oaaeinu iiaee??eouny e SolidWorks!", vbCritical
|
||||
Debug.Print "1. Failed to connect to SolidWorks"
|
||||
Exit Sub
|
||||
End If
|
||||
On Error GoTo 0
|
||||
Debug.Print "1. Successfully connected to SolidWorks"
|
||||
|
||||
' I?iaa?ea aeoeaiiai aieoiaioa
|
||||
Debug.Print "2. Checking active document"
|
||||
Set swModel = swApp.ActiveDoc
|
||||
If swModel Is Nothing Then
|
||||
MsgBox "Ioe?ieoa aieoiaio aaoaee a SolidWorks!", vbExclamation
|
||||
Debug.Print "2. No active document found"
|
||||
Exit Sub
|
||||
End If
|
||||
Debug.Print "2. Active document found: " & swModel.GetTitle
|
||||
|
||||
' I?iaa?ea, ?oi yoi aieoiaio aaoaee
|
||||
If swModel.GetType <> swDocPART Then
|
||||
MsgBox "Aeoeaiue aieoiaio aie?ai auou aaoaeu?!", vbExclamation
|
||||
Debug.Print "2. Document is not a part, type: " & swModel.GetType
|
||||
Exit Sub
|
||||
End If
|
||||
Set swPart = swModel
|
||||
Debug.Print "2. Document is a part"
|
||||
|
||||
' Eieoeaeecaoey SketchManager
|
||||
Debug.Print "3. Initializing SketchManager"
|
||||
Set swSketchMgr = swModel.SketchManager
|
||||
If swSketchMgr Is Nothing Then
|
||||
MsgBox "Ia oaaeinu eieoeaeece?iaaou SketchManager!", vbCritical
|
||||
Debug.Print "3. Failed to initialize SketchManager"
|
||||
Exit Sub
|
||||
End If
|
||||
Debug.Print "3. SketchManager initialized"
|
||||
|
||||
' I?iaa?ea e cae?uoea aeoeaiiai yneeca
|
||||
Debug.Print "4. Checking for active sketch"
|
||||
If Not swSketchMgr.ActiveSketch Is Nothing Then
|
||||
swSketchMgr.InsertSketch True ' Cae?uou oaeouee yneec
|
||||
swModel.ClearSelection2 True ' I?enoea auaaeaiey
|
||||
Debug.Print "4. Closed active sketch"
|
||||
Else
|
||||
Debug.Print "4. No active sketch found"
|
||||
End If
|
||||
|
||||
' Onoaiiaea ?a?eia yneeca
|
||||
Debug.Print "5. Setting sketch mode"
|
||||
swModel.SketchManager.AddToDB = False ' Ioee??aiea i?yiie caiene aey nei?inoe
|
||||
|
||||
' Nicaaiea 3D-yneeca
|
||||
Debug.Print "6. Creating 3D sketch"
|
||||
On Error Resume Next
|
||||
swModel.SketchManager.Insert3DSketch True
|
||||
If Err.Number <> 0 Then
|
||||
MsgBox "Ioeaea i?e nicaaiee 3D-yneeca: " & Err.Description, vbCritical
|
||||
Debug.Print "6. Error creating 3D sketch: " & Err.Description
|
||||
On Error GoTo 0
|
||||
Exit Sub
|
||||
End If
|
||||
On Error GoTo 0
|
||||
Debug.Print "6. 3D sketch created successfully"
|
||||
|
||||
' Eieoeaeecaoey ianneaa oi?ae
|
||||
ReDim points(0 To numPoints * 3 - 1) ' [x1, y1, z1, x2, y2, z2, ...]
|
||||
|
||||
' Aaia?aoey eii?aeiao oi?ae (nie?aeu)
|
||||
Debug.Print "7. Generating control points"
|
||||
For i = 0 To numPoints - 1
|
||||
t = i / (numPoints - 1)
|
||||
x = radius * Cos(numTurns * 2 * 3.14159 * t)
|
||||
y = radius * Sin(numTurns * 2 * 3.14159 * t)
|
||||
z = height * t
|
||||
points(i * 3) = x
|
||||
points(i * 3 + 1) = y
|
||||
points(i * 3 + 2) = z
|
||||
Debug.Print "7. Point " & i & ": (" & x & ", " & y & ", " & z & ")"
|
||||
Next i
|
||||
Debug.Print "7. Control points generated"
|
||||
|
||||
' Nicaaiea nieaeia
|
||||
Debug.Print "8. Creating spline"
|
||||
Debug.Print "Err.Number: " & Err.Number
|
||||
On Error Resume Next
|
||||
' boolStatus = swSketchMgr.CreateSpline(points)
|
||||
Set swSketchSegment = swSketchMgr.CreateSpline2((points), True)
|
||||
' If Err.Number <> 0 Then
|
||||
' MsgBox "Ioeaea i?e nicaaiee nieaeia: " & Err.Description, vbCritical
|
||||
' Debug.Print "8. Error creating spline: " & Err.Description
|
||||
' swSketchMgr.InsertSketch False
|
||||
' On Error GoTo 0
|
||||
' Exit Sub
|
||||
'End If
|
||||
'If Not boolStatus Then
|
||||
' MsgBox "Ia oaaeinu nicaaou nieaei! I?iaa?uoa ia?aiao?u.", vbCritical
|
||||
' Debug.Print "8. Failed to create spline"
|
||||
' swSketchMgr.InsertSketch False
|
||||
' Exit Sub
|
||||
'End If
|
||||
'On Error GoTo 0
|
||||
'Debug.Print "8. Spline created successfully"
|
||||
|
||||
' Caaa?oaiea yneeca
|
||||
Debug.Print "9. Closing sketch"
|
||||
swSketchMgr.InsertSketch True
|
||||
Debug.Print "9. Sketch closed"
|
||||
|
||||
' Iaiiaeaiea iiaaee
|
||||
Debug.Print "10. Rebuilding model"
|
||||
swModel.ForceRebuild3 True
|
||||
Debug.Print "10. Model rebuilt"
|
||||
|
||||
' Niiauaiea ia oniaoiii caaa?oaiee
|
||||
MsgBox "3D-nieaei oniaoii nicaai!", vbInformation
|
||||
End Sub
|
||||
|
||||
|
||||
' 7. Point 0: (0,01, 0, 0)
|
||||
' 7. Point 1: (1,73649339122722E-03, 9,84807548215509E-03, 1,11111111111111E-03)
|
||||
' 7. Point 2: (-9,39691814044484E-03, 3,42022359821382E-03, 2,22222222222222E-03)
|
||||
' 7. Point 3: (-5,00003064098434E-03, -8,66023634719156E-03, 3,33333333333333E-03)
|
||||
' 7. Point 4: (7,66041410764426E-03, -6,42791223488659E-03, 4,44444444444444E-03)
|
||||
' 7. Point 5: (7,66048233538193E-03, 6,42783092413774E-03, 5,55555555555556E-03)
|
||||
' 7. Point 6: (-4,99993871784355E-03, 8,66028941882481E-03, 6,66666666666667E-03)
|
||||
' 7. Point 7: (-9,39695444339722E-03, -3,42012385575689E-03, 7,77777777777778E-03)
|
||||
' 7. Point 8: (1,73638886011905E-03, -9,84809391336488E-03, 8,88888888888889E-03)
|
||||
' 7. Point 9: (9,99999999943668E-03, -1,06143591732241E-07, 0,01)
|
Loading…
Add table
Add a link
Reference in a new issue