Hallo
Is het mogelijk om automatisch een macro uit te voeren die is gekoppeld aan een onderdeel wanneer het in een Solidworks-assemblage wordt ingevoegd?
Bij voorbaat dank!
Hallo
Is het mogelijk om automatisch een macro uit te voeren die is gekoppeld aan een onderdeel wanneer het in een Solidworks-assemblage wordt ingevoegd?
Bij voorbaat dank!
Ik heb de post die ik deed in de andere vraag gezet
om dit soort automatisering uit te voeren, is het ingewikkelder, je moet een SW-invoegtoepassing maken die de gebeurtenissen van de applicatie beheert. In feite moet je meer programmeren dan een macro, je moet via een ontwikkeltool als Microsoft Visual Studio gaan.
Hiervoor is een myCAD-tool genaamd CustomToolBar, waarin het mogelijk is om een macro te activeren met betrekking tot gebeurtenissen (bijvoorbeeld het invoegen van een component)
Maar eenvoudiger zonder deze tool is het maken van een macro-snelkoppeling in de werkbalken.
Of maak een macro die de invoegfunctie van dit onderdeel start en vervolgens het formaatvenster weergeeft...
Hallo
Ik zou in de verleiding komen om te zeggen dat een enkele macro niet genoeg zou zijn, maar met een opeenvolging van macro's zou het het kunnen doen.
Tenzij je meerdere macro's aan elkaar kunt koppelen, maar ik weet er niet genoeg van.
Voor de opening bij het invoegen van een onderdeel in een assemblage hangt het ervan af of u wilt:
Voor het laatste geval is het eenvoudig, je kunt dan de SolidWorks-invoegknop vervangen door een knop voor je macro !
Concreet zou ik willen dat wanneer ik mijn reling in een assemblage plaats, het maatvenster (en dus de macro die bij de reling hoort) loopt.
Ik zal dan andere standaardelementen voor ons maken (poort, ladder,...) en ik zou graag willen dat het met deze onderdelen hetzelfde is.
Ik sta echt open voor alle soorten ideeën, met als einddoel het leven van de eindgebruiker gemakkelijker te maken:D
Hallo
Waarom gebruikt u hiervoor niet de standaard SolidWorks-functies in plaats van macro's te ontwikkelen die in toekomstige versies van SolidWorks moeten worden bijgewerkt.
Als u een onderdeel of merk wilt invoegen met een dialoogvenster om parameters te beheren, kunt u DriveWorks xpress of de configuratiemanager gebruiken (op het tabblad Configuraties).
@+
In deze video worden de macro's uitgelegd die in assemblages zijn ingebouwd:
http://www.youtube.com/watch?v=zbvp1v7_bec
De oplossing, een beetje ingewikkeld, zou zijn om de macro in uw assemblage te maken, zoals weergegeven in de video.
Maak een aangepaste "reling"-eigenschap op 0.
Voeg een voorwaarde toe aan de macro: detecteer wanneer het "reling" deel wordt toegevoegd.
De macro doet zijn werk en verandert vervolgens de eigenschap "railing" in 1 om de macro niet langer te starten.
Probleem: deze macro controleert de aangepaste eigenschap "vangrail" en als je het onderdeel bij elke rebuild invoegt: overbelasting voor de processor!
Oordeel: veel werk voor niet veel... Een knop zou echt simpeler zijn!
Andere mogelijkheden voor het starten van macro's:
Door een vergelijking, uit de ontwerpmap, uit een functiemacro:
http://www.cadsharp.com/blog/4-ways-to-run-solidworks-api-macro-without-run-button/
Macro-functie: http://www.youtube.com/watch?v=I-cIGMFSBOg
Coyote
Ik heb de DriveWorksXpress-methode getest, door een model te definiëren, door de afmetingen vast te leggen die ik wil variëren, maar ik begrijp niet hoe ik dit configuratievenster kan laten verschijnen wanneer ik het onderdeel daarna in de assemblage plaats?
@jfaradon,
Ik ben buggen op uw idee van het maken van een macro om het onderdeel in te voegen en het openen van het venster te genereren.
Als je me een aanwijzing kunt geven of het programma:D
Het idee is gewoon om in de macro ta de invoeging van het onderdeel aan het begin toe te voegen!
Met component Toevoegen:
http://help.solidworks.com/2012/English/api/sldworksapi/Add_Components_Example_VB.htm
Re
Inderdaad, met DriveWorks Xpress zei ik iets stoms: het venster gaat niet open tijdens het invoegen.
Aan de andere kant, met mijn tweede aangegeven methode, namelijk de configuratiemanager, werkt het als volgt, op het moment van het invoegen van het model verschijnt het configuratievenster in de functiebeheerder.
@+
Er zijn twee manieren om het invoegen van een component te programmeren, ofwel programmeert u alles (AddComponent)
of u voert de opdracht gewoon uit alsof u op de knop "Componenten invoegen" klikt
Om dit te doen, moet u de RunCommnand-methode gebruiken, waarmee u SW-opdrachten kunt uitvoeren
Voorbeeld in uw geval
swDoc.Extension.RunCommand(swCommands_e.swCommands_InsertComponents, "")
u moet de swCommands-referentie aan het project toevoegen
Wees voorzichtig, de opdracht is asynchroon, d.w.z. de code gaat verder zonder te wachten tot de invoegopdracht is voltooid...
Hallo allemaal.
Sorry dat ik de draad niet heb gevolgd, maar ik moest een tijdje weg zijn.
Nou, ik sta nog steeds stil en daar kom ik tegen dat ik echt een beginneling ben;)
Nou, als een liefdadige ziel het rechtstreeks op mijn macro kan proberen, zou ik hem voor altijd dank verschuldigd zijn:D
Bij voorbaat dank aan allen.