Open de kamer

Hallo allemaal,

 

Ik realiseer me dat ik in een assembly heel vaak de knop "Part openen" gebruik om het betreffende onderdeel te bewerken.

Ik ben er nog niet achter hoe ik een sneltoets aan deze "functie" kan toewijzen.

 

Het doel zou zijn om (elke plaat) van de munt te selecteren en deze zelf te openen.

 

Heb je ideeën?


Hartelijk dank!

1 like

Hallo

 

Als je het niet in de lijst hebt gevonden door met de rechtermuisknop op een werkbalk te klikken > Customize > Keyboard Onlget (er is een zoekvak waar je "open" kunt typen), zou het niet mogelijk moeten zijn!

 

Misschien door een macro!

 

Edit: Ik heb een macro gevonden waarmee je de tekening voor het geselecteerde onderdeel in een assemblage direct kunt openen, deze is bijgevoegd.

Een kleine aanpassing kan al volstaan!


open_selected_component_drawing.swp_.zip
2 likes

Hallo

 

Ik heb deze maccro gevonden, ik heb hem niet getest, maar volgens de auteur opent hij je onderdeel/je subassemblage rechtstreeks door erop te klikken of te selecteren in de functiebeheer.

 

Cdt

Joss


montageopen.swp
4 likes

Geweldige macro, het werkt! Hartelijk dank!

 

De macro toewijzen aan een sneltoets:

 

http://help.solidworks.com/2012/French/SolidWorks/sldworks/t_assigning_macro_keyboard_shortcut.htm

 

 

4 likes

Ik zie niet echt het nut in van het plaatsen van deze knop als een snelkoppeling....

 

Wanneer je op het onderdeel in je assemblage klikt, verschijnt er een klein venster dat opent (zie afbeelding)

 

Van wie mag je de kamer openen? Dit is al een kortere weg aan de basis.

 

Als ik het goed begrijp, wilt u op de kamer klikken om te openen en op een toets drukken om deze te openen?


ouvrir.png
3 likes

@Bart

 

Uit gewoonte werk ik persoonlijk bijna alleen met sneltoetsen. De B stelt me bijvoorbeeld in staat om een component te verwijderen, Ctrl+D om direct een tekening te openen,... en enkele tientallen anderen. Historisch gezien kwam ik hier zodat ik niet constant naar iconen hoefde te zoeken.

 

Ik geef er de voorkeur aan (mijn muzikantenkant misschien... ;) ). Iedereen heeft zijn eigen perceptie van het onderwerp.

Ik heb nog steeds mijn handen op het toetsenbord (veel snelkoppelingen).

 

Mijn actie om de kamer te openen: Selecteer klik op een gezicht van de kamer + o

Met het kleine venster: Klik op het onderdeel + beweeg de muis over de knop + klik.

 

Ik vermijd gewoon klikken (ik doe er al heel wat...)

 

Ik heb andere directe snelkoppelingen, ik heb een muis met 5 knoppen:

 

Knop 3: Meetgereedschap

Knop 4: Normaal A

Knop 5: Inzoomen op de selectie

O: Open het onderdeel met één kant geselecteerd.

F: Zoom op zijn best

Maak een assembly vanaf: Ctrl en +

Tab: Het geselecteerde onderdeel verborgen

Ctrl + Tab: Navigeren tussen documenten

F9: Linkerdeelvenster verbergen

E: Schets aan de geselecteerde zijde

 

Ik heb anderen ook op Windows.

2 likes

Ik open het bericht opnieuw omdat ik een klein probleem heb met de macro in kwestie die wordt gebruikt om het geselecteerde deel in het grafische gebied te openen. 

Dit komt omdat de macro alleen werkt als het onderdeel is ingesteld op opgelost. 

Weet u of het mogelijk zou zijn om dit in de macro te integreren, d.w.z.: de munt selecteren in het grafische gebied (gezicht of anderszins), de macro starten: de munt oplossen en vervolgens openen. 

 

Ik geef je de code van de macro hieronder: 

'***************************************************************************­***
' VERGADERING GEOPEND. SWB door Ted Griebling
' Deze macro opent het eigen deel of subassemblage (indien geselecteerd uit de
' feature scrambler) van alles wat in een assemblage is geselecteerd.
' ***************************************************************************­***


Dim swApp als object
Dim activeDocument als object
Dim selEntity als object
Dim selType zo lang
Dim SelMgr als object
Dim owningComponent As Object
Dim componentName als tekenreeks
Deel dimmen als object
Componentpath dimmen als tekenreeks


Const swDocPART = 1
Const swDocASSEMBLY = 2
Const swDocDRAWING = 3


Sub hoofd()
Stel swApp = CreateObject("SldWorks.Application") in
Stel activeDocument in = swApp.ActiveDoc


' Zorg ervoor dat dit geen onderdeel is.
Als (activeDocument.GetType = swDocPART) Dan
    Sub afsluiten
Einde als


' Iets anders doen voor tekeningen?
Als (activeDocument.GetType = swDocDRAWING) Dan
    Sub afsluiten
Einde als


' Verkrijg de SelectionMgr-interface
Set SelMgr = activeDocument.SelectionManager


' Verkrijg het geselecteerde entiteitsobject
Set selEntity = SelMgr.GetSelectedObject3(1)


selType = SelMgr.GetSelectedObjectType2(1)

"MsgBox selType

' Typen die latere onderdelen barf maken
Als (selType = 0) of (selType = 42) of (selType = 69) dan
    Sub afsluiten
Einde als


' Dit werkt geweldig voor componenten die zijn geselecteerd uit de functie scrambler
Als (SelMgr.GetSelectedObjectType2(1) = 20) dan
    'Jazeker!
    activeDocument.OpenCompFile
    Sub afsluiten
Einde als


'Haal de naam van het pad uit de geselecteerde entiteit.
Als (activeDocument.GetType = swDocASSEMBLY) Dan
    ' Haal het object op dat de eigenaar is van een component
    Set owningComponent = selEntity.GetComponent
    ' Haal de naam van het componentpad op
    componentpath = owningComponent.GetPathName
    ' MsgBox componentpad
    ' Open het deel in zijn eigen raam ja!
    
         Deel instellen = swApp.ActivateDoc(componentpath)
     
    Sub afsluiten
Einde als
Einde Sub

 

Bij voorbaat dank voor uw antwoorden. 

Vriendelijke groeten

Hallo

Dit is normaal, omdat de "opgeloste" onderdelen in het geheugen worden geladen wanneer de assemblage wordt geopend.

Ik heb mijn pc niet bij me, dus ik kan de macro niet wijzigen. 

Wat u kunt doen, is het pad van uw onderdeel ophalen en het openen zonder het in uw assemblage opgelost door te geven. Ik denk dat het qua geheugen beter is om het zo te doen, vooral als het een grote assemblage is.

Vriendelijke groeten.