| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SolidEdge |
Autor
|
Thema: Erstellen einer Normteilbibliothek (837 mal gelesen)
|
Mampfred Mitglied Student
Beiträge: 8 Registriert: 16.01.2006
|
erstellt am: 16. Jan. 2006 16:31 <-- editieren / zitieren --> Unities abgeben:
Hi. Ich muss eine Schraube (DIN 4014) mit Variablen konstruieren und die Maßtabelle in einem Makro ablegen. Die Eingabe der Daten soll in einer Bildschirm-Maske erfolgen, wobei abgespeicherte Sechskantschrauben eingelesen und durch Anklicken oder Return geändert oder bestätigt werden können. Die Ausgabe der konstruierten Schraube soll dann ebenfalls in einer Maske auf dem Bildschirm erfolgen. Kann mir jemand weiterhelfen? Danke. ------------------ MR Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lars Ehrenmitglied V.I.P. h.c.
Beiträge: 4319 Registriert: 23.10.2000 Solid Edge
|
erstellt am: 16. Jan. 2006 16:49 <-- editieren / zitieren --> Unities abgeben: Nur für Mampfred
|
modeng Ehrenmitglied V.I.P. h.c.
Beiträge: 7061 Registriert: 10.12.2003
|
erstellt am: 16. Jan. 2006 17:01 <-- editieren / zitieren --> Unities abgeben: Nur für Mampfred
Moin, ??? ziemlich unklar ... 1) in einem Makro kann man nichts ablegen, ein Makro ist ein Programm entweder in C/C++ oder VB/VBA geschrieben. Dies kann aus Daten ein Teil erstellen. Ein Makro-Recorder zum Aufzeichnen der eizelnen Konstruktionsschritte ist standardmaessig in SE nicht vorhanden 2) die Variablen der Schraube (Prototyp) koennen aus Excel kommen und somit eine spezielle Schraubengroesse aus dem Prototyp erstellen. Das gleiche Ergebnis liesse sich auch ueber eine Teilefamilie loesen. Generell laesst sich eine vorhandene Schraube ueber Variablen in der Geometrie anpassen. 3) " wobei abgespeicherte Sechskantschrauben eingelesen .." ??? aus 2D oder 3D welche Daten sind denn da vorhanden? 4) "... Die Ausgabe der konstruierten Schraube soll dann ebenfalls in einer Maske ..." das sieht so nach 2D und AutoCad aus. Ansonsten wuerde aus 2) eine fertige Schraube in 3D als .par zur verfuegung stehen, die unter einem neuen Namen gespeichert wird modeng [Diese Nachricht wurde von modeng am 16. Jan. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Arne Peters Ehrenmitglied V.I.P. h.c. CAD Dokumentation / Training / Programmierung / Datenbanken
Beiträge: 7321 Registriert: 05.2002.24 Solid Edge Seminarunterlagen Training, Beratung, Programmierung
|
erstellt am: 16. Jan. 2006 17:18 <-- editieren / zitieren --> Unities abgeben: Nur für Mampfred
@ Lars Guck doch erstmal in's Profil. Ein Student macht auch Sachen, die es schon gibt. Und wenn wir Glück haben, dann kann er es hinterher besser, als die, mit deren Resultaten wir und jetzt ab und an rumschlagen. @ Mampfred Mach doch erst mal einen Ablaufplan. Und erzähle, was genau passieren soll und mit welchen Anwendungen. Dann werden wir das schon Stück für Stück abarbeiten. Was studierst Du? ------------------ APeters@BSS-Online.de
[Diese Nachricht wurde von Arne Peters am 16. Jan. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mampfred Mitglied Student
Beiträge: 8 Registriert: 16.01.2006
|
erstellt am: 16. Jan. 2006 17:42 <-- editieren / zitieren --> Unities abgeben:
Also. Ich studiere Produktionstechnik. Leider hab ich keinen Plan von Makros. Es tut mir auch leid, dass ich euch verwirre. 1. Die Schraube hab ich aus den StandardParts von SolidEdge. Sie ist also schon fertig konstruiert! 2. Zum Ablauf: Der Bediener am Computer soll Gewindegröße und Länge eingeben können (Fenster). Wenn der Bediener dann z.B. auf einen Button klickt soll die entsprechende Schraube in Solid Edge geöffnet werden. 3. Das Ergebnis soll ungefähr so sein wie .../Custom/Bearing.par. Ich kann euch die Datei anhängen (so weit wie ich gekommen bin.) Danke. ------------------ MR Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mike Ulbrich Ehrenmitglied PLM-Specialist
Beiträge: 1560 Registriert: 11.04.2005 Teamcenter 12.2.0.2 SE2020 MP5
|
erstellt am: 16. Jan. 2006 21:03 <-- editieren / zitieren --> Unities abgeben: Nur für Mampfred
Nabbend, muss derjenige unbedingt die Gewindegröße (als Zahl) und die Länge als Zahl händisch eingeben, oder reicht es wenn er in einem Formular aus einem Katalog auswählen kann? Nehmen wir mal an er muss alles händisch eingeben, dann musst du auch Eingabefehler abfangen wie beispielsweise Gewinde M40 Länge 5mm. Gruß Mike Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mampfred Mitglied Student
Beiträge: 8 Registriert: 16.01.2006
|
erstellt am: 16. Jan. 2006 21:18 <-- editieren / zitieren --> Unities abgeben:
Ja. Es müsste schon eine Zahl eingegeben werden. Ich sehe aber generell das Problem mehr in den festen Werten der Gewindegröße oder der Längen bei Ausprägungen. Wenn ich z.B. den Außendurchmesser als Variable angebe, dann gibt er mir eine Fehlermeldung beim Gewinde. Aber du könntest mir vielleicht trotzdem verraten wie es ohne die Eingabe von Zahlen geht. Könnte mir eventuell weiterhelfen. ------------------ MR Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mike Ulbrich Ehrenmitglied PLM-Specialist
Beiträge: 1560 Registriert: 11.04.2005 Teamcenter 12.2.0.2 SE2020 MP5
|
erstellt am: 16. Jan. 2006 22:31 <-- editieren / zitieren --> Unities abgeben: Nur für Mampfred
Nabbend, die Zahlen stehen einfach schon alle in der Exceltabelle drin, für alle Schrauben die du haben willst. Ein kleines Tool untersucht anhand der Verknüpfung die das Teil zur Exceltabelle hat wieviel verschiedene Varianten der Schraube mit deinen Variablen konstruiert werden können und fragt dich in SE Welche Schraube oder Schrauben er am Stück für dich generieren und wegspeichern soll. Die Eingabemaske ist ähnlich der Stücklistenmaske zu Spaltenauswahl. Links steht was alles generiert werden kann und rechts die die du generiert haben willst. Ich habe sowas ähnliches auf meinem alten Rechner. Den fahre ich morgen mal hoch und schau mal obs noch geht. Allerdings müssen wir dann die Exceltabelle etwas "eleganter" gestalten Du kannst ja wenn dich die Zeit drängt hier im Forum schon mal nach Threads von Lemurian suchen die mit Excel zu tun haben. Unter dem Namen habe ich vor etwas über einem Jahr die sehr hilfsbereite SE Comunity hier zu diesem Problem befragt Gruß Mike [Diese Nachricht wurde von Mike Ulbrich am 16. Jan. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mike Ulbrich Ehrenmitglied PLM-Specialist
Beiträge: 1560 Registriert: 11.04.2005 Teamcenter 12.2.0.2 SE2020 MP5
|
erstellt am: 17. Jan. 2006 11:18 <-- editieren / zitieren --> Unities abgeben: Nur für Mampfred
Hallo, erst mal das positive, das makro geht noch für Baugruppen. Bei einzelteilen, so wie du es brauchst bin ich auf ein Problem gestoßen. (richtig) Die Baugruppe hat eine Verknüpfung zur Exceltabelle. Versuche ich die "Formula" Eigenschaft einer Variable auszulesen die die Excelverknüpfung enthält, liest er mir den Verknüpfungsstring aus. So soll es sein. (falsch?) Das Einzelteil hat eine Verknüpfung zur Exceltabelle. Versuche ich die "Formula" Eigenschaft einer Variable auszulesen die die Excelverknüpfung enthält, liest er mir statt dessen den String für die "Name" Eigenschaft aus wärend mir die Objektüberwachung für die "Name" Eigenschaft einen Nullstring anzeigt. Kann das jemand nachvollziehen? Gruß Mike [Diese Nachricht wurde von Mike Ulbrich am 17. Jan. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mampfred Mitglied Student
Beiträge: 8 Registriert: 16.01.2006
|
erstellt am: 17. Jan. 2006 11:20 <-- editieren / zitieren --> Unities abgeben:
|
Arne Peters Ehrenmitglied V.I.P. h.c. CAD Dokumentation / Training / Programmierung / Datenbanken
Beiträge: 7321 Registriert: 05.2002.24 Solid Edge Seminarunterlagen Training, Beratung, Programmierung
|
erstellt am: 17. Jan. 2006 11:29 <-- editieren / zitieren --> Unities abgeben: Nur für Mampfred
1. Für die Auswahl könnte man doch eine Drop-Down-Liste machen. In Excel könnte man das doch mit Hilfe der Formularfelder prima machen. Das sollte auch ohne Programmierung gehen. 2. Das mit dem Gewinde ist gemein, weil das nicht so einfach über die Variablentabelle anzusprechen ist. Aber da weiß ich im Moment auch keine Lösung. Hab ich noch nicht gemacht. ------------------ APeters@BSS-Online.de
[Diese Nachricht wurde von Arne Peters am 17. Jan. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mike Ulbrich Ehrenmitglied PLM-Specialist
Beiträge: 1560 Registriert: 11.04.2005 Teamcenter 12.2.0.2 SE2020 MP5
|
erstellt am: 17. Jan. 2006 11:42 <-- editieren / zitieren --> Unities abgeben: Nur für Mampfred
|
Mampfred Mitglied Student
Beiträge: 8 Registriert: 16.01.2006
|
erstellt am: 17. Jan. 2006 11:57 <-- editieren / zitieren --> Unities abgeben:
|
BJ Mitglied PLM System Administrator
Beiträge: 488 Registriert: 20.12.2002
|
erstellt am: 17. Jan. 2006 13:09 <-- editieren / zitieren --> Unities abgeben: Nur für Mampfred
Mit der Methode "ThreadDataByDescription" kannst du die Gewinde einfach erzeugen, vorrausgesetzt diese sind in der Holes.txt definiert. '**** Gewindebohrungen objHole = objSEDoc.Models(1).Holes(1) objHole.HoleData.ThreadDataByDescription = "M6x1" '**** Aussengewinde objThread = objSEDoc.Models(1).Threads(1) objThread.HoleData.ThreadDataByDescription = "M6x1" Gruß, BJ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mampfred Mitglied Student
Beiträge: 8 Registriert: 16.01.2006
|
erstellt am: 17. Jan. 2006 13:22 <-- editieren / zitieren --> Unities abgeben:
Danke. Das sagt mir jetzt aber nicht wirklich was. Ich weiß, dass alle Gewinde irgendwie in einer Hole.txt-Datei hinterlegt sind. Erzeugen kann ich das Gewinde ja, aber wenn ich jetzt den Außendurchmesser als Variable habe und ich eine Variante erzeuge, welche nicht mit dem ursprünglich konstruierten Gewindegröße übereinstimmt dann bekomme ich eine Fehlermeldung und das Gewinde wird nicht angezeigt. ------------------ MR Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mike Ulbrich Ehrenmitglied PLM-Specialist
Beiträge: 1560 Registriert: 11.04.2005 Teamcenter 12.2.0.2 SE2020 MP5
|
erstellt am: 17. Jan. 2006 13:43 <-- editieren / zitieren --> Unities abgeben: Nur für Mampfred
Hallo, jep und das könntest du dann mit den BJ geposteten Funktionen in vb korrigieren. Aber das ist nicht ohne. Da ist es mit bisl "If then else" nicht getan um mal wieder ein Wortspiel zu vermeiden Gruß Mike Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
modeng Ehrenmitglied V.I.P. h.c.
Beiträge: 7061 Registriert: 10.12.2003
|
erstellt am: 17. Jan. 2006 14:31 <-- editieren / zitieren --> Unities abgeben: Nur für Mampfred
|
BJ Mitglied PLM System Administrator
Beiträge: 488 Registriert: 20.12.2002
|
erstellt am: 17. Jan. 2006 14:35 <-- editieren / zitieren --> Unities abgeben: Nur für Mampfred
|
modeng Ehrenmitglied V.I.P. h.c.
Beiträge: 7061 Registriert: 10.12.2003
|
erstellt am: 17. Jan. 2006 14:53 <-- editieren / zitieren --> Unities abgeben: Nur für Mampfred
|
BJ Mitglied PLM System Administrator
Beiträge: 488 Registriert: 20.12.2002
|
erstellt am: 17. Jan. 2006 15:09 <-- editieren / zitieren --> Unities abgeben: Nur für Mampfred
|
WolfiSbg Mitglied
Beiträge: 103 Registriert: 10.03.2003
|
erstellt am: 17. Jan. 2006 15:26 <-- editieren / zitieren --> Unities abgeben: Nur für Mampfred
Zitat: Original erstellt von modeng:
... das Dumme ist nur<objHoleData>.ThreadDataByDescription = <string> setzt keine Fehlerbedingung wenn nicht gefunden ...
If <objHoleData>.Parent.Status = igFeatureFailed Then.......
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
modeng Ehrenmitglied V.I.P. h.c.
Beiträge: 7061 Registriert: 10.12.2003
|
erstellt am: 17. Jan. 2006 15:53 <-- editieren / zitieren --> Unities abgeben: Nur für Mampfred
Moin, ist bekannt (siehe auch BJ) aber etwas ungenau genauer ist: if <objDoc>.Models(1).Threads(1).Status <> igFeatureOK then (hier reicht Threads(1) da nur eins vorhanden) modeng [Diese Nachricht wurde von modeng am 17. Jan. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mampfred Mitglied Student
Beiträge: 8 Registriert: 16.01.2006
|
erstellt am: 17. Jan. 2006 20:28 <-- editieren / zitieren --> Unities abgeben:
|