| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| 5 Tipps um Ordnung in das Chaos von CAD-Dateien zu bringen |
Autor
|
Thema: Makro erstellen (3011 mal gelesen)
|
thoerner.a Mitglied Konstrukteur
Beiträge: 7 Registriert: 07.10.2010
|
erstellt am: 07. Okt. 2010 16:54 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich hätte gerne ein Makro, mit dem ich allen Gewinden in einer Baugruppe eine Farbe zuweisen kann. Wenn mir dabei einer helfen könnte wäre ich sehr dankbar. Da ich mich generell dafür Interessiere wäre es toll, wenn mir dann einer auch erklären könnte wie man an diese ganze Informationen bezüglich inventor kommt. z. b. woher wusste der programmierer von folgendem Makro was er wählen muss, damit nachher im inventor die richtige funktion aktiviert wird: Public Sub hgw() Dim oApp As Inventor.Application Set oApp = ThisApplication oApp.ColorSchemes.Item(7).Activate End Sub Woher wusste er, dass oApp.ColorSchemes.Item die farben steuert. Danke schon mal und Gruß Alex Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
lbcad Ehrenmitglied V.I.P. h.c. Dipl.-Ing. Maschinenbau und CAD-Trainer
Beiträge: 3823 Registriert: 15.02.2001 DELL Precision 7520 Win10Pro-64 Inventor mit Vault Professional 2024 --------------------- Während man es aufschiebt, verrinnt das Leben. Lucius Annaeus Seneca (ca. 4 v. Chr - 65 n. Chr.)
|
erstellt am: 07. Okt. 2010 17:00 <-- editieren / zitieren --> Unities abgeben: Nur für thoerner.a
|
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2428 Registriert: 15.11.2006 Windows 10 x64, AIP 2023
|
erstellt am: 07. Okt. 2010 18:21 <-- editieren / zitieren --> Unities abgeben: Nur für thoerner.a
Hallo Sind die Gewindebohrungen im Bauteil oder ein Baugruppenfeature? Oder meintest du die Darstellung in der Zeichnungsableitung? Der Ersteller des Makro wird sich wohl unter anderem in der Entwicklerhilfe (versteckt sich im Hilfemenü unter "weitere Ressourcen" oder so ähnlich) umgesehen haben. Dann hat er sich vielleicht im Ordner "SDK" im Inventor Installationsverzeichnis mal die Objektmodell-Übersicht angeschaut. Oder er hat einfach sein Makro mit einem Haltepunkt versehen, eine Überwachung auf "oApp" gesetzt und mal geschaut was sich dahinter so anbietet. Oder es ist ihm im Schlaf zugefallen. ------------------ MfG RK Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
lbcad Ehrenmitglied V.I.P. h.c. Dipl.-Ing. Maschinenbau und CAD-Trainer
Beiträge: 3823 Registriert: 15.02.2001 DELL Precision 7520 Win10Pro-64 Inventor mit Vault Professional 2024 --------------------- Während man es aufschiebt, verrinnt das Leben. Lucius Annaeus Seneca (ca. 4 v. Chr - 65 n. Chr.)
|
erstellt am: 07. Okt. 2010 19:02 <-- editieren / zitieren --> Unities abgeben: Nur für thoerner.a
|
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2428 Registriert: 15.11.2006 Windows 10 x64, AIP 2023
|
erstellt am: 07. Okt. 2010 19:33 <-- editieren / zitieren --> Unities abgeben: Nur für thoerner.a
Hmm, das einzige was mir im Schlaf auf'n Kopf fällt ist unsere blöde Katze, wenn sie mit schlafwandlerischer Sicherheit auf dem Kopfteil entlang balanciert, dabei ins Schleudern kommt und ihren 5,5 Kilo Körper mit 1,5facher Schraube auf meinem Gesicht parkt. Logischerweise erschreckt sich so eine arme kleine Katze, wenn sie so ausrutscht, was dann ihren Fluchtinstinkt weckt und sie dazu veranlaßt mit ausgefahrenen Krallen (wohlgemerkt, sie befindet sich noch auf meinem Gesicht) Vollgas zu geben. ------------------ MfG RK Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Little_Devil Mitglied Technische Zeichnerin
Beiträge: 1412 Registriert: 25.04.2003 IV 2023 Radeon (TM) Pro WX 5100 Dell Precision 5820 Tower Intel Xenon CPU @3,7 GHz 32 GB RAM 64 Bit
|
erstellt am: 08. Okt. 2010 08:00 <-- editieren / zitieren --> Unities abgeben: Nur für thoerner.a
Ich hoffe nur das Deine Frau neben Dir liegt wenn das passiert.... Weil wenn mein Mann mir sowas erzählen würde, ohne das ich es selbst miterlebt habe, würd ich fragen: "wie hieß die Katze"? ------------------ Grüßle Daniela Wer meint es besser zu wissen, der soll es grad selber machen! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
thoerner.a Mitglied Konstrukteur
Beiträge: 7 Registriert: 07.10.2010
|
erstellt am: 08. Okt. 2010 08:24 <-- editieren / zitieren --> Unities abgeben:
Im Bauteil. Zeichnungen brauchen wir in diesem Fall nicht mehr, weil hier nach Modell und farben gefertigt wird. Danke werde mal schauen, ob mich die Programmierhilfe usw weiterbringt. Gruß Alex Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2428 Registriert: 15.11.2006 Windows 10 x64, AIP 2023
|
erstellt am: 08. Okt. 2010 09:46 <-- editieren / zitieren --> Unities abgeben: Nur für thoerner.a
Hallo @Little_Devil Meine Frau war auch schon der "Landeplatz" und die Mieze heißt Emily. @thoerner.a Farben an Bauteilflächen werden als Attribute an die Fläche geschrieben. Nimm mal folgenden Code, öffne ein solches Bauteil und wähle die Fläche einer Bohrung an. Dann setze einen Haltepunkt auf die Zeile "End Sub" und füge eine Überwachung für oSelection ein. Starte den Code und am Haltepunkt kannst du dir in der Überwachung mal ansehen was es für einen solche Fläche so gibt. Unter Attributes findest du dann das Farbattribut, falls eine vergeben wurde. Ohne Selektion findest du die Flächen unter ThisApplication.ActiveEditDocument.ComponentDefinition.Features.HolesFeatures.Item(x).Faces. Ich hoffe eure Bauteile sind keine Ersatzobjekte einer Baugruppe, abgeleitete Komponenten oder Teile die mit einem der Generatoren von Inventor erzeugt wurden. Mit derartigen Teilen treten gern mal "Unschärfen" auf. Entweder hat die Bohrung angeblich keine Flächen, nach dem Speichern ist das Farbattribut plötzlich weg usw. usw. Natürlich alles sporadisch und nicht reproduzierbar.
Wenn es bei euch keinen mit Programmiererfahrung gibt, frag doch mal z.B. bei daywa1k3r oder PaulSchuepbach hier aus dem Forum an. Die verdienen ihren Lebensunterhalt mit Programmierungen. Code: Private Sub SelectSetTest()Dim oApp As Application Set oApp = ThisApplication Dim oDoc As PartDocument Set oDoc = oApp.ActiveEditDocument Dim oSelection As Face Set oSelection = oDoc.SelectSet.Item(1) End Sub
------------------ MfG RK Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
thoerner.a Mitglied Konstrukteur
Beiträge: 7 Registriert: 07.10.2010
|
erstellt am: 11. Okt. 2010 09:16 <-- editieren / zitieren --> Unities abgeben:
@ rkauskh danke für den code. ich habe ihn mal ausgeführt und ein wenig darin rumgestöbert. leider versteh ich zu wenig davon, um damit etwas brauchbares mit den ganzen informationen anfangen zu können. leider haben wir auch niemanden mit programmiererfahrung. mir würde schon ein button reichen, der mit einer aus den Flächeneigenschaften wählbaren farbe belegt wäre. so dass ich eine fläche mit einem klick einfärben kann. statt wie bisher: rechtsklick, eigenschaften, farbe auswählen und ok. diese vielen klicks nerven wenn man ein ganzes werkzeug einfärben muss. wäre so ein makro sehr aufwändig? gruß alex Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daywa1k3r Ehrenmitglied V.I.P. h.c. Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570 Laptop: Alienware m17x Win7, Inventor2012 64Bi
|
erstellt am: 11. Okt. 2010 10:57 <-- editieren / zitieren --> Unities abgeben: Nur für thoerner.a
Meinst du so? Falls zu verschwommen Youtube HDWenn ja, hier ist der Code dazu. Die Farbennamen wirst du vielleicht auf Deutsch umstellen müssen (siehe Kommentar) Code:
Public Sub Blue() Dim oPart As PartDocument Set oPart = ThisApplication.ActiveDocument Dim oFace As Face Dim oSelection As Object For Each oSelection In oPart.SelectSet On Error Resume Next Set oFace = oSelection oFace.SetRenderStyle kOverrideRenderStyle, oPart.RenderStyles("Blue") 'Hier RenderStyle eintragen Next End Sub Public Sub Red() Dim oPart As PartDocument Set oPart = ThisApplication.ActiveDocument Dim oFace As Face Dim oSelection As Object For Each oSelection In oPart.SelectSet On Error Resume Next Set oFace = oSelection oFace.SetRenderStyle kOverrideRenderStyle, oPart.RenderStyles("Red") 'Hier RenderStyle eintragen Next End Sub Public Sub Green() Dim oPart As PartDocument Set oPart = ThisApplication.ActiveDocument Dim oFace As Face Dim oSelection As Object For Each oSelection In oPart.SelectSet On Error Resume Next Set oFace = oSelection oFace.SetRenderStyle kOverrideRenderStyle, oPart.RenderStyles("Green") 'Hier RenderStyle eintragen Next End Sub Public Sub DefaultColor() Dim oPart As PartDocument Set oPart = ThisApplication.ActiveDocument Dim oFace As Face Dim oSelection As Object For Each oSelection In oPart.SelectSet On Error Resume Next Set oFace = oSelection oFace.SetRenderStyle kOverrideRenderStyle, oPart.RenderStyles("Default") 'Hier RenderStyle eintragen Next End Sub Public Sub SelectAllFaces() Dim oPart As PartDocument Set oPart = ThisApplication.ActiveDocument Dim oSurfBody As SurfaceBody Dim oFace As Face For Each oSurfBody In oPart.ComponentDefinition.SurfaceBodies For Each oFace In oSurfBody.Faces oPart.SelectSet.Select oFace Next Next End Sub
------------------ Grüße Igor FX64 Software Solutions - Inventor Tools [Diese Nachricht wurde von daywa1k3r am 11. Okt. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
thoerner.a Mitglied Konstrukteur
Beiträge: 7 Registriert: 07.10.2010
|
erstellt am: 11. Okt. 2010 12:50 <-- editieren / zitieren --> Unities abgeben:
ja geil daywa1k3r, funktioniert super. ich freu mich wie doof. Danke sehr. Kann man das auch wenn man face durch object austauscht auf markierte elemente aus dem Konstruktionbaum anwenden? weißte was ich meine? gruß alex Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daywa1k3r Ehrenmitglied V.I.P. h.c. Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570 Laptop: Alienware m17x Win7, Inventor2012 64Bi
|
erstellt am: 11. Okt. 2010 12:59 <-- editieren / zitieren --> Unities abgeben: Nur für thoerner.a
Zitat: Original erstellt von thoerner.a: Kann man das auch wenn man face durch object austauscht auf markierte elemente aus dem Konstruktionbaum anwenden? weißte was ich meine? gruß alex
Nicht alle Objekte haben die gleiche Eigenschaften und Methoden. Probier einfach mal aus... ------------------ Grüße Igor FX64 Software Solutions - Inventor Tools [Diese Nachricht wurde von daywa1k3r am 11. Okt. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |