Czy wiesz, że… ?
Wśród wielu rzeczy, które mogą być konieczne w nadrzędnym złożeniu jest opcja wyboru podzłożenia ze złożenia. Chciałbym to zrobić w oknie graficznym, bez konieczności odszukiwania złożenia w drzewie.
Zastosowanie?
W celu utworzenia kopii złożenia, w widokach rozstrzelonych i wielu innych. W wyniku kliknięcia na części program zaznacza tę część, a ja potrzebuję zaznaczyć całe podzłożenie.

Brakuje mi skrótu klawiaturowego lub polecenia, które w takiej sytuacji pozwoli wybrać podzłożenie (np. po przytrzymaniu jakiegoś klawisza). Oczywiście zawsze można zgłosić/zaproponować nową funkcję w programie. Więcej na ten temat znajdziesz tutaj>>>.
Jak sobie z tym poradzić?
Jest takie polecenie, które znajdziesz pod prawym przyciskiem – Wybierz podzespół. Ktoś mógłby powiedzieć, że skoro jest taka możliwość to po coś lepszego? Mi osobiście jednak brakuje skrótu lub filtru wyboru…

Po zaznaczeniu oczywiście podświetla się całe podzłożenie.

A jakie jest Wasze zdanie na ten temat i jak sobie radzicie w podobnej sytuacji? Czekam na komentarze.







Poszperałem trochę w internecie i znalazłem takie macro, które można przypisać sobie do któregoś z klawiszy 🙂
źródło: https://www.eng-tips.com/viewthread.cfm?qid=197270
KOD:
’————————————————-
’ Macro to select parent assembly of the selected assembly component
’ for easy mating. Modified extensively from the
’ „Select Origin of Assembly Component Example (VB)” in
’ SolidWorks and Add-Ins API Help
’ Preconditions:
’ (1) Assembly document is open.
’ (2) One or more items is selected.
’
’ Postconditions: The parent subassembly is selected. Will not select
'the top level assembly.
’
’————————————————–
Option Explicit
Sub main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swSelMgr As SldWorks.SelectionMgr
Dim swSelComp As SldWorks.Component2
Dim bRet As Boolean
Dim GeneralSelObj As Object
Dim i As Integer
Dim CurSelCount As Long
Dim NewObjToSelect As Object
Dim swVer As Variant
Dim ResolveIt As Integer
Dim DocTitle As String
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
If swModel.GetType swDocASSEMBLY Then
MsgBox „This macro works on assembly documents only.”
Exit Sub
End If
Set swSelMgr = swModel.SelectionManager
CurSelCount = swSelMgr.GetSelectedObjectCount
If CurSelCount = 0 Then
MsgBox „Nothing was selected”
Exit Sub
End If
Set GeneralSelObj = swSelMgr.GetSelectedObject(CurSelCount)
Set swSelComp = swSelMgr.GetSelectedObjectsComponent(CurSelCount)
swVer = Split(swApp.RevisionNumber, „.”)
If CInt(swVer(0)) < 14 Then
If swSelComp.GetSuppression swComponentFullyResolved Then
If swSelComp.GetSuppression swComponentResolved Then
ResolveIt = MsgBox(„The component selected is not fully resolved.” _
& vbCrLf & „This functionality is only available for lightweight” & vbCrLf & _
„components in SolidWorks 2006 or greater.” & vbCrLf & vbCrLf & _
„Resolve this component now?”, vbYesNo, „Upgrade Time!”)
If vbYes = ResolveIt Then
swSelComp.SetSuppression2 swComponentFullyResolved
Else
Exit Sub
End If
End If
End If
End If
Set NewObjToSelect = swSelComp.GetParent
If Not NewObjToSelect Is Nothing Then
swSelMgr.DeSelect CurSelCount
bRet = NewObjToSelect.Select(True): Debug.Assert bRet
End If
End Sub
’————————————————-