| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PDM ERP Integration: 4 Wege für jede Anforderung |
Autor
|
Thema: Bauteilfarbe - nutzbare Eigenschaft? (1667 mal gelesen)
|
Doc Snyder Moderator Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen
Beiträge: 13310 Registriert: 02.04.2004 IV 2019 + 2020 + 2021 W7pro64 F-Secure-Safe Dell-M4600 2,13GHz 12GB Quadro2000M 15,4"1920x1080 MS-IntelliMouse-Optical SpacePilotClassic
|
erstellt am: 18. Okt. 2005 15:02 <-- editieren / zitieren --> Unities abgeben:
Moin! Bisher habe ich für die Angabe der Oberflächen der Bauteile die Materialangabe erweitert und so halt mehrere Materialien mit verschiedenen Oberflächen in der Liste gehabt, das ging schnell und glatt. Solange es nur um blank, verzinkt, verchromt oder schwarz bzw. farblos eloxiert ging, war das auch kein Problem, aber jetzt bekomme ich es mit der ganzen RAL-Palette und noch mehr zu tun, da geht das nicht mehr, meine Materialbilbliothek würde explodieren. Nun denke ich doch wieder an die Bauteilfarbe, aber bekomme ich die überhaupt irgendwie in die Stückliste bzw. in das Schriftfeld? Welche Empfehlungen gibt es sonst noch? Danke Roland Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
invhp Ehrenmitglied V.I.P. h.c. MB Techniker, AE, WKZmacher
Beiträge: 5552 Registriert: 16.05.2002 (fast) alles, was Autodesk im Mechanikbereich anbietet ;)
|
erstellt am: 18. Okt. 2005 16:46 <-- editieren / zitieren --> Unities abgeben: Nur für Doc Snyder
Hallo Roland, Eine Möglichkeit wäre, die Farbe in eine benutzerdef. Eingenschaft zu schreib. Hab da "mal schnell" (mit Hilfe der Hilfe und viel Abschauen ) was programmiert - Daywalker, Paul u.a.anderen bitte nicht lachen ) Code: Public Sub Farbe_als_iprop() Dim oApp As Application Set oApp = ThisApplication Dim oDoc As PartDocument Set oDoc = oApp.ActiveDocument X = oDoc.ActiveRenderStyle.Name Dim oPropsets As PropertySets Set oPropsets = oDoc.PropertySets Dim oCustomPropset As PropertySet Set oCustomPropset = oPropsets.Item("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}")On Error Resume Next Err.Clear Check = oCustomPropset.Item("Farbe").Value If Err.Number <> 0 Then Call oCustomPropset.Add(X, "Farbe", 2) Err.Clear Else oCustomPropset.Item("Farbe").Value = X End If On Error GoTo 0 End Sub
------------------ Grüsse Jürgen www.inventor-faq.de Autodesk Inventor Certified Expert Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Doc Snyder Moderator Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen
Beiträge: 13310 Registriert: 02.04.2004 IV 2019 + 2020 + 2021 W7pro64 F-Secure-Safe Dell-M4600 2,13GHz 12GB Quadro2000M 15,4"1920x1080 MS-IntelliMouse-Optical SpacePilotClassic
|
erstellt am: 18. Okt. 2005 17:42 <-- editieren / zitieren --> Unities abgeben:
Danke Jürgen, das wäre ja ein gangbarer Weg. Ich habe das auch mal versucht, aber es kommt gleich "Laufzeitfehler 13, Typen unverträglich" in der Zeile "Set oDoc = oApp.ActiveDocument" Gesetzt den Fall es ginge, auf welche Veranlassung hin würde das Progrämmchen dann seinen Dienst verrichten? Ich muss mich ja darauf verlassen können, dass diese Eigenschaft immer stimmt. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PaulSchuepbach Mitglied Programmierer
Beiträge: 1005 Registriert: 01.10.2003
|
erstellt am: 18. Okt. 2005 17:57 <-- editieren / zitieren --> Unities abgeben: Nur für Doc Snyder
Zitat: Original erstellt von Doc Snyder: ..."Laufzeitfehler 13, Typen unverträglich" in der Zeile "Set oDoc = oApp.ActiveDocument"Gesetzt den Fall es ginge, auf welche Veranlassung hin würde das Progrämmchen dann seinen Dienst verrichten?
Hi Roland,
wenn Du an der Stelle einen Laufzeitfehler bekommst, hast Du entweder überhaupt kein Dokument oder kein Part-Dokument offen. Der Code erzeugt Dir ein User-Property namens 'Farbe' mit der Farbe des Bauteils. Diese UserProp kannst Du dann in der Zeichnung anzeigen lassen. Grüsse,
Paul www.morecam.ch www.thinkcad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Doc Snyder Moderator Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen
Beiträge: 13310 Registriert: 02.04.2004 IV 2019 + 2020 + 2021 W7pro64 F-Secure-Safe Dell-M4600 2,13GHz 12GB Quadro2000M 15,4"1920x1080 MS-IntelliMouse-Optical SpacePilotClassic
|
erstellt am: 18. Okt. 2005 18:17 <-- editieren / zitieren --> Unities abgeben:
Ah, ja, jetzt gehts! Ich hatte zuerst das Bauteil in der Baugruppe zur Bearbeitung offen, das reicht also nicht. Ist das eine generelle Beschränkung? Und noch mal (auch wenn ich diese Frage schon so oft gestellt habe, dass sie allmählich nerven muss, aber ich habe noch keine Antwort): Auf welche Veranlassung hin wird diese Eigenschaft erzeugt bzw. aktualisiert? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PaulSchuepbach Mitglied Programmierer
Beiträge: 1005 Registriert: 01.10.2003
|
erstellt am: 18. Okt. 2005 18:24 <-- editieren / zitieren --> Unities abgeben: Nur für Doc Snyder
|
Fritz Freleng Mitglied Mausschubser
Beiträge: 304 Registriert: 31.12.2003 verschiedene Jahrgänge der Diva
|
erstellt am: 18. Okt. 2005 18:46 <-- editieren / zitieren --> Unities abgeben: Nur für Doc Snyder
|
Doc Snyder Moderator Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen
Beiträge: 13310 Registriert: 02.04.2004 IV 2019 + 2020 + 2021 W7pro64 F-Secure-Safe Dell-M4600 2,13GHz 12GB Quadro2000M 15,4"1920x1080 MS-IntelliMouse-Optical SpacePilotClassic
|
erstellt am: 18. Okt. 2005 18:52 <-- editieren / zitieren --> Unities abgeben:
Danke Paul, aber es gibt doch auch so Programme, die z.B. beim Speichern anspringen und (ich hoffe davor) dann diese "abgeleiteten" iProperties aktualisieren. Ist das so aufwändig, dass es sich nicht lohnt, oder könnte ich das womöglich noch dazucoden? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PaulSchuepbach Mitglied Programmierer
Beiträge: 1005 Registriert: 01.10.2003
|
erstellt am: 18. Okt. 2005 19:15 <-- editieren / zitieren --> Unities abgeben: Nur für Doc Snyder
Hi Roland, klick in IV auf: '?' - 'Programmierungshilfe' Suche nach 'auto AND macro' - ganz unten sind die Automacros beschrieben: Beachte dabi folgendes: Automatic macros are only supported within document projects. Macros within the Application or a User Project that use the names below will be ignored as far as running automatically. Will heissen: Du must das AutoMakro in Deine Vorlagendatei packen, dass es überhaupt ausgefüht wird. Der Code sieht dann so aus:
Public Sub AutoSave_ColorToProperty()
Dim oApp As Application Set oApp = ThisApplication Dim oDoc As PartDocument Set oDoc = oApp.ActiveDocument X = oDoc.ActiveRenderStyle.Name Dim oPropsets As PropertySets Set oPropsets = oDoc.PropertySets Dim oCustomPropset As PropertySet Set oCustomPropset = oPropsets.Item("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}") On Error Resume Next Err.Clear Check = oCustomPropset.Item("Farbe").Value If Err.Number <> 0 Then Call oCustomPropset.Add(X, "Farbe", 2) Err.Clear Else oCustomPropset.Item("Farbe").Value = X End If On Error GoTo 0 End Sub Das ganze muss in's 'ThisDocument' Projekt. Dass der Code immer da ist, Die ipt-Vorlage öffnen und den Code in's 'ThisDocument'-Projekt kopieren. Hab's nicht getestet - müsste aber gehen. Grüsse,
Paul www.morecam.ch www.thinkcad.de
[Diese Nachricht wurde von PaulSchuepbach am 18. Okt. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PaulSchuepbach Mitglied Programmierer
Beiträge: 1005 Registriert: 01.10.2003
|
erstellt am: 18. Okt. 2005 19:30 <-- editieren / zitieren --> Unities abgeben: Nur für Doc Snyder
Noch was: grundsätzlich ist vor AutoMakros zu warnen. es kann bei der Datenmigration zu erheblichen Problemen kommen, denn bei einer Migration werden Dateien geöffnet und GESPEICHERT - dabei laufen auch die AutoMakros ab. Das klingt - bei bestimmten AutoMakros - nicht gerade spektakulär. Das Problem liegt darin, dass sie nicht gestoppt werden können, wenn im Batch-Mode Dateien verarbeitete werden. Klingt immer noch nicht spektakulär - ist aber so: da bei den meiste Makro-Programmierern eine saubere Vorgehensweise feht, kommt es irgendwann zum Speicherüberlauf im VBA-Environment. Das kommt daher, dass: - VBA Speicherlecks hat - kaum ein Makro-Programmierer kümmert sich um's aufräumen - gibt also nicht mehr benötigten Speicher nicht wieder frei Im obigen Beispiel wird bei jedem part-Doc, das gespeichert wird, ein Application-Objekt, ein Dokument-Objekt, ein Propertysets-Objekt, ein Propertyset-Objekt usw. usw. erzeugt. Die bleiben dann alle am Leben und irgendwann ist der Speicher voll...
Was dann passiert, brauch ich wohl keinem zu erzählen. Die saubere Lösung wäre: Selber ein 'AutoMakro' zu bauen - mit ApplicationEvents. Da gibt's auch einen Enumerator 'kBefore' und 'kAfter' - also vor oder nach dem Öffnen, Speichern oder was auch immer. Und das ganze im Default.ivb-Projekt - das kann ich wegspeichern für eine Migration - Code in den Dokumenten krieg ich nicht mehr weg. Also wie gesagt: Vorsicht mit AutoMakros. Grüsse,
Paul www.morecam.ch www.thinkcad.de [Diese Nachricht wurde von PaulSchuepbach am 18. Okt. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Doc Snyder Moderator Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen
Beiträge: 13310 Registriert: 02.04.2004 IV 2019 + 2020 + 2021 W7pro64 F-Secure-Safe Dell-M4600 2,13GHz 12GB Quadro2000M 15,4"1920x1080 MS-IntelliMouse-Optical SpacePilotClassic
|
erstellt am: 18. Okt. 2005 20:32 <-- editieren / zitieren --> Unities abgeben:
Hmm, was soll ich daraus folgern? Im Grunde bin ich ja ganz Deiner Meinung, Paul, dass man sich mit unvollständig programmierten Sachen mehr Probleme ins Haus holt als man löst, aber was soll ich nun tun? Wenn ich das jedesmal von Hand anstoßen muss, ist es witzlos. Ginge es denn zumindest mit einem Icon neben dem Feld für die Bauteilfarbe? Allmählich glaube ich, dass es doch besser ist, bei der Methode mit der Material-Oberfläche - Kobination zu bleiben. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PaulSchuepbach Mitglied Programmierer
Beiträge: 1005 Registriert: 01.10.2003
|
erstellt am: 18. Okt. 2005 21:16 <-- editieren / zitieren --> Unities abgeben: Nur für Doc Snyder
|
Michael Puschner Moderator Rentner
Beiträge: 13003 Registriert: 29.08.2003 Toshiba Encore mit MS Office Ein Programm sollte nicht nur Hand und Fuß, sondern auch Herz und Hirn haben. (Michael Anton)
|
erstellt am: 18. Okt. 2005 23:01 <-- editieren / zitieren --> Unities abgeben: Nur für Doc Snyder
Zitat: Original erstellt von PaulSchuepbach: ... grundsätzlich ist vor AutoMakros zu warnen. es kann bei der Datenmigration zu erheblichen Problemen kommen, denn bei einer Migration werden Dateien geöffnet und GESPEICHERT - dabei laufen auch die AutoMakros ab. ... Code in den Dokumenten krieg ich nicht mehr weg. ...
Dafür bekommt Paul Schüpbach jetzt erstmal die volle Punktzahl. Sowas hat mir auch schon eine Migration verhagelt. Man stelle sich nur vor das Macro, das in allen Dokumenten gespeichert ist und beim Laden oder Speichern automatisch abläuft, bekommt in einer neuene IV-Version oder nach einem Service Pack Kompatibilitätsprobleme. Allgemeine Makros gehören nicht ins Dokument, sondern müssen jederzeit entfernbar sein. Die sauberste Lösung ist ein Zusatzmodul (AddOn). Auch das kann beim Speichern Funktionen ablaufen lassen, wie bei der iProperty Collection, ist aber jederzeit entfernbar. Der Programmieraufwand ist natürlich sehr viel größer. ------------------ Michael Puschner Autodesk Inventor Certified Expert Scholle und Partner GmbH [Diese Nachricht wurde von Michael Puschner am 18. Okt. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
TobiM4 Mitglied
Beiträge: 86 Registriert: 22.03.2005
|
erstellt am: 19. Okt. 2005 08:01 <-- editieren / zitieren --> Unities abgeben: Nur für Doc Snyder
Hi Ich habe gerade diese Beiträge hier gelesen und bin da auf ein Problem gestossen, was ich schon ein wenig länger vor mir her schiebe, und da hier ja ein paar Leute was zum Programmierung geschrieben haben werde ich das jetzt hier mal schreiben. Also gleich mal vorn weg ich habe noch nie in Inventor programmiert. Denke aber, dass ich mich mit VBA schon ein wenig auskenne, da ich schon einiges in Excel zusammengebaut habe. Jetzt müsste ich eigentlich etwas in Inventor anfangen. Aber solche Zeilen wie Set oCustomPropset = oPropsets.Item("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}") mit diesem Zahlenwust machen mir Angst und ich traue mich gar nicht erst anzufangen. Kann man mir hier mal kurz erklären, was diese Zahlen bedeuten, bzw. wie man zu ihnen kommt, damit ich einschätzen kann ob mein Projekt überhaupt Aussicht auf Erfolgt hat. @Doc Schneider Sorry, dass ich hier in deinem Beitrag einfach so eine neue Frage beginne. Gruß TobiM4 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tschack Mitglied
Beiträge: 186 Registriert: 29.11.2002 AIS9/AIP10SP2/AIP11SP1 Windoes XP - P4 3,0 - 1 GB NVIDIA Geforce 6200V+
|
erstellt am: 19. Okt. 2005 08:46 <-- editieren / zitieren --> Unities abgeben: Nur für Doc Snyder
Hallo, es geht auch ohne diesen Zahlenwust. Das beiliegende Beispiel löscht, so vorhanden, den ersten Eintrag im Reiter "Benutzerdefiniert" der iProperties und trägt dort den Renderstil ein. So funktioniert's auch nach Änderung der Farbe(Renderstil). Man muß lediglich das Makro nochmal ausführen. mfg - Hans
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tschack Mitglied
Beiträge: 186 Registriert: 29.11.2002 AIS9/AIP10SP2/AIP11SP1 Windoes XP - P4 3,0 - 1 GB NVIDIA Geforce 6200V+
|
erstellt am: 19. Okt. 2005 16:17 <-- editieren / zitieren --> Unities abgeben: Nur für Doc Snyder
|
PaulSchuepbach Mitglied Programmierer
Beiträge: 1005 Registriert: 01.10.2003
|
erstellt am: 19. Okt. 2005 21:42 <-- editieren / zitieren --> Unities abgeben: Nur für Doc Snyder
|
PaulSchuepbach Mitglied Programmierer
Beiträge: 1005 Registriert: 01.10.2003
|
erstellt am: 19. Okt. 2005 21:47 <-- editieren / zitieren --> Unities abgeben: Nur für Doc Snyder
Zitat: Original erstellt von TobiM4: Aber solche Zeilen wieSet oCustomPropset = oPropsets.Item("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}") mit diesem Zahlenwust...
Hallo Tobi,
dieser 'Zahlenwust' ist nicht Anderes als eine UUID und repräsentiert den 'InternalName' des User-PropertySets. Gib diesen 'Zahlenwust' mal im Suchfenster der Programmierhilfe ein. Wenn Du dann das gefundene Thema 'Accessing Properties Using the API' durchliest und den Beispielcode ablaufen lässt, sollten die letzen Klarheiten beseitigt sein. Grüsse, Paul www.morecam.ch www.thinkcad.de
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Doc Snyder Moderator Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen
Beiträge: 13310 Registriert: 02.04.2004 IV 2019 + 2020 + 2021 W7pro64 F-Secure-Safe Dell-M4600 2,13GHz 12GB Quadro2000M 15,4"1920x1080 MS-IntelliMouse-Optical SpacePilotClassic
|
erstellt am: 19. Okt. 2005 21:57 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen! Ganz abgesehen von den "inneren" Problemen sehe ich jetzt auch noch das ganz banale Problem, dass eine Baugruppe keine Farbe und auch kein normales Material hat. Ich habe aber Schweißbaugruppen, die lackiert werden. Es wäre Unsinn, da jedem Einzelteil eine Farbe zu geben (nachher gibt die noch einer vor dem Schweißen zum Lackieren...) Ich glaub ich kann das Ganze knicken und muss die Endbehandlung halt als Text jeweils einzeln von Hand eintragen und auf jede optische Kontrolle verzichten. Etwas frustriert Roland Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Harry G. Ehrenmitglied V.I.P. h.c. one-man-show
Beiträge: 4585 Registriert: 24.01.2003 PDSP2014.1.3; W7.1-64 E3-1240, 16 GB Quadro K2000
|
erstellt am: 19. Okt. 2005 22:53 <-- editieren / zitieren --> Unities abgeben: Nur für Doc Snyder
Hallo Roland, mußt Du denn die Farbe auf der Zeichnung visuell abbilden? Wenn das erforderlich ist, dann könntest Du eine entsprechende Anzahl von Konstruktionsansichtsdarstellungen (solch schöne lange Worte gibt's auch nur in Deutschland und Wales) der BG erzeugen, die Du mit dem Farbnamen benennst und worin Du alle Teile umfärbst. Um den manuellen Texteintrag in der Zeichnung kommst Du zwar nicht herum aber Du hast eine optische Kontrolle. ------------------ Grüße von Harry Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Doc Snyder Moderator Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen
Beiträge: 13310 Registriert: 02.04.2004 IV 2019 + 2020 + 2021 W7pro64 F-Secure-Safe Dell-M4600 2,13GHz 12GB Quadro2000M 15,4"1920x1080 MS-IntelliMouse-Optical SpacePilotClassic
|
erstellt am: 19. Okt. 2005 23:27 <-- editieren / zitieren --> Unities abgeben:
Hi Harry, nee nicht auf der Zeichnung, die optische Kontrolle will ich auf dem iam-Bildschirm haben und natürlich auf Luxus-idw mit farbigen schattierten Ansichten. Ich will die Komponenten aber nicht "von außen" umfärben, wie das bei den Konstruktionsanasäfjlklungen geschähe, sondern ich will denen selber diese Eigenschaft, z.B. "lackiert, RAL 1007" mitgeben können, auch Baugruppen. Bei Bauteilen erkenne ich ja auch immer an der Farbe, ob ich schon das richtige Material gewählt habe. Und das Material erscheint dann von selber auf der idw und ist als iProp für viele gute Zwecke verfügbar, z.B. Sortieren für die Beschaffung. So hätte ich das auch gerne für die Lackierung. Fürchte aber, dass das nur von Hand geht . Und Baugruppe färben geht wohl gar nicht... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Harry G. Ehrenmitglied V.I.P. h.c. one-man-show
Beiträge: 4585 Registriert: 24.01.2003 PDSP2014.1.3; W7.1-64 E3-1240, 16 GB Quadro K2000
|
erstellt am: 21. Okt. 2005 13:05 <-- editieren / zitieren --> Unities abgeben: Nur für Doc Snyder
|