Kup SOLIDWORKS w sklepie internetowym DPS Software. Kup teraz.

TWOJE ŹRÓDŁO INFORMACJI

#CAD | #CAM | #CAE | #PLM

SOLIDWORKS: Szkic 3D oparty na ramce granicznej w SOLIDWORKS

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