| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Creo |
| |
 | Club Car gewinnt mit Creo Simulation Live, eine Pressemitteilung
|
Autor
|
Thema: unterschiedliche Teile mit gleichem Namen finden/vermeiden (2103 mal gelesen)
|
ThHauck Mitglied

 Beiträge: 12 Registriert: 01.03.2011
|
erstellt am: 01. Mrz. 2011 12:18 <-- editieren / zitieren --> Unities abgeben:         
Hallo erst mal, mein Name ist Thomas Hauck und ich betreue die Schnittstelle von unserem CAD-System zur Zeit OneSpaceM. 17 und dem von mir entwickelten ERP-System. Mittels dem "Baum schreiben" in der Strukturliste kann eine komplexe Stückliste auslesen und ins ERP importieren. Die Zuordnung erfolgt über die Benennung des Teils z.B. 1017°xyz. Nun kann es aber passieren, dass der Konstrukteur die 1017°xyz als Vorlage zu einem neuen Teil kopiert und vergisst die Benennung zu ändern. (Ebenso bei Baugruppen) Ich extrahiere die 1017 um damit eine Teilenummer zu erhalten. Habe also damit gleich benannte Teile/Baugruppen die sich unterscheiden :-). Wie kann man so etwas vermeiden bzw. automatisch prüfen lassen. Mein Ansatz war den Baum mittels der Lisp "sd_str_br_print_name.lsp" mit den Volumeneigenschaften zu schreiben.
(http://osd.cad.de/downloads/sd_str_br_print_name.lsp) Dann habe ich versucht die Volumen zu vergleichen, also gleiche Benennung aber unterschiedliche Volumen. Funkt. auch ansatzweise bei den Einzelteilen. Nur leider schreibt diese Lisp mir kein Volumen zu den Baugruppen und ich habe nicht rausgefunden wie ich diese dazu bringe. Hat ihr jemand eine Hilfe für mich wie ich auch das Volumen für die Baugruppen schreiben kann bzw. einen anderen Ansatz für mein Problem. Danke und mit freundlichen Grüßen Thomas Hauck Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Walter Geppert Moderator Frank und Frei
     

 Beiträge: 2166 Registriert: 12.12.2000 Konstruktion von Sondermaschinen, Montageautomaten, Meß- und Prüfeinrichtungen, Vorrichtungen und Produktentwicklung mit Creo Elements/Direct Modeling 20.6, AdvancedDesign, Surfacing, Simulate, SolidPower, ModelManager auf HP ZBook Fury 16 G9, Windows 10 Pro 64
|
erstellt am: 01. Mrz. 2011 13:21 <-- editieren / zitieren --> Unities abgeben:          Nur für ThHauck
|
der_Wolfgang Moderator Tastenhauer
     
 Beiträge: 2296 Registriert: 3.20. ● PE60+80@home ● W10 Pro Build10.0.19045.5737 ● Drafting V17~V20.7@job ● Modeling V17~V20.7@job ● Windchill 12.1.2.6@job ● UWGM Client 13.0.0.1@job ● Taschenrechner ● Stift+Zettel V8.42
|
erstellt am: 02. Mrz. 2011 19:21 <-- editieren / zitieren --> Unities abgeben:          Nur für ThHauck
|
clausb Ehrenmitglied V.I.P. h.c.
     
 Beiträge: 2914 Registriert: 20.12.2000 Ich schreibe das hier in meiner Freizeit und spreche weder für meinen Arbeitgeber noch für andere Firmen. Mehr Unsinn von mir unter clausbrod.de.
|
erstellt am: 03. Mrz. 2011 08:55 <-- editieren / zitieren --> Unities abgeben:          Nur für ThHauck
|
ThHauck Mitglied

 Beiträge: 12 Registriert: 01.03.2011
|
erstellt am: 03. Mrz. 2011 12:46 <-- editieren / zitieren --> Unities abgeben:         
Danke erst mal für die Antworten. Den ModelM. haben wir nicht im Einsatz, mit dem wäre es sicher leichter die Organisation von den Teilen zu händeln. Eine Einführung ist mir im Augenblick ein zu großer Schritt. Ich werde jetzt mal versuchen die lsp zum Erweitern der Baumstrukturausgabe zu verändern, dass mir das Volumen bzw. die ID mit ausgegeben wird. Wäre ja ein Ansatz die interne ID und den Namen zu vergleichen. (Gibt es denn ohne Modellmanager eine eindeutige ID?) Wenn ich nicht weiterkomme melde ich mich noch mal. Bzw. gebe auch ein Feedback wenn gelungen. Thomas Hauck Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
chris-as Mitglied

 Beiträge: 82 Registriert: 10.07.2007 Creo Elements/Direct, Version 18 HP Elitebook 8740w Windows 7
|
erstellt am: 03. Mrz. 2011 13:43 <-- editieren / zitieren --> Unities abgeben:          Nur für ThHauck
Also, ich finde der Ansatz über den Teilename führt zu einem "Irrweg". Ebenso der Volumenvergleich. Die eindeutige Idendifikation der 3D-Modelle ist aus meiner Sicht nur über die Contents-SYS-ID möglich. Wie wäre denn der Ansatz Annotation-STL-Tabelle --> CSL --> ERP? mfg chris-as Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Walter Geppert Moderator Frank und Frei
     

 Beiträge: 2166 Registriert: 12.12.2000
|
erstellt am: 03. Mrz. 2011 15:04 <-- editieren / zitieren --> Unities abgeben:          Nur für ThHauck
|
ThHauck Mitglied

 Beiträge: 12 Registriert: 01.03.2011
|
erstellt am: 03. Mrz. 2011 15:08 <-- editieren / zitieren --> Unities abgeben:         
Hallo, über das Volumen zu gehen ist sicher nur eine beschränkte Möglichkeit. (was wir mit dem Test gefunden haben sind gleich konstruierte Teile mit unterschiedlichen Teilenummern, also Doppelkonstruktionen, aber nur Nebeneffekt) Da ich mit der Programmsprache OneSpace recht unerfahren bin war ich an die SysId's nicht so recht rangekommen. Worin besteht denn eigendlich der Unterschied zwischen der Contents-SYS-ID und sd-inq-obj-sysid? Ich vermute bei der sd-inq-obj-sysid ist der Pfad mit berücksichtigt? Mein nächster Versuch ist eigentlich beim Strukturbaum schreiben die Contents-SYS-ID mit auszugeben dann kann ich vor dem Import einen Abgleich fahre mit: gleiche Teilnr aber untersch. ID somit müsste ich die falsch benannten Teile finden! Ist halt eine mehrstufige Stücklistenauflösung wo ich über die Baumstruktur sehr gut diese ins ERP bekomme. Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThHauck Mitglied

 Beiträge: 12 Registriert: 01.03.2011
|
erstellt am: 03. Mrz. 2011 16:09 <-- editieren / zitieren --> Unities abgeben:         
Bin es gleich noch mal: Habe die lsp von Walter mal vergewaltigt bekomme aber leider keine ID ausgeben? Hier mal der Text: Code:
------------------------------------------------------------------------- ; ---------------------------------------------------------------------------------------- ; Structure Browser ADD ON ; Copyright der_Wolfgang@Froum@Cad.de 06.sep.2007 ; enhance the info printed with WRITE tree function inside the structure browser ; in this case a CVS format is choosen to import the contents into a spreadsheet ; OSD V14.xx and newer (tested up to V15.50) ; ----------------------------------------------------------------------------------------(in-package :my-tools) (use-package li) (defun cvs-print-tree (node name) (declare (ignore name)) (let* ((objname (BrowserNode-objPname node)) (path (BrowserNode-objPath node)) (obj (oli:sd-pathname-to-obj path)) ) (if (sd-string= "/" (BrowserNode-objPath node)) ",Name,Pfad,ID" ;; == CSV header line ;; else (if (and (sd-inq-part-p obj) (not (sd-inq-empty-part-p obj))) (progn (format nil ",~A,~A,~A" objname path (sd-inq-obj-contents-name obj) ) ) ;; else (format nil ",~A,~A,~A" objname path 4711 ) ) ) ;; end if root ) ) (sd-browser-add-interrogator "parcel-gbrowser" :interrogator-type :tree-print-name :interrogator-func 'cvs-print-tree) ;; here a very simple variant (when NIL (defun my-print-tree (node name) (declare (ignore name)) (format nil "~A -- ~A" (BrowserNode-objPname node) (or (sd-inq-obj-contents-name (sd-pathname-to-obj (BrowserNode-objPath node))) "(model name missing)") ) ) (sd-browser-add-interrogator "parcel-gbrowser" :interrogator-type :tree-print-name :interrogator-func 'my-print-tree) )
-------------------------------------------------------------------------Die "4711" habe ich nur mal zu Testzwecken eingetragen. Ich müsste oben bei der Prüfung If.... sicher auch noch was ändern. Dort muss er meiner Meinung nach bei den Zusammenfassungen "4567°xxxxx (5)" sicher zur Else springen weil da ja möglicherweise auch keine ID dahinter steckt. Daran scheitert es aber auch mit meinen Kenntnissen. Den Baum schreibt er mit der veränderten lsp allerdings entweder die "4711" aufgrund des Else-Sprungs oder aber ein NIL. Bitte um Hilfe. Thomas
[Diese Nachricht wurde von ThHauck am 08. Mrz. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
3D-Papst Moderator Teamleiter
       

 Beiträge: 3240 Registriert: 11.06.2001 Herr, stärke mich in Geduld, aber ZACK ZACK!!
|
erstellt am: 03. Mrz. 2011 16:18 <-- editieren / zitieren --> Unities abgeben:          Nur für ThHauck
|
Walter Geppert Moderator Frank und Frei
     

 Beiträge: 2166 Registriert: 12.12.2000
|
erstellt am: 03. Mrz. 2011 19:22 <-- editieren / zitieren --> Unities abgeben:          Nur für ThHauck
|
der_Wolfgang Moderator Tastenhauer
     
 Beiträge: 2296 Registriert: 3.20. ● PE60+80@home ● W10 Pro Build10.0.19045.5737 ● Drafting V17~V20.7@job ● Modeling V17~V20.7@job ● Windchill 12.1.2.6@job ● UWGM Client 13.0.0.1@job ● Taschenrechner ● Stift+Zettel V8.42
|
erstellt am: 03. Mrz. 2011 19:38 <-- editieren / zitieren --> Unities abgeben:          Nur für ThHauck
Zitat: Original erstellt von ThHauck: Den Baum schreibt er mit der veränderten lsp allerdings entweder die "4711" aufgrund des Else-Sprungs oder aber ein NIL.
Da verwexelst Du was! Du schreibst ja den content-name raus! Du nutzt: (sd-inq-obj-contents-name obj) empfohlen ward dir: (sd-inq-obj-sysid obj) (sd-inq-obj-contents-sysid obj) zum einfuegen:
Code:
(format nil ",~A,~A,~A,~A,~A" objname path (sd-inq-obj-contents-name obj) (sd-inq-obj-sysid obj) (sd-inq-obj-contents-sysid obj) )
wegen (sd-inq-part-p obj) werden dir nur TEILE ausgeben, keine Baugruppen --------------- edit1: Die Integration Kit Hilfe, wo diese Funkionen erklaert sind, kennst Du aber schon, oder? Noch ein TIP: hier fuers Forum: wenn du source code einfuegst nutzte bitte die UBB formatierung, in diesem Fall [ code ] ..... [/ code ] (jeweils ohne die Leerzeichen), das kannst Du auch in deinem obigen Beitrage noch nachträglich einfügen.
--------------- edit2: Hallo Walter da hast Du wohl auf 'send' gedrückt während ich noch editiert habe. Egal, war der selbe Strick an dem wir zogen. [Diese Nachricht wurde von der_Wolfgang am 03. Mrz. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
der_Wolfgang Moderator Tastenhauer
     
 Beiträge: 2296 Registriert: 3.20. ● PE60+80@home ● W10 Pro Build10.0.19045.5737 ● Drafting V17~V20.7@job ● Modeling V17~V20.7@job ● Windchill 12.1.2.6@job ● UWGM Client 13.0.0.1@job ● Taschenrechner ● Stift+Zettel V8.42
|
erstellt am: 03. Mrz. 2011 19:55 <-- editieren / zitieren --> Unities abgeben:          Nur für ThHauck
|
Walter Geppert Moderator Frank und Frei
     

 Beiträge: 2166 Registriert: 12.12.2000
|
erstellt am: 04. Mrz. 2011 08:47 <-- editieren / zitieren --> Unities abgeben:          Nur für ThHauck
Nachdem wir zunächst so lieb geholfen haben, muss ich jetzt zurück zu den harten Tatsachen: Ohne den ModelManager oder ein ähnlich komplexes Produkt kriegst du trotzdem nix in den Griff. Mit den gezeigten Funktionen und dem Wissen uber die SysIDs kannst du bestenfalls ein konkretes Projekt in einer Package-Datei zu einem Zeitpunkt beherrschen. Jedes weitere Vorkommen eines Objekts mit gleichen CSID in einer anderen Baugruppe / zu einem anderen Zeitpunkt kann eine andere Version bedeuten! Hier das Rad neu erfinden zu wollen, wird entweder abenteuerlich teuer und zeitaufwändig oder geht irgendwann in die Hose. ------------------ meine LISP-Makros sind auf osd.cad.de Disclaimer Grüße aus Wien Walter DC4 Technisches Büro GmbH Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThHauck Mitglied

 Beiträge: 12 Registriert: 01.03.2011
|
erstellt am: 04. Mrz. 2011 09:16 <-- editieren / zitieren --> Unities abgeben:         
Hallo und Danke erst mal, mit Eurer Hilfe bekomme ich die Id's rausgelesen und kann damit beim Import die Baugruppe zumindest selbst durchprüfen. Gestern war es wahrscheinlich ein bischen zu stressig daher die eigentl. (schwachen) Fehler mit dem falschen Befehlseintrag und der falschen Zuordnung des Codes. (is ja peinlich, aber wenn man zu viel auf einmal erledigen will ist irgendwann Schluss) Übergreifend die Prüfung über andere Baugruppen zu machen, ist so sicher nicht zu lösen aber auch in der BG nützt es mir schon richtig viel. ModellManager werde ich im Auge behalten. Wir sind eigentlich mehr im Bereich der Lohnfertigung (Blechbearbeitung) zu Hause wo es bisher darum ging relative einfache Kundendaten (keine größeren Stücklistenstrukturen) für die Laser/Kantbearbeitung aufzuarbeiten um einfach und fehlerfreier die CAM-Programme rauszubekommen. Da wäre der Modellm. sicher wie mit Kanonen auf Spatzen. Ab und zu kommt aber dann doch eine größerer richtige Konstruktion auf uns zu die wir für einen Kunden durchführen bei der der ModellM. sicher Sinn macht. (Das nur mal kurz zum Hintergrund) Deinen Hinweis Walter nehme ich ernst, dass es irgenwo nur eine Krux ist! Danke auch zu den Hinweisen zur Integration Kit Hilfe, kannte ich bisher noch nicht. Ich werde mal auf Suche gehen. Das es Lisp ist, ist mir bekannt habe allerdings bisher nicht viel deutsche Hilfe dazu gefunden. Viele Grüße Thomas Hauck
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Walter Geppert Moderator Frank und Frei
     

 Beiträge: 2166 Registriert: 12.12.2000 Konstruktion von Sondermaschinen, Montageautomaten, Meß- und Prüfeinrichtungen, Vorrichtungen und Produktentwicklung mit Creo Elements/Direct Modeling 20.6, AdvancedDesign, Surfacing, Simulate, SolidPower, ModelManager auf HP ZBook Fury 16 G9, Windows 10 Pro 64
|
erstellt am: 04. Mrz. 2011 09:43 <-- editieren / zitieren --> Unities abgeben:          Nur für ThHauck
Zitat: Original erstellt von ThHauck: ...habe allerdings bisher nicht viel deutsche Hilfe dazu gefunden.
Der IKit ist auch nur in Englisch. Als deutsches Grundlagenbuch hat mir Paul Graham ANSI Common Lisp ISBN 3-8272-9543-2 geholfen Online sehe ich da immer wieder nach Nachdem die universelle EDV-Sprache englisch ist und alle? Programmiersprachen eine englisch-basierte Syntax haben, finde ich gleichsprachige Handbücher eigentlich sogar praktischer als seltsam übersetzte ------------------ meine LISP-Makros sind auf osd.cad.de Disclaimer Grüße aus Wien Walter DC4 Technisches Büro GmbH Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Walter Geppert Moderator Frank und Frei
     

 Beiträge: 2166 Registriert: 12.12.2000
|
erstellt am: 04. Mrz. 2011 10:48 <-- editieren / zitieren --> Unities abgeben:          Nur für ThHauck
|
ThHauck Mitglied

 Beiträge: 12 Registriert: 01.03.2011
|
erstellt am: 08. Mrz. 2011 18:43 <-- editieren / zitieren --> Unities abgeben:         
Hallo mal wieder, ich kämpfe noch. Ich habe zwar versucht (auch länger) über das Integrationskit mein Problem zu lösen aber ohne Erfolg. Wie kann ich denn abprüfen ob mein übergebenes Objekt ein Pseudo Ordner für Exemplare ist oder nicht. Also ähnlich der Prüfung auf Behälter "sd-inq-assembly-p obj" was mir dann true oder nil zurückgibt! Wie könnte ich die Anzahl der enthaltenen Exemplare ermitteln wenn es ein Pseudo-Ordner ist. Danke erst mal Thomas
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |