Czy możemy użyć elementów ramki granicznej jako odniesienia do dalszego projektowania?
Odpowiedź niestety brzmi: Nie.
Oprogramowanie SOLIDWORKS umożliwia wstawianie ramki granicznej 3D do dokumentu części. Jednak krawędzie (segmenty) tego „pudełka” nie mogą być wybierane
i wykorzystywane do celów modelowania. Wtedy na pomoc przychodzi nam makro.
To makro VBA tworzy szkic obwiedni na podstawie obwiedni SOLIDWORKS 3D. Wszystkie segmenty ze szkicu mogą być wtedy wybrane i użyte do odniesienia lub tworzenia geometrii.
UWAGA: Poniższe makro użyje istniejącej ramki granicznej 3D lub utworzy nową, jeśli nie istnieje.
Czym właściwie jest ramka graniczna?
Ramka graniczna jest oznaczona jako szkic 3D i domyślnie oparta na płaszczyźnie X-Y. Biorąc pod uwagę orientację ramki granicznej, ramka graniczna jest najmniejszą ramką, w jakiej mieści się dany obiekt. Ramkę graniczną można utworzyć dla części wieloobiektowej, jednoobiektowej lub arkusza blachy. Dla dowolnego elementu listy elementów ciętych można również utworzyć ramkę graniczną na liście elementów ciętych, niezależnie od typu bryły lub obiektów arkusza blachy w elemencie.
Korzyści płynące ze stosowania ramek granicznych:
W przypadku części wymiary ramki granicznej są dostępne jako właściwości na karcie Właściwości konfiguracji w oknie dialogowym Właściwości. Ogólne wymiary ramek granicznych pojawiają się dla listy elementów ciętych w oknie dialogowym Właściwości Listy elementów ciętych. Możesz wykorzystać te wymiary w liście materiałów lub w innych adnotacjach.
Za pomocą ramki granicznej można określić długość, szerokość i wysokość zapasu wymaganego dla obiektu. Dzięki temu można dowiedzieć się, ile miejsca jest potrzebne do zapakowania produktu.
Przy konstrukcjach spawanych nie trzeba już ręcznie szukać wielkości zapasu dla płyt.
W artykule pod linkiem poniżej znajdą Państwo generalny opis tego narzędzia oraz obszar jego podstawowych zastosowań:
Ramka graniczna – wygodny sposób na sprawdzanie zewnętrznych wymiarów części
Dim swApp As SldWorks.SldWorks
Sub main()
Set swApp = Application.SldWorks
Dim swModel As SldWorks.ModelDoc2
Set swModel = swApp.ActiveDoc
If Not swModel Is Nothing Then
Dim swFeat As SldWorks.Feature
Set swFeat = GetBoundingBoxFeature(swModel)
If Not swFeat Is Nothing Then
Dim swSketch As SldWorks.Sketch
Set swSketch = swFeat.GetSpecificFeature2
Dim vSegs As Variant
vSegs = swSketch.GetSketchSegments
ConvertSegmentsIntoSketch swModel, vSegs
Else
MsgBox „Failed to get bounding box feature”
End If
Else
MsgBox „Please open document”
End If
End Sub
Function GetBoundingBoxFeature(model As SldWorks.ModelDoc2) As SldWorks.Feature
Dim swFeat As SldWorks.Feature
Set swFeat = FindBoundingBoxFeature(model)
If swFeat Is Nothing Then
Dim status As Long
model.FeatureManager.InsertGlobalBoundingBox swGlobalBoundingBoxFitOptions_e.swBoundingBoxType_BestFit, False, False, status
Set swFeat = FindBoundingBoxFeature(model)
End If
Set GetBoundingBoxFeature = swFeat
End Function
Function FindBoundingBoxFeature(model As SldWorks.ModelDoc2) As SldWorks.Feature
Dim swFeat As SldWorks.Feature
Set swFeat = model.FirstFeature
While Not swFeat Is Nothing
If swFeat.GetTypeName2() = „BoundingBoxProfileFeat” Then
Set FindBoundingBoxFeature = swFeat
Exit Function
End If
Set swFeat = swFeat.GetNextFeature
Wend
Set FindBoundingBoxFeature = Nothing
End Function
Sub ConvertSegmentsIntoSketch(model As SldWorks.ModelDoc2, segs As Variant)
If model.SketchManager.ActiveSketch Is Nothing Then
model.SketchManager.Insert3DSketch True
Else
If False = model.SketchManager.ActiveSketch.Is3D() Then
Err.Raise vbError, „”, „Only 3D sketch is supported”
End If
End If
Dim i As Integer
model.ClearSelection2 True
For i = 0 To UBound(segs)
Dim swSkSeg As SldWorks.SketchSegment
Set swSkSeg = segs(i)
swSkSeg.Select4 True, Nothing
Next
model.SketchManager.SketchUseEdge3 False, False
model.SketchManager.Insert3DSketch True
End Sub





