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.
- package/CHANGELOG.md +175 -98
- package/LICENSE +20 -20
- package/README.md +195 -423
- package/dist/adapters/circuit-breaker.d.ts +84 -0
- package/dist/adapters/circuit-breaker.d.ts.map +1 -0
- package/dist/adapters/circuit-breaker.js +228 -0
- package/dist/adapters/circuit-breaker.js.map +1 -0
- package/dist/adapters/connection-pool.d.ts +83 -0
- package/dist/adapters/connection-pool.d.ts.map +1 -0
- package/dist/adapters/connection-pool.js +282 -0
- package/dist/adapters/connection-pool.js.map +1 -0
- package/dist/adapters/edge-adapter.d.ts +43 -0
- package/dist/adapters/edge-adapter.d.ts.map +1 -0
- package/dist/adapters/edge-adapter.js +417 -0
- package/dist/adapters/edge-adapter.js.map +1 -0
- package/dist/adapters/factory.d.ts +60 -0
- package/dist/adapters/factory.d.ts.map +1 -0
- package/dist/adapters/factory.js +212 -0
- package/dist/adapters/factory.js.map +1 -0
- package/dist/adapters/feature-complexity-analyzer.d.ts +102 -0
- package/dist/adapters/feature-complexity-analyzer.d.ts.map +1 -0
- package/dist/adapters/feature-complexity-analyzer.js +322 -0
- package/dist/adapters/feature-complexity-analyzer.js.map +1 -0
- package/dist/adapters/macro-generator.d.ts +30 -0
- package/dist/adapters/macro-generator.d.ts.map +1 -0
- package/dist/adapters/macro-generator.js +524 -0
- package/dist/adapters/macro-generator.js.map +1 -0
- package/dist/adapters/mock-solidworks-adapter.d.ts +92 -0
- package/dist/adapters/mock-solidworks-adapter.d.ts.map +1 -0
- package/dist/adapters/mock-solidworks-adapter.js +367 -0
- package/dist/adapters/mock-solidworks-adapter.js.map +1 -0
- package/dist/adapters/types.d.ts +376 -0
- package/dist/adapters/types.d.ts.map +1 -0
- package/dist/adapters/types.js +261 -0
- package/dist/adapters/types.js.map +1 -0
- package/dist/adapters/winax-adapter-enhanced.d.ts +55 -0
- package/dist/adapters/winax-adapter-enhanced.d.ts.map +1 -0
- package/dist/adapters/winax-adapter-enhanced.js +601 -0
- package/dist/adapters/winax-adapter-enhanced.js.map +1 -0
- package/dist/adapters/winax-adapter.d.ts +55 -0
- package/dist/adapters/winax-adapter.d.ts.map +1 -0
- package/dist/adapters/winax-adapter.js +667 -0
- package/dist/adapters/winax-adapter.js.map +1 -0
- package/dist/api/stainless-api.d.ts +29 -0
- package/dist/api/stainless-api.d.ts.map +1 -0
- package/dist/api/stainless-api.js +408 -0
- package/dist/api/stainless-api.js.map +1 -0
- package/dist/cache/manager.d.ts.map +1 -1
- package/dist/cache/manager.js +4 -3
- package/dist/cache/manager.js.map +1 -1
- package/dist/core/interfaces/core-abstractions.d.ts.map +1 -1
- package/dist/core/interfaces/core-abstractions.js.map +1 -1
- package/dist/db/connection.js +4 -4
- package/dist/db/connection.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +86 -79
- package/dist/index.js.map +1 -1
- package/dist/knowledge/chromadb.d.ts.map +1 -1
- package/dist/knowledge/chromadb.js +5 -3
- package/dist/knowledge/chromadb.js.map +1 -1
- package/dist/macro/recorder.d.ts +1 -1
- package/dist/macro/recorder.d.ts.map +1 -1
- package/dist/macro/recorder.js +10 -10
- package/dist/macro/recorder.js.map +1 -1
- package/dist/resources/base.js +10 -10
- package/dist/resources/base.js.map +1 -1
- package/dist/resources/design-table.d.ts +10 -12
- package/dist/resources/design-table.d.ts.map +1 -1
- package/dist/resources/design-table.js +42 -39
- package/dist/resources/design-table.js.map +1 -1
- package/dist/resources/pdm.d.ts +44 -45
- package/dist/resources/pdm.d.ts.map +1 -1
- package/dist/resources/pdm.js +118 -79
- package/dist/resources/pdm.js.map +1 -1
- package/dist/resources/registry.d.ts +1 -1
- package/dist/resources/registry.d.ts.map +1 -1
- package/dist/resources/registry.js +1 -1
- package/dist/shared/constants/solidworks-constants.d.ts.map +1 -1
- package/dist/shared/constants/solidworks-constants.js +9 -9
- package/dist/shared/constants/solidworks-constants.js.map +1 -1
- package/dist/solidworks/api.d.ts +8 -6
- package/dist/solidworks/api.d.ts.map +1 -1
- package/dist/solidworks/api.js +614 -188
- package/dist/solidworks/api.js.map +1 -1
- package/dist/state/store.d.ts +1 -1
- package/dist/state/store.d.ts.map +1 -1
- package/dist/state/store.js +14 -14
- package/dist/state/store.js.map +1 -1
- package/dist/tools/analysis.d.ts +12 -2
- package/dist/tools/analysis.d.ts.map +1 -1
- package/dist/tools/analysis.js +141 -31
- package/dist/tools/analysis.js.map +1 -1
- package/dist/tools/diagnostics.d.ts +1 -1
- package/dist/tools/diagnostics.d.ts.map +1 -1
- package/dist/tools/diagnostics.js +2 -2
- package/dist/tools/diagnostics.js.map +1 -1
- package/dist/tools/drawing.d.ts +2 -2
- package/dist/tools/drawing.d.ts.map +1 -1
- package/dist/tools/drawing.js +94 -10
- package/dist/tools/drawing.js.map +1 -1
- package/dist/tools/enhanced-drawing.d.ts +1 -1
- package/dist/tools/enhanced-drawing.d.ts.map +1 -1
- package/dist/tools/enhanced-drawing.js +10 -13
- package/dist/tools/enhanced-drawing.js.map +1 -1
- package/dist/tools/export.d.ts +1 -1
- package/dist/tools/export.d.ts.map +1 -1
- package/dist/tools/export.js +88 -14
- package/dist/tools/export.js.map +1 -1
- package/dist/tools/extrusion-helper.d.ts +15 -0
- package/dist/tools/extrusion-helper.d.ts.map +1 -0
- package/dist/tools/extrusion-helper.js +61 -0
- package/dist/tools/extrusion-helper.js.map +1 -0
- package/dist/tools/macro-security.d.ts +2 -2
- package/dist/tools/macro-security.d.ts.map +1 -1
- package/dist/tools/macro-security.js +2 -2
- package/dist/tools/macro-security.js.map +1 -1
- package/dist/tools/modeling.d.ts +2 -2
- package/dist/tools/modeling.d.ts.map +1 -1
- package/dist/tools/modeling.js +6 -6
- package/dist/tools/modeling.js.map +1 -1
- package/dist/tools/native-macro.d.ts +1 -1
- package/dist/tools/native-macro.d.ts.map +1 -1
- package/dist/tools/native-macro.js +246 -239
- package/dist/tools/native-macro.js.map +1 -1
- package/dist/tools/sketch.d.ts +28 -28
- package/dist/tools/sketch.d.ts.map +1 -1
- package/dist/tools/sketch.js +202 -136
- package/dist/tools/sketch.js.map +1 -1
- package/dist/tools/template-manager.d.ts +5 -5
- package/dist/tools/template-manager.d.ts.map +1 -1
- package/dist/tools/template-manager.js +66 -65
- package/dist/tools/template-manager.js.map +1 -1
- package/dist/tools/vba-advanced.d.ts +10 -10
- package/dist/tools/vba-advanced.d.ts.map +1 -1
- package/dist/tools/vba-advanced.js +791 -708
- package/dist/tools/vba-advanced.js.map +1 -1
- package/dist/tools/vba-assembly.d.ts +10 -10
- package/dist/tools/vba-assembly.d.ts.map +1 -1
- package/dist/tools/vba-assembly.js +562 -500
- package/dist/tools/vba-assembly.js.map +1 -1
- package/dist/tools/vba-drawing.d.ts +12 -12
- package/dist/tools/vba-drawing.d.ts.map +1 -1
- package/dist/tools/vba-drawing.js +681 -572
- package/dist/tools/vba-drawing.js.map +1 -1
- package/dist/tools/vba-file-management.d.ts +12 -12
- package/dist/tools/vba-file-management.d.ts.map +1 -1
- package/dist/tools/vba-file-management.js +662 -589
- package/dist/tools/vba-file-management.js.map +1 -1
- package/dist/tools/vba-part.d.ts +10 -10
- package/dist/tools/vba-part.d.ts.map +1 -1
- package/dist/tools/vba-part.js +484 -426
- package/dist/tools/vba-part.js.map +1 -1
- package/dist/tools/vba.d.ts +361 -361
- package/dist/tools/vba.d.ts.map +1 -1
- package/dist/tools/vba.js +67 -81
- package/dist/tools/vba.js.map +1 -1
- package/dist/utils/config.js +2 -2
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/environment.d.ts +243 -0
- package/dist/utils/environment.d.ts.map +1 -0
- package/dist/utils/environment.js +207 -0
- package/dist/utils/environment.js.map +1 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +6 -6
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/solidworks-config.d.ts +39 -0
- package/dist/utils/solidworks-config.d.ts.map +1 -0
- package/dist/utils/solidworks-config.js +156 -0
- package/dist/utils/solidworks-config.js.map +1 -0
- package/package.json +84 -84
- package/scripts/setup.js +70 -70
- package/dist/application/services/command-bus.d.ts +0 -39
- package/dist/application/services/command-bus.d.ts.map +0 -1
- package/dist/application/services/command-bus.js +0 -88
- package/dist/application/services/command-bus.js.map +0 -1
- package/dist/application/services/event-bus.d.ts +0 -31
- package/dist/application/services/event-bus.d.ts.map +0 -1
- package/dist/application/services/event-bus.js +0 -83
- package/dist/application/services/event-bus.js.map +0 -1
- package/dist/application/services/query-bus.d.ts +0 -30
- package/dist/application/services/query-bus.d.ts.map +0 -1
- package/dist/application/services/query-bus.js +0 -59
- package/dist/application/services/query-bus.js.map +0 -1
- package/dist/application/services/tool-registry.d.ts +0 -53
- package/dist/application/services/tool-registry.d.ts.map +0 -1
- package/dist/application/services/tool-registry.js +0 -81
- package/dist/application/services/tool-registry.js.map +0 -1
- package/dist/application/use-cases/analysis/index.d.ts +0 -13
- package/dist/application/use-cases/analysis/index.d.ts.map +0 -1
- package/dist/application/use-cases/analysis/index.js +0 -17
- package/dist/application/use-cases/analysis/index.js.map +0 -1
- package/dist/application/use-cases/drawing/index.d.ts +0 -13
- package/dist/application/use-cases/drawing/index.d.ts.map +0 -1
- package/dist/application/use-cases/drawing/index.js +0 -17
- package/dist/application/use-cases/drawing/index.js.map +0 -1
- package/dist/application/use-cases/export/index.d.ts +0 -13
- package/dist/application/use-cases/export/index.d.ts.map +0 -1
- package/dist/application/use-cases/export/index.js +0 -17
- package/dist/application/use-cases/export/index.js.map +0 -1
- package/dist/application/use-cases/macro/index.d.ts +0 -13
- package/dist/application/use-cases/macro/index.d.ts.map +0 -1
- package/dist/application/use-cases/macro/index.js +0 -17
- package/dist/application/use-cases/macro/index.js.map +0 -1
- package/dist/application/use-cases/modeling/index.d.ts +0 -56
- package/dist/application/use-cases/modeling/index.d.ts.map +0 -1
- package/dist/application/use-cases/modeling/index.js +0 -385
- package/dist/application/use-cases/modeling/index.js.map +0 -1
- package/dist/index.refactored.d.ts +0 -7
- package/dist/index.refactored.d.ts.map +0 -1
- package/dist/index.refactored.js +0 -254
- package/dist/index.refactored.js.map +0 -1
- package/dist/infrastructure/config/configuration-manager.d.ts +0 -381
- package/dist/infrastructure/config/configuration-manager.d.ts.map +0 -1
- package/dist/infrastructure/config/configuration-manager.js +0 -566
- package/dist/infrastructure/config/configuration-manager.js.map +0 -1
- package/dist/infrastructure/container/service-locator.d.ts +0 -14
- package/dist/infrastructure/container/service-locator.d.ts.map +0 -1
- package/dist/infrastructure/container/service-locator.js +0 -38
- package/dist/infrastructure/container/service-locator.js.map +0 -1
- package/dist/infrastructure/logging/logger.d.ts +0 -24
- package/dist/infrastructure/logging/logger.d.ts.map +0 -1
- package/dist/infrastructure/logging/logger.js +0 -65
- package/dist/infrastructure/logging/logger.js.map +0 -1
- package/dist/infrastructure/solidworks/solidworks-adapter.d.ts +0 -43
- package/dist/infrastructure/solidworks/solidworks-adapter.d.ts.map +0 -1
- package/dist/infrastructure/solidworks/solidworks-adapter.js +0 -527
- package/dist/infrastructure/solidworks/solidworks-adapter.js.map +0 -1
- package/dist/presentation/mcp/request-handler.d.ts +0 -41
- package/dist/presentation/mcp/request-handler.d.ts.map +0 -1
- package/dist/presentation/mcp/request-handler.js +0 -100
- package/dist/presentation/mcp/request-handler.js.map +0 -1
- package/dist/presentation/transformers/error-transformer.d.ts +0 -16
- package/dist/presentation/transformers/error-transformer.d.ts.map +0 -1
- package/dist/presentation/transformers/error-transformer.js +0 -44
- package/dist/presentation/transformers/error-transformer.js.map +0 -1
- package/dist/presentation/transformers/response-transformer.d.ts +0 -24
- package/dist/presentation/transformers/response-transformer.d.ts.map +0 -1
- package/dist/presentation/transformers/response-transformer.js +0 -102
- package/dist/presentation/transformers/response-transformer.js.map +0 -1
- package/dist/tools/drawing-analysis.d.ts +0 -9
- package/dist/tools/drawing-analysis.d.ts.map +0 -1
- package/dist/tools/drawing-analysis.js +0 -239
- 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"}
|