solidworks-mcp-server 3.0.8 → 3.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (243) hide show
  1. package/CHANGELOG.md +175 -98
  2. package/LICENSE +20 -20
  3. package/README.md +195 -423
  4. package/dist/adapters/circuit-breaker.d.ts +84 -0
  5. package/dist/adapters/circuit-breaker.d.ts.map +1 -0
  6. package/dist/adapters/circuit-breaker.js +228 -0
  7. package/dist/adapters/circuit-breaker.js.map +1 -0
  8. package/dist/adapters/connection-pool.d.ts +83 -0
  9. package/dist/adapters/connection-pool.d.ts.map +1 -0
  10. package/dist/adapters/connection-pool.js +282 -0
  11. package/dist/adapters/connection-pool.js.map +1 -0
  12. package/dist/adapters/edge-adapter.d.ts +43 -0
  13. package/dist/adapters/edge-adapter.d.ts.map +1 -0
  14. package/dist/adapters/edge-adapter.js +417 -0
  15. package/dist/adapters/edge-adapter.js.map +1 -0
  16. package/dist/adapters/factory.d.ts +60 -0
  17. package/dist/adapters/factory.d.ts.map +1 -0
  18. package/dist/adapters/factory.js +212 -0
  19. package/dist/adapters/factory.js.map +1 -0
  20. package/dist/adapters/feature-complexity-analyzer.d.ts +102 -0
  21. package/dist/adapters/feature-complexity-analyzer.d.ts.map +1 -0
  22. package/dist/adapters/feature-complexity-analyzer.js +322 -0
  23. package/dist/adapters/feature-complexity-analyzer.js.map +1 -0
  24. package/dist/adapters/macro-generator.d.ts +30 -0
  25. package/dist/adapters/macro-generator.d.ts.map +1 -0
  26. package/dist/adapters/macro-generator.js +524 -0
  27. package/dist/adapters/macro-generator.js.map +1 -0
  28. package/dist/adapters/mock-solidworks-adapter.d.ts +92 -0
  29. package/dist/adapters/mock-solidworks-adapter.d.ts.map +1 -0
  30. package/dist/adapters/mock-solidworks-adapter.js +367 -0
  31. package/dist/adapters/mock-solidworks-adapter.js.map +1 -0
  32. package/dist/adapters/types.d.ts +376 -0
  33. package/dist/adapters/types.d.ts.map +1 -0
  34. package/dist/adapters/types.js +261 -0
  35. package/dist/adapters/types.js.map +1 -0
  36. package/dist/adapters/winax-adapter-enhanced.d.ts +55 -0
  37. package/dist/adapters/winax-adapter-enhanced.d.ts.map +1 -0
  38. package/dist/adapters/winax-adapter-enhanced.js +601 -0
  39. package/dist/adapters/winax-adapter-enhanced.js.map +1 -0
  40. package/dist/adapters/winax-adapter.d.ts +55 -0
  41. package/dist/adapters/winax-adapter.d.ts.map +1 -0
  42. package/dist/adapters/winax-adapter.js +667 -0
  43. package/dist/adapters/winax-adapter.js.map +1 -0
  44. package/dist/api/stainless-api.d.ts +29 -0
  45. package/dist/api/stainless-api.d.ts.map +1 -0
  46. package/dist/api/stainless-api.js +408 -0
  47. package/dist/api/stainless-api.js.map +1 -0
  48. package/dist/cache/manager.d.ts.map +1 -1
  49. package/dist/cache/manager.js +4 -3
  50. package/dist/cache/manager.js.map +1 -1
  51. package/dist/core/interfaces/core-abstractions.d.ts.map +1 -1
  52. package/dist/core/interfaces/core-abstractions.js.map +1 -1
  53. package/dist/db/connection.js +4 -4
  54. package/dist/db/connection.js.map +1 -1
  55. package/dist/index.d.ts.map +1 -1
  56. package/dist/index.js +86 -79
  57. package/dist/index.js.map +1 -1
  58. package/dist/knowledge/chromadb.d.ts.map +1 -1
  59. package/dist/knowledge/chromadb.js +5 -3
  60. package/dist/knowledge/chromadb.js.map +1 -1
  61. package/dist/macro/recorder.d.ts +1 -1
  62. package/dist/macro/recorder.d.ts.map +1 -1
  63. package/dist/macro/recorder.js +10 -10
  64. package/dist/macro/recorder.js.map +1 -1
  65. package/dist/resources/base.js +10 -10
  66. package/dist/resources/base.js.map +1 -1
  67. package/dist/resources/design-table.d.ts +10 -12
  68. package/dist/resources/design-table.d.ts.map +1 -1
  69. package/dist/resources/design-table.js +42 -39
  70. package/dist/resources/design-table.js.map +1 -1
  71. package/dist/resources/pdm.d.ts +44 -45
  72. package/dist/resources/pdm.d.ts.map +1 -1
  73. package/dist/resources/pdm.js +118 -79
  74. package/dist/resources/pdm.js.map +1 -1
  75. package/dist/resources/registry.d.ts +1 -1
  76. package/dist/resources/registry.d.ts.map +1 -1
  77. package/dist/resources/registry.js +1 -1
  78. package/dist/shared/constants/solidworks-constants.d.ts.map +1 -1
  79. package/dist/shared/constants/solidworks-constants.js +9 -9
  80. package/dist/shared/constants/solidworks-constants.js.map +1 -1
  81. package/dist/solidworks/api.d.ts +8 -6
  82. package/dist/solidworks/api.d.ts.map +1 -1
  83. package/dist/solidworks/api.js +614 -188
  84. package/dist/solidworks/api.js.map +1 -1
  85. package/dist/state/store.d.ts +1 -1
  86. package/dist/state/store.d.ts.map +1 -1
  87. package/dist/state/store.js +14 -14
  88. package/dist/state/store.js.map +1 -1
  89. package/dist/tools/analysis.d.ts +12 -2
  90. package/dist/tools/analysis.d.ts.map +1 -1
  91. package/dist/tools/analysis.js +141 -31
  92. package/dist/tools/analysis.js.map +1 -1
  93. package/dist/tools/diagnostics.d.ts +1 -1
  94. package/dist/tools/diagnostics.d.ts.map +1 -1
  95. package/dist/tools/diagnostics.js +2 -2
  96. package/dist/tools/diagnostics.js.map +1 -1
  97. package/dist/tools/drawing.d.ts +2 -2
  98. package/dist/tools/drawing.d.ts.map +1 -1
  99. package/dist/tools/drawing.js +94 -10
  100. package/dist/tools/drawing.js.map +1 -1
  101. package/dist/tools/enhanced-drawing.d.ts +1 -1
  102. package/dist/tools/enhanced-drawing.d.ts.map +1 -1
  103. package/dist/tools/enhanced-drawing.js +10 -13
  104. package/dist/tools/enhanced-drawing.js.map +1 -1
  105. package/dist/tools/export.d.ts +1 -1
  106. package/dist/tools/export.d.ts.map +1 -1
  107. package/dist/tools/export.js +88 -14
  108. package/dist/tools/export.js.map +1 -1
  109. package/dist/tools/extrusion-helper.d.ts +15 -0
  110. package/dist/tools/extrusion-helper.d.ts.map +1 -0
  111. package/dist/tools/extrusion-helper.js +61 -0
  112. package/dist/tools/extrusion-helper.js.map +1 -0
  113. package/dist/tools/macro-security.d.ts +2 -2
  114. package/dist/tools/macro-security.d.ts.map +1 -1
  115. package/dist/tools/macro-security.js +2 -2
  116. package/dist/tools/macro-security.js.map +1 -1
  117. package/dist/tools/modeling.d.ts +2 -2
  118. package/dist/tools/modeling.d.ts.map +1 -1
  119. package/dist/tools/modeling.js +6 -6
  120. package/dist/tools/modeling.js.map +1 -1
  121. package/dist/tools/native-macro.d.ts +1 -1
  122. package/dist/tools/native-macro.d.ts.map +1 -1
  123. package/dist/tools/native-macro.js +246 -239
  124. package/dist/tools/native-macro.js.map +1 -1
  125. package/dist/tools/sketch.d.ts +28 -28
  126. package/dist/tools/sketch.d.ts.map +1 -1
  127. package/dist/tools/sketch.js +202 -136
  128. package/dist/tools/sketch.js.map +1 -1
  129. package/dist/tools/template-manager.d.ts +5 -5
  130. package/dist/tools/template-manager.d.ts.map +1 -1
  131. package/dist/tools/template-manager.js +66 -65
  132. package/dist/tools/template-manager.js.map +1 -1
  133. package/dist/tools/vba-advanced.d.ts +10 -10
  134. package/dist/tools/vba-advanced.d.ts.map +1 -1
  135. package/dist/tools/vba-advanced.js +791 -708
  136. package/dist/tools/vba-advanced.js.map +1 -1
  137. package/dist/tools/vba-assembly.d.ts +10 -10
  138. package/dist/tools/vba-assembly.d.ts.map +1 -1
  139. package/dist/tools/vba-assembly.js +562 -500
  140. package/dist/tools/vba-assembly.js.map +1 -1
  141. package/dist/tools/vba-drawing.d.ts +12 -12
  142. package/dist/tools/vba-drawing.d.ts.map +1 -1
  143. package/dist/tools/vba-drawing.js +681 -572
  144. package/dist/tools/vba-drawing.js.map +1 -1
  145. package/dist/tools/vba-file-management.d.ts +12 -12
  146. package/dist/tools/vba-file-management.d.ts.map +1 -1
  147. package/dist/tools/vba-file-management.js +662 -589
  148. package/dist/tools/vba-file-management.js.map +1 -1
  149. package/dist/tools/vba-part.d.ts +10 -10
  150. package/dist/tools/vba-part.d.ts.map +1 -1
  151. package/dist/tools/vba-part.js +484 -426
  152. package/dist/tools/vba-part.js.map +1 -1
  153. package/dist/tools/vba.d.ts +361 -361
  154. package/dist/tools/vba.d.ts.map +1 -1
  155. package/dist/tools/vba.js +67 -81
  156. package/dist/tools/vba.js.map +1 -1
  157. package/dist/utils/config.js +2 -2
  158. package/dist/utils/config.js.map +1 -1
  159. package/dist/utils/environment.d.ts +243 -0
  160. package/dist/utils/environment.d.ts.map +1 -0
  161. package/dist/utils/environment.js +207 -0
  162. package/dist/utils/environment.js.map +1 -0
  163. package/dist/utils/logger.d.ts.map +1 -1
  164. package/dist/utils/logger.js +6 -6
  165. package/dist/utils/logger.js.map +1 -1
  166. package/dist/utils/solidworks-config.d.ts +39 -0
  167. package/dist/utils/solidworks-config.d.ts.map +1 -0
  168. package/dist/utils/solidworks-config.js +156 -0
  169. package/dist/utils/solidworks-config.js.map +1 -0
  170. package/package.json +84 -84
  171. package/scripts/setup.js +70 -70
  172. package/dist/application/services/command-bus.d.ts +0 -39
  173. package/dist/application/services/command-bus.d.ts.map +0 -1
  174. package/dist/application/services/command-bus.js +0 -88
  175. package/dist/application/services/command-bus.js.map +0 -1
  176. package/dist/application/services/event-bus.d.ts +0 -31
  177. package/dist/application/services/event-bus.d.ts.map +0 -1
  178. package/dist/application/services/event-bus.js +0 -83
  179. package/dist/application/services/event-bus.js.map +0 -1
  180. package/dist/application/services/query-bus.d.ts +0 -30
  181. package/dist/application/services/query-bus.d.ts.map +0 -1
  182. package/dist/application/services/query-bus.js +0 -59
  183. package/dist/application/services/query-bus.js.map +0 -1
  184. package/dist/application/services/tool-registry.d.ts +0 -53
  185. package/dist/application/services/tool-registry.d.ts.map +0 -1
  186. package/dist/application/services/tool-registry.js +0 -81
  187. package/dist/application/services/tool-registry.js.map +0 -1
  188. package/dist/application/use-cases/analysis/index.d.ts +0 -13
  189. package/dist/application/use-cases/analysis/index.d.ts.map +0 -1
  190. package/dist/application/use-cases/analysis/index.js +0 -17
  191. package/dist/application/use-cases/analysis/index.js.map +0 -1
  192. package/dist/application/use-cases/drawing/index.d.ts +0 -13
  193. package/dist/application/use-cases/drawing/index.d.ts.map +0 -1
  194. package/dist/application/use-cases/drawing/index.js +0 -17
  195. package/dist/application/use-cases/drawing/index.js.map +0 -1
  196. package/dist/application/use-cases/export/index.d.ts +0 -13
  197. package/dist/application/use-cases/export/index.d.ts.map +0 -1
  198. package/dist/application/use-cases/export/index.js +0 -17
  199. package/dist/application/use-cases/export/index.js.map +0 -1
  200. package/dist/application/use-cases/macro/index.d.ts +0 -13
  201. package/dist/application/use-cases/macro/index.d.ts.map +0 -1
  202. package/dist/application/use-cases/macro/index.js +0 -17
  203. package/dist/application/use-cases/macro/index.js.map +0 -1
  204. package/dist/application/use-cases/modeling/index.d.ts +0 -56
  205. package/dist/application/use-cases/modeling/index.d.ts.map +0 -1
  206. package/dist/application/use-cases/modeling/index.js +0 -385
  207. package/dist/application/use-cases/modeling/index.js.map +0 -1
  208. package/dist/index.refactored.d.ts +0 -7
  209. package/dist/index.refactored.d.ts.map +0 -1
  210. package/dist/index.refactored.js +0 -254
  211. package/dist/index.refactored.js.map +0 -1
  212. package/dist/infrastructure/config/configuration-manager.d.ts +0 -381
  213. package/dist/infrastructure/config/configuration-manager.d.ts.map +0 -1
  214. package/dist/infrastructure/config/configuration-manager.js +0 -566
  215. package/dist/infrastructure/config/configuration-manager.js.map +0 -1
  216. package/dist/infrastructure/container/service-locator.d.ts +0 -14
  217. package/dist/infrastructure/container/service-locator.d.ts.map +0 -1
  218. package/dist/infrastructure/container/service-locator.js +0 -38
  219. package/dist/infrastructure/container/service-locator.js.map +0 -1
  220. package/dist/infrastructure/logging/logger.d.ts +0 -24
  221. package/dist/infrastructure/logging/logger.d.ts.map +0 -1
  222. package/dist/infrastructure/logging/logger.js +0 -65
  223. package/dist/infrastructure/logging/logger.js.map +0 -1
  224. package/dist/infrastructure/solidworks/solidworks-adapter.d.ts +0 -43
  225. package/dist/infrastructure/solidworks/solidworks-adapter.d.ts.map +0 -1
  226. package/dist/infrastructure/solidworks/solidworks-adapter.js +0 -527
  227. package/dist/infrastructure/solidworks/solidworks-adapter.js.map +0 -1
  228. package/dist/presentation/mcp/request-handler.d.ts +0 -41
  229. package/dist/presentation/mcp/request-handler.d.ts.map +0 -1
  230. package/dist/presentation/mcp/request-handler.js +0 -100
  231. package/dist/presentation/mcp/request-handler.js.map +0 -1
  232. package/dist/presentation/transformers/error-transformer.d.ts +0 -16
  233. package/dist/presentation/transformers/error-transformer.d.ts.map +0 -1
  234. package/dist/presentation/transformers/error-transformer.js +0 -44
  235. package/dist/presentation/transformers/error-transformer.js.map +0 -1
  236. package/dist/presentation/transformers/response-transformer.d.ts +0 -24
  237. package/dist/presentation/transformers/response-transformer.d.ts.map +0 -1
  238. package/dist/presentation/transformers/response-transformer.js +0 -102
  239. package/dist/presentation/transformers/response-transformer.js.map +0 -1
  240. package/dist/tools/drawing-analysis.d.ts +0 -9
  241. package/dist/tools/drawing-analysis.d.ts.map +0 -1
  242. package/dist/tools/drawing-analysis.js +0 -239
  243. package/dist/tools/drawing-analysis.js.map +0 -1
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Macro Generator for SolidWorks VBA Operations
3
+ *
4
+ * Generates VBA macros dynamically to handle complex operations
5
+ * that exceed winax COM parameter limitations.
6
+ */
7
+ import type { ExtrusionParameters, LoftParameters, RevolveParameters, SweepParameters } from './types.js';
8
+ export declare class MacroGenerator {
9
+ /**
10
+ * Generate VBA macro for complex extrusion with all parameters
11
+ */
12
+ generateExtrusionMacro(params: ExtrusionParameters): string;
13
+ /**
14
+ * Generate VBA macro for revolve feature
15
+ */
16
+ generateRevolveMacro(params: RevolveParameters): string;
17
+ /**
18
+ * Generate VBA macro for sweep feature
19
+ */
20
+ generateSweepMacro(params: SweepParameters): string;
21
+ /**
22
+ * Generate VBA macro for loft feature
23
+ */
24
+ generateLoftMacro(params: LoftParameters): string;
25
+ /**
26
+ * Generate a generic VBA macro for any SolidWorks operation
27
+ */
28
+ generateGenericMacro(methodName: string, parameters: any[]): string;
29
+ }
30
+ //# sourceMappingURL=macro-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"macro-generator.d.ts","sourceRoot":"","sources":["../../src/adapters/macro-generator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE1G,qBAAa,cAAc;IACzB;;OAEG;IACH,sBAAsB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM;IA4K3D;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM;IAgJvD;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM;IAqEnD;;OAEG;IACH,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM;IAiFjD;;OAEG;IACH,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,MAAM;CAqDpE"}
@@ -0,0 +1,524 @@
1
+ /**
2
+ * Macro Generator for SolidWorks VBA Operations
3
+ *
4
+ * Generates VBA macros dynamically to handle complex operations
5
+ * that exceed winax COM parameter limitations.
6
+ */
7
+ export class MacroGenerator {
8
+ /**
9
+ * Generate VBA macro for complex extrusion with all parameters
10
+ */
11
+ generateExtrusionMacro(params) {
12
+ const depth = params.depth / 1000; // Convert to meters
13
+ const draft = params.draft || 0;
14
+ const reverse = params.reverse ? 'True' : 'False';
15
+ const bothDirections = params.bothDirections ? 'True' : 'False';
16
+ const merge = params.merge !== false ? 'True' : 'False';
17
+ const flipSideToCut = params.flipSideToCut ? 'True' : 'False';
18
+ // End conditions mapping
19
+ const endConditionMap = {
20
+ Blind: 0,
21
+ ThroughAll: 1,
22
+ UpToNext: 2,
23
+ UpToVertex: 3,
24
+ UpToSurface: 4,
25
+ OffsetFromSurface: 5,
26
+ MidPlane: 6,
27
+ };
28
+ const endCondition = params.endCondition ? endConditionMap[params.endCondition] || 0 : 0;
29
+ return `
30
+ Option Explicit
31
+
32
+ Sub CreateExtrusion()
33
+ Dim swApp As Object
34
+ Dim swModel As Object
35
+ Dim swFeatureMgr As Object
36
+ Dim swFeature As Object
37
+ Dim boolStatus As Boolean
38
+ Dim errorMsg As String
39
+
40
+ On Error GoTo ErrorHandler
41
+
42
+ ' Get SolidWorks application
43
+ Set swApp = Application.SldWorks
44
+ Set swModel = swApp.ActiveDoc
45
+
46
+ If swModel Is Nothing Then
47
+ Debug.Print "ERROR: No active document"
48
+ Exit Sub
49
+ End If
50
+
51
+ Set swFeatureMgr = swModel.FeatureManager
52
+
53
+ If swFeatureMgr Is Nothing Then
54
+ errorMsg = "ERROR: Cannot access FeatureManager"
55
+ GoTo ErrorHandler
56
+ End If
57
+
58
+ ' Ensure we're not in sketch mode
59
+ swModel.SketchManager.InsertSketch True
60
+
61
+ ' Clear selections
62
+ swModel.ClearSelection2 True
63
+
64
+ ' Select the sketch for extrusion
65
+ Dim vSketchFeatures As Variant
66
+ Dim i As Integer
67
+ Dim swFeat As Object
68
+ Dim sketchSelected As Boolean
69
+
70
+ sketchSelected = False
71
+
72
+ ' Try to select by name
73
+ Dim sketchNames As Variant
74
+ sketchNames = Array("Sketch1", "Sketch2", "Sketch3", "Sketch4", "Sketch5")
75
+
76
+ For i = 0 To UBound(sketchNames)
77
+ boolStatus = swModel.Extension.SelectByID2(sketchNames(i), "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
78
+ If boolStatus Then
79
+ sketchSelected = True
80
+ Exit For
81
+ End If
82
+ Next i
83
+
84
+ ' If no sketch selected, try to find the last sketch
85
+ If Not sketchSelected Then
86
+ Dim featureCount As Long
87
+ featureCount = swModel.GetFeatureCount
88
+
89
+ For i = 0 To Min(10, featureCount - 1)
90
+ Set swFeat = swModel.FeatureByPositionReverse(i)
91
+ If Not swFeat Is Nothing Then
92
+ If InStr(1, swFeat.GetTypeName2, "ProfileFeature", vbTextCompare) > 0 Or _
93
+ InStr(1, swFeat.GetTypeName2, "Sketch", vbTextCompare) > 0 Then
94
+ swFeat.Select2 False, 0
95
+ sketchSelected = True
96
+ Exit For
97
+ End If
98
+ End If
99
+ Next i
100
+ End If
101
+
102
+ ' Validate sketch selection
103
+ If Not sketchSelected Then
104
+ errorMsg = "ERROR: No sketch found to extrude. Please create a sketch first."
105
+ GoTo ErrorHandler
106
+ End If
107
+
108
+ ' Create the extrusion with all parameters
109
+ Set swFeature = swFeatureMgr.FeatureExtrusion3( _
110
+ ${bothDirections === 'False' ? 'True' : 'False'}, _ ' Single direction
111
+ ${reverse}, _ ' Flip
112
+ ${bothDirections}, _ ' Both directions
113
+ ${endCondition}, _ ' End condition type 1
114
+ 0, _ ' End condition type 2
115
+ ${depth}, _ ' Depth 1
116
+ ${params.depth2 ? params.depth2 / 1000 : 0}, _ ' Depth 2
117
+ ${params.draftWhileExtruding ? 'True' : 'False'}, _ ' Draft while extruding 1
118
+ False, _ ' Draft while extruding 2
119
+ ${params.draftOutward ? 'True' : 'False'}, _ ' Draft outward 1
120
+ False, _ ' Draft outward 2
121
+ ${(draft * Math.PI) / 180}, _ ' Draft angle 1 (radians)
122
+ 0, _ ' Draft angle 2
123
+ ${params.offsetReverse ? 'True' : 'False'}, _ ' Offset reverse 1
124
+ False, _ ' Offset reverse 2
125
+ ${params.translateSurface ? 'True' : 'False'}, _ ' Translate surface 1
126
+ False, _ ' Translate surface 2
127
+ ${merge}, _ ' Merge
128
+ ${flipSideToCut}, _ ' Flip side to cut
129
+ True, _ ' Update
130
+ 0, _ ' Start condition
131
+ 0, _ ' Flip start offset
132
+ False _ ' Use feature scope
133
+ )
134
+
135
+ ' Handle thin feature if specified
136
+ ${params.thinFeature
137
+ ? `
138
+ If Not swFeature Is Nothing Then
139
+ swFeature.SetThinWallType ${params.thinType === 'TwoSide' ? 1 : params.thinType === 'MidPlane' ? 2 : 0}, _
140
+ ${(params.thinThickness || 1) / 1000}, 0, ${params.capEnds ? 'True' : 'False'}, _
141
+ ${(params.capThickness || 1) / 1000}
142
+ End If
143
+ `
144
+ : ''}
145
+
146
+ ' Clear selections
147
+ swModel.ClearSelection2 True
148
+
149
+ ' Rebuild
150
+ swModel.EditRebuild3
151
+
152
+ ' Check if feature was created successfully
153
+ If swFeature Is Nothing Then
154
+ Debug.Print "ERROR: Extrusion feature was not created. Check that a valid sketch is selected."
155
+ Exit Sub
156
+ End If
157
+
158
+ Debug.Print "Extrusion created successfully: " & swFeature.Name
159
+ Exit Sub
160
+
161
+ ErrorHandler:
162
+ If errorMsg = "" Then
163
+ errorMsg = "Unexpected error: " & Err.Description & " (Error " & Err.Number & ")"
164
+ End If
165
+ Debug.Print errorMsg
166
+ End Sub
167
+
168
+ Function Min(a As Long, b As Long) As Long
169
+ If a < b Then
170
+ Min = a
171
+ Else
172
+ Min = b
173
+ End If
174
+ End Function
175
+ `;
176
+ }
177
+ /**
178
+ * Generate VBA macro for revolve feature
179
+ */
180
+ generateRevolveMacro(params) {
181
+ const angle = (params.angle * Math.PI) / 180; // Convert to radians
182
+ const direction = params.direction === 'Reverse' ? 1 : params.direction === 'Both' ? 2 : 0;
183
+ const merge = params.merge !== false ? 'True' : 'False';
184
+ return `
185
+ Option Explicit
186
+
187
+ Sub CreateRevolve()
188
+ Dim swApp As Object
189
+ Dim swModel As Object
190
+ Dim swFeatureMgr As Object
191
+ Dim swFeature As Object
192
+ Dim boolStatus As Boolean
193
+ Dim errorMsg As String
194
+
195
+ On Error GoTo ErrorHandler
196
+
197
+ Set swApp = Application.SldWorks
198
+ Set swModel = swApp.ActiveDoc
199
+
200
+ If swModel Is Nothing Then
201
+ Debug.Print "ERROR: No active document"
202
+ Exit Sub
203
+ End If
204
+
205
+ Set swFeatureMgr = swModel.FeatureManager
206
+
207
+ If swFeatureMgr Is Nothing Then
208
+ errorMsg = "ERROR: Cannot access FeatureManager"
209
+ GoTo ErrorHandler
210
+ End If
211
+
212
+ ' Ensure we're not in sketch mode
213
+ swModel.SketchManager.InsertSketch True
214
+
215
+ ' Clear selections
216
+ swModel.ClearSelection2 True
217
+
218
+ ' Select the sketch for revolve
219
+ boolStatus = SelectLatestSketch(swModel)
220
+
221
+ If Not boolStatus Then
222
+ errorMsg = "ERROR: No sketch found for revolve. Please create a sketch with a profile and centerline."
223
+ GoTo ErrorHandler
224
+ End If
225
+
226
+ ' Select axis if specified
227
+ ${params.axis
228
+ ? `
229
+ boolStatus = swModel.Extension.SelectByID2("${params.axis}", "AXIS", 0, 0, 0, True, 16, Nothing, 0)
230
+ If Not boolStatus Then
231
+ ' Try to select a default axis
232
+ boolStatus = swModel.Extension.SelectByID2("Line1", "SKETCHSEGMENT", 0, 0, 0, True, 16, Nothing, 0)
233
+ End If
234
+ `
235
+ : `
236
+ ' Auto-select centerline or first line as axis
237
+ Dim swSketch As Object
238
+ Set swSketch = swModel.SketchManager.ActiveSketch
239
+ If Not swSketch Is Nothing Then
240
+ Dim vLines As Variant
241
+ vLines = swSketch.GetLines2(0)
242
+ If Not IsEmpty(vLines) Then
243
+ Dim swLine As Object
244
+ Set swLine = vLines(0)
245
+ swLine.Select4 True, Nothing
246
+ End If
247
+ End If
248
+ `}
249
+
250
+ ' Create revolve feature
251
+ Set swFeature = swFeatureMgr.FeatureRevolve2( _
252
+ ${direction === 2 ? 'True' : 'False'}, _ ' Both directions
253
+ ${direction === 1 ? 'True' : 'False'}, _ ' Reverse
254
+ ${angle}, _ ' Angle
255
+ 0, _ ' Angle2 (for both directions)
256
+ ${params.thinFeature ? '1' : '0'}, _ ' Thin feature
257
+ ${params.thinThickness ? params.thinThickness / 1000 : 0}, _ ' Thin thickness
258
+ ${merge}, _ ' Merge
259
+ True, _ ' Use diameter
260
+ 0, _ ' Rev type
261
+ 0 _ ' Rev type2
262
+ )
263
+
264
+ ' Clear selections
265
+ swModel.ClearSelection2 True
266
+
267
+ ' Rebuild
268
+ swModel.EditRebuild3
269
+
270
+ ' Check if feature was created successfully
271
+ If swFeature Is Nothing Then
272
+ Debug.Print "ERROR: Revolve feature was not created. Check sketch and axis selection."
273
+ Exit Sub
274
+ End If
275
+
276
+ Debug.Print "Revolve created successfully: " & swFeature.Name
277
+ Exit Sub
278
+
279
+ ErrorHandler:
280
+ If errorMsg = "" Then
281
+ errorMsg = "Unexpected error: " & Err.Description & " (Error " & Err.Number & ")"
282
+ End If
283
+ Debug.Print "Revolve error: " & errorMsg
284
+ Debug.Print errorMsg
285
+ End Sub
286
+
287
+ Function SelectLatestSketch(swModel As Object) As Boolean
288
+ Dim i As Integer
289
+ Dim swFeat As Object
290
+ Dim boolStatus As Boolean
291
+
292
+ ' Try standard sketch names
293
+ Dim sketchNames As Variant
294
+ sketchNames = Array("Sketch1", "Sketch2", "Sketch3", "Sketch4", "Sketch5")
295
+
296
+ For i = 0 To UBound(sketchNames)
297
+ boolStatus = swModel.Extension.SelectByID2(sketchNames(i), "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
298
+ If boolStatus Then
299
+ SelectLatestSketch = True
300
+ Exit Function
301
+ End If
302
+ Next i
303
+
304
+ ' Try to find last sketch feature
305
+ For i = 0 To swModel.GetFeatureCount - 1
306
+ Set swFeat = swModel.FeatureByPositionReverse(i)
307
+ If Not swFeat Is Nothing Then
308
+ If InStr(1, swFeat.GetTypeName2, "Sketch", vbTextCompare) > 0 Then
309
+ swFeat.Select2 False, 0
310
+ SelectLatestSketch = True
311
+ Exit Function
312
+ End If
313
+ End If
314
+ Next i
315
+
316
+ SelectLatestSketch = False
317
+ End Function
318
+ `;
319
+ }
320
+ /**
321
+ * Generate VBA macro for sweep feature
322
+ */
323
+ generateSweepMacro(params) {
324
+ const merge = params.merge !== false ? 'True' : 'False';
325
+ const twistAngle = params.twistAngle ? (params.twistAngle * Math.PI) / 180 : 0;
326
+ return `
327
+ Option Explicit
328
+
329
+ Sub CreateSweep()
330
+ Dim swApp As Object
331
+ Dim swModel As Object
332
+ Dim swFeatureMgr As Object
333
+ Dim swFeature As Object
334
+ Dim boolStatus As Boolean
335
+
336
+ Set swApp = Application.SldWorks
337
+ Set swModel = swApp.ActiveDoc
338
+
339
+ If swModel Is Nothing Then
340
+ Debug.Print "No active document"
341
+ Exit Sub
342
+ End If
343
+
344
+ Set swFeatureMgr = swModel.FeatureManager
345
+
346
+ ' Clear selections
347
+ swModel.ClearSelection2 True
348
+
349
+ ' Select profile sketch
350
+ boolStatus = swModel.Extension.SelectByID2("${params.profileSketch}", "SKETCH", 0, 0, 0, False, 1, Nothing, 0)
351
+ If Not boolStatus Then
352
+ ' Try default profile sketch
353
+ boolStatus = swModel.Extension.SelectByID2("Sketch1", "SKETCH", 0, 0, 0, False, 1, Nothing, 0)
354
+ End If
355
+
356
+ ' Select path sketch
357
+ boolStatus = swModel.Extension.SelectByID2("${params.pathSketch}", "SKETCH", 0, 0, 0, True, 4, Nothing, 0)
358
+ If Not boolStatus Then
359
+ ' Try default path sketch
360
+ boolStatus = swModel.Extension.SelectByID2("Sketch2", "SKETCH", 0, 0, 0, True, 4, Nothing, 0)
361
+ End If
362
+
363
+ ' Create sweep feature
364
+ Set swFeature = swFeatureMgr.InsertProtrusionSwept4( _
365
+ False, _ ' Propagate feature to parts
366
+ False, _ ' Align with end faces
367
+ 0, _ ' Twist control type
368
+ ${twistAngle}, _ ' Twist angle
369
+ False, _ ' Reverse twist
370
+ 0, _ ' Tangency type
371
+ 0, _ ' Path alignment
372
+ ${merge}, _ ' Merge
373
+ ${params.thinFeature ? 'True' : 'False'}, _ ' Thin feature
374
+ ${params.thinThickness ? params.thinThickness / 1000 : 0}, _ ' Thin thickness
375
+ 0, _ ' Thin type
376
+ True, _ ' Merge scope
377
+ False, _ ' Use feature scope
378
+ True _ ' Auto select
379
+ )
380
+
381
+ ' Clear selections
382
+ swModel.ClearSelection2 True
383
+
384
+ ' Rebuild
385
+ swModel.EditRebuild3
386
+
387
+ End Sub
388
+ `;
389
+ }
390
+ /**
391
+ * Generate VBA macro for loft feature
392
+ */
393
+ generateLoftMacro(params) {
394
+ const _merge = params.merge !== false ? 'True' : 'False';
395
+ const close = params.close ? 'True' : 'False';
396
+ // Build profile selection code
397
+ const profileSelections = params.profiles
398
+ .map((profile, index) => `boolStatus = swModel.Extension.SelectByID2("${profile}", "SKETCH", 0, 0, 0, ${index > 0 ? 'True' : 'False'}, 1, Nothing, 0)`)
399
+ .join('\n ');
400
+ // Build guide curve selection code if any
401
+ const guideSelections = params.guideCurves
402
+ ? params.guideCurves
403
+ .map((guide, _index) => `boolStatus = swModel.Extension.SelectByID2("${guide}", "SKETCH", 0, 0, 0, True, 2, Nothing, 0)`)
404
+ .join('\n ')
405
+ : '';
406
+ return `
407
+ Option Explicit
408
+
409
+ Sub CreateLoft()
410
+ Dim swApp As Object
411
+ Dim swModel As Object
412
+ Dim swFeatureMgr As Object
413
+ Dim swFeature As Object
414
+ Dim boolStatus As Boolean
415
+
416
+ Set swApp = Application.SldWorks
417
+ Set swModel = swApp.ActiveDoc
418
+
419
+ If swModel Is Nothing Then
420
+ Debug.Print "No active document"
421
+ Exit Sub
422
+ End If
423
+
424
+ Set swFeatureMgr = swModel.FeatureManager
425
+
426
+ ' Clear selections
427
+ swModel.ClearSelection2 True
428
+
429
+ ' Select profile sketches
430
+ ${profileSelections}
431
+
432
+ ' Select guide curves if any
433
+ ${guideSelections}
434
+
435
+ ' Create loft feature
436
+ Set swFeature = swFeatureMgr.InsertProtrusionLoft3( _
437
+ ${close}, _ ' Close loft
438
+ False, _ ' Keep tangency
439
+ False, _ ' Force non-rational
440
+ False, _ ' Simple surfaces
441
+ False, _ ' Close guide curves
442
+ 0, _ ' Start tangency type
443
+ 0, _ ' End tangency type
444
+ 0, _ ' Start tangent length
445
+ 0, _ ' End tangent length
446
+ ${params.thinFeature ? 'True' : 'False'}, _ ' Thin feature
447
+ ${params.thinThickness ? params.thinThickness / 1000 : 0}, _ ' Thin thickness 1
448
+ 0, _ ' Thin thickness 2
449
+ 0, _ ' Thin type
450
+ True, _ ' Merge
451
+ True, _ ' Use feature scope
452
+ True _ ' Auto select
453
+ )
454
+
455
+ ' Clear selections
456
+ swModel.ClearSelection2 True
457
+
458
+ ' Rebuild
459
+ swModel.EditRebuild3
460
+
461
+ End Sub
462
+ `;
463
+ }
464
+ /**
465
+ * Generate a generic VBA macro for any SolidWorks operation
466
+ */
467
+ generateGenericMacro(methodName, parameters) {
468
+ // Convert parameters to VBA format
469
+ const paramList = parameters
470
+ .map((p) => {
471
+ if (typeof p === 'string')
472
+ return `"${p}"`;
473
+ if (typeof p === 'boolean')
474
+ return p ? 'True' : 'False';
475
+ if (typeof p === 'number')
476
+ return p.toString();
477
+ if (p === null || p === undefined)
478
+ return 'Nothing';
479
+ return JSON.stringify(p);
480
+ })
481
+ .join(', ');
482
+ return `
483
+ Option Explicit
484
+
485
+ Sub Execute${methodName}()
486
+ Dim swApp As Object
487
+ Dim swModel As Object
488
+ Dim result As Variant
489
+ Dim errorMsg As String
490
+
491
+ On Error GoTo ErrorHandler
492
+
493
+ Set swApp = Application.SldWorks
494
+ Set swModel = swApp.ActiveDoc
495
+
496
+ If swModel Is Nothing Then
497
+ Debug.Print "ERROR: No active document"
498
+ Exit Sub
499
+ End If
500
+
501
+ ' Execute the method
502
+ result = swModel.${methodName}(${paramList})
503
+
504
+ ' Rebuild if needed
505
+ swModel.EditRebuild3
506
+
507
+ ' Check result
508
+ If IsEmpty(result) Or result = False Or result Is Nothing Then
509
+ Debug.Print "WARNING: Method ${methodName} returned no result or failed"
510
+ Else
511
+ Debug.Print "Method ${methodName} executed successfully"
512
+ End If
513
+
514
+ Exit Sub
515
+
516
+ ErrorHandler:
517
+ errorMsg = "ERROR executing ${methodName}: " & Err.Description & " (Error " & Err.Number & ")"
518
+ Debug.Print "Macro error: " & errorMsg
519
+ Debug.Print errorMsg
520
+ End Sub
521
+ `;
522
+ }
523
+ }
524
+ //# sourceMappingURL=macro-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"macro-generator.js","sourceRoot":"","sources":["../../src/adapters/macro-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Mock SolidWorks Adapter for Testing
3
+ *
4
+ * Simulates SolidWorks COM interface behavior for testing without SolidWorks installed.
5
+ * Useful for CI/CD, unit tests, and development without SolidWorks.
6
+ */
7
+ export interface MockConfig {
8
+ version?: string;
9
+ failOperations?: boolean;
10
+ simulateErrors?: boolean;
11
+ delayMs?: number;
12
+ }
13
+ export declare class MockSolidWorksAdapter {
14
+ private config;
15
+ private activeDoc;
16
+ private documents;
17
+ private version;
18
+ constructor(config?: MockConfig);
19
+ /**
20
+ * Simulate getting SolidWorks application
21
+ */
22
+ getApplication(): any;
23
+ /**
24
+ * Create a mock document
25
+ */
26
+ private createDocument;
27
+ /**
28
+ * Open a mock document
29
+ */
30
+ private openDocument;
31
+ /**
32
+ * Close a mock document
33
+ */
34
+ private closeDocument;
35
+ /**
36
+ * Create a complete mock document object
37
+ */
38
+ private createMockDocument;
39
+ /**
40
+ * Create mock feature manager
41
+ */
42
+ private createMockFeatureManager;
43
+ /**
44
+ * Create mock sketch manager
45
+ */
46
+ private createMockSketchManager;
47
+ /**
48
+ * Create mock extension
49
+ */
50
+ private createMockExtension;
51
+ /**
52
+ * Create mock selection manager
53
+ */
54
+ private createMockSelectionManager;
55
+ /**
56
+ * Create mock feature
57
+ */
58
+ private createMockFeature;
59
+ /**
60
+ * Create mock parameter/dimension
61
+ */
62
+ private createMockParameter;
63
+ /**
64
+ * Create mock mass properties
65
+ */
66
+ private createMockMassProperties;
67
+ /**
68
+ * Create mock custom property manager
69
+ */
70
+ private createMockCustomPropertyManager;
71
+ /**
72
+ * Create mock drawing view
73
+ */
74
+ private createMockDrawingView;
75
+ /**
76
+ * Get current configuration
77
+ */
78
+ getConfig(): MockConfig;
79
+ /**
80
+ * Update configuration
81
+ */
82
+ updateConfig(config: Partial<MockConfig>): void;
83
+ /**
84
+ * Reset mock state
85
+ */
86
+ reset(): void;
87
+ }
88
+ /**
89
+ * Factory function to create mock adapter
90
+ */
91
+ export declare function createMockSolidWorksAdapter(config?: MockConfig): MockSolidWorksAdapter;
92
+ //# sourceMappingURL=mock-solidworks-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-solidworks-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/mock-solidworks-adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,GAAE,UAAe;IAgBnC;;OAEG;IACH,cAAc,IAAI,GAAG;IAqCrB;;OAEG;IACH,OAAO,CAAC,cAAc;IAetB;;OAEG;IACH,OAAO,CAAC,YAAY;IAgBpB;;OAEG;IACH,OAAO,CAAC,aAAa;IAarB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAyD1B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAqChC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAyB/B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA4B3B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAUlC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAWzB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAmB3B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAahC;;OAEG;IACH,OAAO,CAAC,+BAA+B;IA6BvC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAS7B;;OAEG;IACH,SAAS,IAAI,UAAU;IAIvB;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI;IAK/C;;OAEG;IACH,KAAK,IAAI,IAAI;CAKd;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,qBAAqB,CAEtF"}