Autor | Wypowiedź |
2014-09-18, 11:05
Pomógł 0 raz(y).
|
Wałkowałem już kiedyś ten temat tutaj. Otóż chodzi o to żeby "jednym kliknięciem" zaznaczyć ( wybrać) wszyskie części o tej samej nazwie. Pomoc otrzymałem. Jednak nie do końca jestem usatysfakcjonowany. Rozwiązanie było takie że nalezy wejść w narzędzie zaawansowanego wyboru i tam "poustawiac" tak zapytanie żeby SW wybrał nam wszystkie elementy o tej samej nazwie. Minusem tego rozwiazania jest to że za każdym razem trzeba wklepywac nazwę ( a jak się nie chce wklepywac to też kopiuj/wklej można zrobić). Tak czy siak, długo to trwa. W SE było robiło się to tak: Klikasz daną część, prawy przycisk i w menu podręcznym wybierałeś narzędzie ( wybierz wszystki takie same - czy jakoś tak) No i po kłopocie. Moje pytanie jest takie. Czy można stworzyć jakieś makro w SW które będzie działało własnie w ten sposób? Właśnie znalazłem w necie filmik https://www.youtube.com/watch?v=rDfgn809SYk 1 minuta 46 sekunda - jest pokazane jak to działa. Bardzo przydatne narzędzie szczególnie gdy często się tworzy rózne stany wyświetlania. |
|
|
CAD to dopiero początek :D
2017-06-09, 22:16
Pomógł 0 raz(y).
|
Osobiście radzę sobie w ten sposób, że tworzę folder do którego wrzucam, albo identyczne elementy, albo tworze jakieś grupy elementów. To samo z wiązaniami później dużo łatwiej co zmienić czy wy-edytować |
|
|
CSWP, CSWE, CSWI *** solid-blog.pl ***
2017-06-09, 23:03
Pomógł 405 raz(y).
|
Post z 2014r. Obecnie jest opcja w zaawansowanym wyborze Wybierz identyczne komponenty. Poza tym zawsze można zapisać kryteria wyboru. |
|
|
.
2017-06-10, 08:31
Pomógł 52 raz(y).
|
A mnie się marzy taka funkcja, która jest np w NX, łącząca te same komponenty w jedną pozycję w drzewku złożenia z podaniem ilości szt. :( Oczywiście makrem można zrobić. Takie coś o czym pisał Marcin jest np. w dodatku iziNorm, ale to wybiera tylko części normowe. PS, Siadłem , pomyślałem i napisałem takie coś :) '**************************************************************************************************************************** '* Grupowanie komponentów o tej samej nazwie i tej samej konfigurabji co wskazany w złożeniu , Włodzimierz Śmieszek 2017 * '**************************************************************************************************************************** Sub Main() On Error GoTo blad Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc ' If swModel Is Nothing Then MsgBox "Brak otwartych dokumentów", vbExclamation, "Grupowanie komponentów" End End If Dim swKomp As SldWorks.ModelDoc2 Dim swSelMgr As SldWorks.SelectionMgr Dim i, k As Long Dim SpecyfikacjaPliku As String Dim NazwaKomponentu As String Dim Konfiguracja As String Dim swFace As SldWorks.Face Dim swEdge As SldWorks.Edge Dim swEntity As SldWorks.Entity Dim swComponent As SldWorks.Component2 Dim Tree As Boolean Dim ValBul As Boolean Dim Lista As Variant Set swSelMgr = swModel.SelectionManager If (swModel.GetType = swDocASSEMBLY) Then If swSelMgr.GetSelectedObjectCount > 0 Then ' Gdy wybrano element If swSelMgr.GetSelectedObjectType(1) = swSelectType_e.swSelFACES Then Set swFace = swModel.SelectionManager.GetSelectedObject6(1, -1) Set swEntity = swFace ElseIf swSelMgr.GetSelectedObjectType(1) = swSelectType_e.swSelEDGES Then Set swEdge = swModel.SelectionManager.GetSelectedObject6(1, -1) Set swEntity = swEdge ElseIf swSelMgr.GetSelectedObjectType(1) = swSelectType_e.swSelCOMPONENTS Then Set swComponent = swModel.SelectionManager.GetSelectedObject6(1, -1) Tree = True End If If swEntity Is Nothing And Not Tree Then MsgBox "Pokaż powierzchnię lub krawędź części.", vbExclamation, "Grupowanie komponentów - zły wybór" End Else If Not Tree Then Set swComponent = swEntity.GetComponent Konfiguracja = swComponent.ReferencedConfiguration SpecyfikacjaPliku = swComponent.GetPathName End If swModel.ClearSelection2 True Else MsgBox "Nie wybrano żadnego komponentu . . . ", vbExclamation, "Grupowanie komponentów": End End If ' If selekcja Else MsgBox "Bieżący dokument nie jest złożeniem . . . ", vbExclamation, "Grupowanie komponentów": End End If 'If (swModel.GetType = swDocASSEMBLY) ' Komponent wybrany Set swKomp = GetObject(SpecyfikacjaPliku) NazwaKomponentu = swKomp.GetTitle() Lista = swModel.GetComponents(True) For i = 0 To UBound(Lista) If Lista(i).GetPathName = SpecyfikacjaPliku Then If Konfiguracja = Lista(i).ReferencedConfiguration Then ValBul = Lista(i).Select(True) k = k + 1 End If End If Next i MsgBox "Złożenie : " & swModel.GetTitle & Chr(10) & Chr(10) & "Wysekcjonowano " & k & " Komponentów : " & NazwaKomponentu & Chr(10) & "Konfiguracja : " & Konfiguracja Exit Sub blad: MsgBox Erl & " Błąd - " & Error, vbCritical, "..." End Sub |
|
|
.
2017-06-14, 20:23
Pomógł 52 raz(y).
|
To makro można oczywiście rozbudowywać, np. automatycznie tworzyć folder z wybranymi komponentami, dorobić okno z wyborem konfiguracji itd. |
|
|
.
2017-08-02, 13:57
Pomógł 52 raz(y).
|
W SW 2017 jest to już zrobione: PPM na złożeniu w drzewku - Wyświetlanie drzewa - Wystąpienia komponentu, grupy. Tyle, że to grupuje wszystko a nie tylko to co chcemy. |
|
|