Újra és újra
Előfordult már, hogy újra és újra el kellett végeznie egy feladatot a SolidWorksben ? Van-e olyan ismétlődő műveletsor, amelyet történetesen sok modelljén hajt végre? Ha igen, akkor a makrók az új barátok. Lehetővé teszik, hogy előre programozzon egy parancskészletet, amely ezután egyetlen gombnyomással automatikusan végrehajtható.
A makrók más alkalmazásokban is léteznek (a Microsoft Excel népszerű példa), és valójában API-k (Application Programming Interfaces) termékei. Az API alapvetően egy olyan környezet, amelyben a programozók felhasználhatják az alapalkalmazás natív szolgáltatásait és funkcióit, hogy meghatározott műveletek vagy szolgáltatások végrehajtására irányítsák azt. Például a SolidWorksben a környezet a felhasználó számára elérhető összes szolgáltatást és eszközt tartalmazza. Az Excelben ez lenne az összes Excel-függvény, diagrameszköz és így tovább.
Tehát ha egy makrót hoz létre egy alkalmazásban, akkor alapvetően az adott alkalmazás API-ját használja. A SolidWorks API a Visual Basic programozási nyelvet használja makrók írásához, de még ha nem is tudja, hogyan kell programozni, valószínűleg meg fogja tudni érteni a makró működését (erről a későbbi szakaszokban olvashat bővebben).
Miért használjunk makrókat?
A SolidWorks makrók szinte végtelen szabadságot tesznek lehetővé a program összes funkciójának és eszközének kezelésében. Lehetővé teszik a klasszikus programozás megvalósítását, valamint a szabványos SolidWorks funkciók használatát. Például írhat egy makrót, amely megkapja a tervezési követelményt a felhasználótól (mondjuk egy henger átmérőjét és magasságát), majd automatikusan felépíti a modellt a követelménynek megfelelően. Egy másik felhasználási eset egy henger automatikus létrehozása és a szükséges magasságának kiszámítása csak a felhasználó által megadott átmérő és térfogat alapján.
Ezek a példák azonban általában haladó témák azok számára, akik jobban ismerik a makrókat és a programozást. Azon felhasználók számára, akik csak most ismerkednek a SolidWorks makróval, különösen hasznosak a több lépésből álló ismétlődő feladatoknál. A makró létrehozása után a végrehajtási ideje hihetetlenül gyors (természetesen a számítógéptől függően) a feladat kézi végrehajtásához szükséges időhöz képest.
Ebben a cikkben a makró létrehozásának három fő módját tárgyaljuk, majd lépésről lépésre bemutatjuk a makró létrehozásának módját. Még azt is megmutatjuk, hogyan rendelhet hozzá gombot a SolidWorksben. Tehát, ha fontos Ön számára az időmegtakarítás, olvasson tovább.
Csináld magad makrók
Háromféleképpen hozhat létre SolidWorks makrót. Vessünk egy gyors pillantást mindegyikre.
Felvétel
A makró létrehozásának legegyszerűbb módja, ha rögzíti magát azon műveletek végrehajtásában, amelyeket szeretné, hogy a makró megismételjen. Ebben az esetben egyszerűen nyomja meg a rögzítés gombot, hajtsa végre a parancssort, és ha végzett, állítsa le a felvételt. A makró ezután mentésre kerül, és használatra kész.
Ez egy jó megoldás az olyan ismétlődő feladatokhoz, amelyek teljes mértékben a SolidWorks nyers szolgáltatásaiban vannak, és nem igényelnek további számításokat vagy műveleteket.
Programozás
A rögzített makró legnagyobb hátránya a korlátai. Alapvetően arra korlátozódik, amit a SolidWorksben kézzel is megtehet. Ahelyett, hogy csak arra korlátozná magát, amit rögzíteni tud, közvetlenül megírhatja a makró kódját.
Ez az alkalmazás sokkal magasabb szintű vezérlését teszi lehetővé, és – mint említettük – programozási elemek, számítások, felhasználói felületek megvalósítását teszi lehetővé többek között klassz dolgok mellett. Mint látható, ez a módszer némi programozási ismeretet igényel, így nem túl barátságos a kezdők számára.
Hibrid megközelítés
Ez az előnyben részesített módszer, amely mind a tapasztalt programozóknak, mind a mindennapi SolidWorks-felhasználóknak megfelel. Az ötlet alapvetően az, hogy rögzítse, amit tud, aztán minden mást programozzon. A funkciók, a dokumentumkezelés stb. rögzíthetők, majd szerkesztheti a felvétel kódját az Ön igényei szerint. Ezenkívül kódot is hozzáadhat a rögzített szakaszok közé a makró finomhangolásához.
Bár néhány programozásról van szó, még a makrókat ismerő felhasználók számára is előnyös lenne a rögzített makrók szerkesztése. Ennek főként az az oka, hogy makró rögzítésekor a SolidWorks mindent rögzít, amit csinál, beleértve a modellforgatásokat, a nagyítást és kicsinyítést, mindent!
Hogyan kell csinálni
A következő szakaszokban lépésről lépésre elmagyarázzuk, hogyan kell makrót létrehozni és használni. A makróhoz használt példa valószínűleg mindenki számára ismerős lesz, aki a SolidWorks-t használja a Cura mellett . A Cura programban a koordinátarendszer eltér a SolidWorksben használt globális koordinátarendszertől: Curában a függőleges irány a Z tengely mentén, míg a SolidWorksben az Y tengely mentén van.
Ez azt eredményezi, hogy ami a SolidWorks „felső síkja”, az valójában a Cura „első síkja”. Ez azt jelenti, hogy ha egy alkatrészt úgy terveztek meg a SolidWorksben, hogy a függőleges iránya merőleges a felső síkra (ami az intuitív módszer), akkor Cura-ban el kell forgatni a megfelelő tájolású nyomtatáshoz.
Létrehozunk egy makrót, amely automatikusan elforgatja az alkatrészt, hogy illeszkedjen a Cura koordinátarendszerébe, majd elmenti STL-fájlként egy meghatározott mappába. Noha ezek viszonylag egyszerű feladatok, szorozza meg őket az STL-be exportált és a Curában forgatni kívánt alkatrészek számával, és látni fogja, miért nagyszerű az automatizálás az ilyen esetekben.
Felhasználói felület
Mielőtt belevágnánk a lépésekbe, vessünk egy pillantást a SolidWorks Makró menüopcióira. Az Eszközök menüben találhatók, és a következőket tartalmazzák:
- A Futtatás lehetővé teszi meglévő makrók végrehajtását, amelyeket korábban írt.
- A rögzítés a makró létrehozásának egyik módja. Egy perc múlva megbeszéljük.
- A Szerkesztés nyilvánvalóan lehetővé teszi a makrók szerkesztését, módosítását vagy finomhangolását, hogy jobban megfeleljen az Ön igényeinek.
1. lépés: Felvétel
Ebben a lépésben létrehozzuk a fent tárgyalt makrót az összes szükséges lépés végrehajtásával, miközben a SolidWorks rögzíti azokat.
- Kezdje bármelyik SolidWorks modellel, amelyet választott. Ez lehet egy alkatrész, amit most fejezett be, vagy valami, amit már régen készített. Ebben a példában a mi részünk csak egy egyszerű kúp, amelyet a bemutatóhoz készítettünk.
- Győződjön meg arról, hogy a fájlt elmentette valahova. Ha nem, először mentse el.
- Nyomja meg a „Rögzítés” gombot a Makró menüben.
- Forgassa el az alkatrészt 90 fokkal az X-tengely mentén a Törzs áthelyezése/másolása funkcióval, amely elérhető vagy a Beszúrás menü Funkciók menüpontjában, vagy egyszerűen beírja a „Move/Copy Body” parancsot a SolidWorks jobb felső részén található Keresési parancssorba. ‘ UI.
- Mentse a fájlt STL-ként a szokásos módon (a Mentés másként paranccsal).
- Nyomja meg a fekete négyzetet a Makró panelen a felvétel leállításához.
- Válasszon egy fájl elérési utat a makró mentéséhez.
Egy pillantás a kódra
Most nézzük át a rögzített makró kódját. Válassza a „Szerkesztés” lehetőséget a Makró menüben, és tallózással keresse meg az imént létrehozott makrót. Ez előhozza a nyers kódot.
Ha van tapasztalata a Visual Basic programozásban, valószínűleg megérti, mi történik. Azok számára, akik nem programozók, a következő megjegyzések (félkövérrel vannak jelölve) minden kódsor blokkhoz:
- Változók deklarálása:
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
- Alap API-definíciók:
Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Dim myModelView As Object
Set myModelView = Part.ActiveView
- Modellnézet elforgatása:
myModelView.RotateAboutCenter 6.67588438887833E-02, 0.138244705827351
Set myModelView = Part.ActiveView
myModelView.RotateAboutCenter 0.153152641862503, 0.245768365915291
Set myModelView = Part.ActiveView
myModelView.RotateAboutCenter 1.17809724509618E-02, 7.68026143485283E-03
Set myModelView = Part.ActiveView
myModelView.RotateAboutCenter 0.11388273369263, 0
- Modellnézet újraaktiválása:
Dim swModelView As Object
Set swModelView = Part.ActiveView
swModelView.RollBy 0
- Válassza ki a „Loft1” nevű testet:
boolstatus = Part.Extension.SelectByID2("Loft1", "SOLIDBODY", 3.07844476491823E-02, 2.99014192186746E-02, 2.21730995684766E-03, True, 0, Nothing, 0)
- Törölje a kijelölést, és válassza ki a „Loft1” nevű testet (ismét):
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Loft1", "SOLIDBODY", 3.07844476491823E-02, 2.99014192186746E-02, 2.21730995684766E-03, False, 1, Nothing, 0)
- A test elforgatása:
Dim myFeature As Object
Set myFeature = Part.FeatureManager.InsertMoveCopyBody2(0, 0, 0, 0, 0, 0, 0, 0, 0, 1.5707963267949, False, 1)
Part.ClearSelection2 True
- Modellnézet elforgatása:
Set myModelView = Part.ActiveView
myModelView.RotateAboutCenter -0.137444678594554, 0.184326274436468
Set myModelView = Part.ActiveView
myModelView.RotateAboutCenter -3.92699081698725E-03, 0
Set myModelView = Part.ActiveView
myModelView.RotateAboutCenter -0.15707963267949, 9.98433986530868E-02
- Modellnézet újraaktiválása:
Set swModelView = Part.ActiveView
swModelView.RollBy 0
- Mentse STL-ként, és fejezze be a makrót:
longstatus = Part.SaveAs3("C:UsersAll3DPPart2.STL", 0, 0)
End Sub
2. lépés: Szerkesztés
Számos probléma van a rögzített makróval, amelyeket már észrevett:
- Vannak szükségtelen kódsorok, amelyek nem szükségesek a makró megfelelő végrehajtásához. Például a modell ( ) elforgatását leíró összes kódsor
RotateAboutCenter
létrejött, mert a modell 3D-s nézete megváltozott a makró rögzítése során. Ezt nyilvánvalóan nem szándékosan akarjuk végrehajtani, ezért szem előtt kell tartanunk, hogy ne változtassuk meg a nézetet makró rögzítésekor. - Jelenlegi formájában a rögzített makró csak a „Loft1” nevű testeken fog működni. A legtöbb esetben nyilván nem így hívják a forgatandó testet.
- Előfordulhat, hogy a megadott fájl elérési útja nem mindig az a hely, ahová mindig menteni szeretné a fájlokat.
A kód szerkesztésével megoldhatjuk ezeket a problémákat.
- Kezdje a felesleges kódsorok eltávolításával.
- Csípje meg a funkciók végrehajtási vonalát, hogy bármilyen szilárd testhez illeszkedjen, nem csak a „Loft1”-hez. Szerencsére ez olyan egyszerű, mintha csak üresen hagyná a névsort.
- Módosítsa a mentési útvonalat a kívánt helyre.
Egy pillantás a kódra
A változatainkat tekintve figyelje meg, hogy a kód mennyire rövid és releváns a nyers rögzített makróhoz képest.
- Változók deklarálása:
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
- Alap API-definíciók:
Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Dim myModelView As Object
Set myModelView = Part.ActiveView
- Válassza ki a testet:
boolstatus = Part.Extension.SelectByID2("", "SOLIDBODY", 3.07844476491823E-02, 2.99014192186746E-02, 2.21730995684766E-03, False, 1, Nothing, 0)
Dim myFeature As Object
- A test elforgatása:
Set myFeature = Part.FeatureManager.InsertMoveCopyBody2(0, 0, 0, 0, 0, 0, 0, 0, 0, 1.5707963267949, False, 1)
- Mentés másként:
longstatus = Part.SaveAs3("C:UsersAll3DPPart2.STL", 0, 0)
End Sub
3. lépés: Parancsikon hozzáadása
Most, hogy van egy átdolgozott makrónk, kétféleképpen érhetjük el. Az első mód, mint korábban említettük, a Makró menü, ahol a Futtatás opciót kapjuk, amely lehetővé teszi a kívánt makró kiválasztását és futtatását. A második módszer egy dedikált gomb létrehozása, amely rögzíthető a SolidWorks Quick Command eszköztárához.
A makrók esetében minden a munkafolyamat felgyorsításáról szól, és a makrókhoz való könnyű hozzáférés nagyon előnyös lehet. Tehát a következőképpen hozhat létre egy dedikált gombot:
- Kattintson a „Testreszabás” elemre az Eszközök menüben.
- Lépjen a Parancsok lapra.
- Válassza ki a „Makró” parancsot.
- Húzza a jobb szélső gombot a Gyorsparancs eszköztárra.
- Keresse meg a gombhoz rendelni kívánt makrót.
- Ha szeretné, kiválaszthat egy ikont a gombhoz.
- Nyomja meg az „OK” gombot a gomb létrehozásához.
Ez az! Most, amikor legközelebb SolidWorks modellt kell exportálnia a Curába, csak nyomja meg a gombot, és a makró végrehajtásra kerül.
További források és előre elkészített makrók
Ha mélyebben szeretné megismerni a makrók működését és használatukat, nagyszerű források találhatók az interneten:
- A SolidWorks API súgója nagyon részletes és alapos, de nem túl intuitív, ha nem igazán tudja, mit keres. Az egyik fő előny azonban az, hogy a sok példa közül másolhat releváns kódszegmenseket saját makróihoz.
- A Solidworks VBA makró oldala a CAD Coder webhelyen egy kezdő útmutató a SolidWorks makrók programozásához. Remek kiindulópont számos egyszerű, de hasznos példával, beleértve a kiválasztási módszereket , a filé létrehozását és még sok mást.
- Az MLC CAD Systems egy sor YouTube-videót hozott létre, amelyek a makrókészítés néhány technikai aspektusát mutatják be. A SolidWorks API for the Total Beginner a sorozat első videója.
Vannak nagyszerű előre elkészített makrók és könyvtárak is, amelyeket letölthet és használhat úgy ahogy vannak, vagy akár kisebb módosításokkal. Csak töltse le a makrót, szerkessze, ha akarja (most, hogy tudja, hogyan), és kezdje el használni! Íme néhány webhely a kezdéshez:
- Codestack : makrók és szkriptek könyvtára a SolidWorks automatizálására
- 3D ContentCentral : ingyenes 3D CAD modellek, 2D rajzok, szállítói katalógusok és természetesen SolidWorks makrók tárháza
- Javelin : a SolidWorks makrók archívuma
- GoEngineer : ingyenes SolidWorks eszközök
Eredeti forrás: All3dp.com