Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  PTC Creo Elements/Direct Modeling
  STEP-Export

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Creo
Autor Thema:  STEP-Export (4019 / mal gelesen)
StephanWörz
Mitglied
Maschinenbautechniker


Sehen Sie sich das Profil von StephanWörz an!   Senden Sie eine Private Message an StephanWörz  Schreiben Sie einen Gästebucheintrag für StephanWörz

Beiträge: 770
Registriert: 11.10.2000

CEDM V20
SolidPower V20
ModelSearch
KeyShot 7
CadDoctor V4.2
SWX 2008
PHOENIX V10

erstellt am: 21. Feb. 2018 10:40    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


SD_PrepareForRendering.lsp


StepExport.JPG

 
Guten Tag,

vielleicht findet sich jemand der mich in Sachen STEP-Export etwas aufschlauen möchte.

Folgendes Szenario:

Eine Baugruppe soll im stp-Format aus Modeling Exportiert werden.
Das klappt ja soweit auch Problemlos.
Nun ist es aber so dass beim Export wohl die Teilenamen beschnitten und z.T. nicht übernommen werden.

Beim Export mit der Option "Direkt" klappt das überhaupt nicht (...aber hier haben wir keine Probleme mit großen Baugruppen).

Beim Export mit der Option "Granite" werden zwar die Teilenamen auch abgeschnitten, aber immerhin 1:1 übernommen bevor sie dann beschnitten werden (...klappt mit großen Baugruppen nicht immer).


Fragen:
Gibt es eine Einstellung wo das Beschneiden der Teilenamen unterdrückt?
Gibt es eine Einstellung um das übernehmen der Teilnamen zu erzwingen?

Hintergrund:
Ich Durchsuche mittels eines LISP die komplette Struktur einer Baugruppe und setzte anhand der Oberflächen- oder Werkstoffattribute (...wenn das nicht greift wird die Dichte, Teilefarbe, Teilebenennung ausgewertet) ein PRÄFIX welches dann in Keyshot über eine Materialvorlage anhand des Teilenamens (...aus dem STEP) die Materialen zuweist.

------------------
...viele Grüße
Stephan

Jetzt mit (unfertigem) LISP (...vielleicht interessiert sich ja jemand dafür)

[Diese Nachricht wurde von StephanWörz am 21. Feb. 2018 editiert.]

[Diese Nachricht wurde von StephanWörz am 21. Feb. 2018 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

lix b
Mitglied
Konstrukteur, CAD-Admin


Sehen Sie sich das Profil von lix b an!   Senden Sie eine Private Message an lix b  Schreiben Sie einen Gästebucheintrag für lix b

Beiträge: 279
Registriert: 03.10.2014

Creo Elements / Direct Modeling 20.2.1.0
Creo Elements / Direct Model Manager 20.2.1.0
Creo 5.0.2.0 Simulate
<P>Notepad++
Win 10

erstellt am: 21. Feb. 2018 13:27    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für StephanWörz 10 Unities + Antwort hilfreich

Hallo Stephan,

ich habe das eben mal getestet. Wenn ich eine BG als STP exportiere und wieder importiere wird der komplette Instanzname beibehalten, teilweise 50 und mehr Zeichen.

Getestet mit der v19 M020 mittels STP Export "direkt".

Generell interessiere ich mich sehr für dein Problem, weil ich Ähnliches vorgehabt habe, aber leider zur Zeit mangels freier Kapazität das Thema Keyshot "noch" auf Eis legen muss.

------------------
Viele Grüße
Felix

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

StephanWörz
Mitglied
Maschinenbautechniker


Sehen Sie sich das Profil von StephanWörz an!   Senden Sie eine Private Message an StephanWörz  Schreiben Sie einen Gästebucheintrag für StephanWörz

Beiträge: 770
Registriert: 11.10.2000

CEDM V20
SolidPower V20
ModelSearch
KeyShot 7
CadDoctor V4.2
SWX 2008
PHOENIX V10

erstellt am: 21. Feb. 2018 14:22    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hey Felix,

Danke für die Info!

Wir haben die V20 im Einsatz (?)

...würdest Du mir mal ein Bildchen von Deinen Export-Einstellungen überlassen?

------------------
...viele Grüße
Stephan

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

der_Wolfgang
Ehrenmitglied V.I.P. h.c.
Tastenhauer


Sehen Sie sich das Profil von der_Wolfgang an!   Senden Sie eine Private Message an der_Wolfgang  Schreiben Sie einen Gästebucheintrag für der_Wolfgang

Beiträge: 2017
Registriert: 3.20.

● PE6+8@home
● W10 Pro Build19044.2364
● Drafting V20.1+4
● Modeling V20.1+4

erstellt am: 21. Feb. 2018 14:22    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für StephanWörz 10 Unities + Antwort hilfreich

Hier STEPped der Bär, ach ne, der Stephan. 


kleine Hinweise unabhängig von dem Namens Problem:

in CheckReserverdFaceColors:

Code:
(equal (sd-inq-face-color FaceToCheck)    (gpnt3d 0.0                  0.0                  0.50196081399917603 ))

Hatten wird erst kuerzlich, Vergleich von floating-point-number auf equal: Du faehrst ein hohes Risiko das das so klappt.
Ersetze hier equal durch die IKIT Funktion SD-VEC-EQUAL-P

ein (let (thisFaceColor (sd-inq-face-color FaceToCheck)) .. .  taete der Performance gut, denn u.U. erfragst du die Farbe 14 mal. EINmal reicht


in AssignMaterialToSurface:
der 42-fache (if... )    schreit nach einer (cond ..  ition.

Ich taete die Funktion eher get-MaterialPrefix-by-Surface nennen, die den prefix  zurueckliefert.  Und NICHT eine globale Variable setzen!


in AssignMaterialToMaterial:
der 23-fache (if... )    schreit nach einer (cond ..  ition.

Ich taete die Funktion eher get-MaterialPrefix-by-Material nennen, die den prefix  zurueckliefert.  Und NICHT eine globale Variable setzen!


CheckDensity dito (sd-vec-equal-p)
AssignMaterialToPartColor dito (sd-vec-equal-p)
AssignMaterialToPartName -> eine hybsche CONDition hast du da! Aber auch hier: lieber ne Funktion mit Rueckgabewert
AssignMaterialToAssyName -> eine hybsche CONDition hast du da! Aber auch hier: lieber ne Funktion mit Rueckgabewert

TIP: mach mal (testweise) nen pprint um die cond-kunstruktion.


-----------------------
PS: ich habe zuerst 4096 TABS durch blanks ersetzt, dann fand ich es lesbarer. 

------------------
Firefox ESRJava Forum Stuttgart JUGS ● OSD Hilfeseite (de) / help page (en)NotePad++BuFDi

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

der_Wolfgang
Ehrenmitglied V.I.P. h.c.
Tastenhauer


Sehen Sie sich das Profil von der_Wolfgang an!   Senden Sie eine Private Message an der_Wolfgang  Schreiben Sie einen Gästebucheintrag für der_Wolfgang

Beiträge: 2017
Registriert: 3.20.

● PE6+8@home
● W10 Pro Build19044.2364
● Drafting V20.1+4
● Modeling V20.1+4

erstellt am: 21. Feb. 2018 15:09    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für StephanWörz 10 Unities + Antwort hilfreich


get-Material-by-PartNamePattern.lsp

 
Hallo Stephan,

anbei mal eine Variante der Funktion AssignMaterialToPartName wobei Daten und Funktionalitaet getrennt sind.

Die Daten sind in einer variable ausgelagert. Das ist eine einfache String-String-Liste.

Der eigentliche LISP code reduziert sich dann auf wenige Zeilen

Code:
(defun get-Material-by-PartNamePattern (Teil)
  (let ((Teilename (sd-inq-obj-basename Teil)))
    (dolist (a-mat-PNP *material-by-partname*)
      (when (sd-string-match-pattern-p
               (car a-mat-PNP) Teilename)
        (return (cadr a-mat-PNP)))
    )
    "NONE" ;; absolute fallback fallback :-D
   );;let
  )

a) die Daten sind einfacher zu pflegen
b) wenn Du nun "ploetzlich" case-insitive chechen sollst, brauchst Du nur EINE Zeile anpassen.

Statt dem fallback "NONE" haette ich eher NIL genommen. Dann waere der FolgeSchritt einfacher:

Code:
(setq Prefix (get-Material-by-PartNamePattern Teil))
(unless Prefix (setq Prefix (get-Material-by- ....)))

oder ganz elegant (by fallback = NIL):
Code:
(setq Prefix (or (get-Material-by-PartNamePattern Teil)
                 (get-Material-by-SurfaceName Oberflache)
                 (get-Material-by-DingsBums ebendas)))

Nur eine kleine Anregung.  (code untested)
------------------
Fehler im LispCode korrigiert (siehe auch hier)
------------------
Firefox ESRJava Forum Stuttgart JUGS ● OSD Hilfeseite (de) / help page (en)NotePad++BuFDi

[Diese Nachricht wurde von der_Wolfgang am 05. Mrz. 2018 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

StephanWörz
Mitglied
Maschinenbautechniker


Sehen Sie sich das Profil von StephanWörz an!   Senden Sie eine Private Message an StephanWörz  Schreiben Sie einen Gästebucheintrag für StephanWörz

Beiträge: 770
Registriert: 11.10.2000

CEDM V20
SolidPower V20
ModelSearch
KeyShot 7
CadDoctor V4.2
SWX 2008
PHOENIX V10

erstellt am: 21. Feb. 2018 15:13    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Wolfgang,

vielen Dank fürs Korrekturlesen :-)

Ich werde versuchen Deine Tipps umzusetzen.

Ich trau  mich kaum das zu sagen  , aber das

Code:
(let (...))
hat sich mir noch nicht erschlossen  Alle lets in meinem Code sind gestohlen.


Zitat:
PS: ich habe zuerst 4096 TABS durch blanks ersetzt, dann fand ich es lesbarer

In meinem Notepad++ sah's astrein aus...

------------------
...viele Grüße
Stephan

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

lix b
Mitglied
Konstrukteur, CAD-Admin


Sehen Sie sich das Profil von lix b an!   Senden Sie eine Private Message an lix b  Schreiben Sie einen Gästebucheintrag für lix b

Beiträge: 279
Registriert: 03.10.2014

Creo Elements / Direct Modeling 20.2.1.0
Creo Elements / Direct Model Manager 20.2.1.0
Creo 5.0.2.0 Simulate
<P>Notepad++
Win 10

erstellt am: 21. Feb. 2018 15:46    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für StephanWörz 10 Unities + Antwort hilfreich


STP.JPG

 
So sieht ein Beispiel bei mir aus.

------------------
Viele Grüße
Felix

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

der_Wolfgang
Ehrenmitglied V.I.P. h.c.
Tastenhauer


Sehen Sie sich das Profil von der_Wolfgang an!   Senden Sie eine Private Message an der_Wolfgang  Schreiben Sie einen Gästebucheintrag für der_Wolfgang

Beiträge: 2017
Registriert: 3.20.

● PE6+8@home
● W10 Pro Build19044.2364
● Drafting V20.1+4
● Modeling V20.1+4

erstellt am: 21. Feb. 2018 18:32    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für StephanWörz 10 Unities + Antwort hilfreich


let_und_so.lsp

 
Zitat:
Original erstellt von StephanWörz:
Ich trau  mich kaum das zu sagen    , aber das
Code:
(let (...))
hat sich mir noch nicht erschlossen   

ohhh  Ohhh ,  OHHHHH   Das klingt nach 'Nachsitzen'.


Hmmm, sieht alles kompliziert aus fuer dich/euch, gehe ich mal davon aus.

============================

Ganz grob:
globale Variablen sind erstmal BAEH! :( solange man sie nicht gezielt einsetzt.

in einem sd-defdialog weisst Du wie man eine lokale dialog variable definierst

Code:
(sd-defdialog  ...
:variables
.....
(myhelper :initial-value 42)
(prefix   :initial-value "None")
(INeedHelp)
...

wie macht man das in einer Funktion? Mit einem LET

im einfachen Fall hat LET 2 Argumente (zwei "lisp formen")
1) eine Liste von variablen, jene sind nur innerhalb des let-blocks gueltig(!!!)
2) einen Block von Anweisungen, das ist ungefaehr das was wir meistens in einem (progn...) kapseln

In der Variablen liste stehen entweder einfache variablen, dessen Wert man dann spaeter setzt / liest. Oder man kann diesen variablen gleich einen Initialwert mitgeben.


Die unschoene Variante:

Code:
(defun unschoen ()
  (progn
    (setq INeedHelp (is-help-needed "Stephan"))  ;; we create a global variable and set its value
    (setq myhelper 42)     ; we create a global variable and set its value
    (setq prefix   "None") ; we create a global variable and set its value
    (mach-anderes-zeugs :radeldidum)
    (when INeedhelp
      (pprint myhelper)
      (display prefix)
      ) ;; end when
  ) ;; progn
) ;; end defun
Wir zeugen hier 3 global Variablen die von ueberall aus gelesen und(!) veraendert werden koennen. ->  Kontrollverlust plus u.U. Verwirrungspotential


Wir nutzen ein LET und schaffen uns eine Art Box in der die Variablen gueltig sind, und zwar NUR dort:

Code:
(defun schonGut ()
  (let (INeedHelp myhelper prefix)  ;; list of local variables
    (setq INeedHelp (is-help-needed "Stephan"))
    (setq myhelper 42)     ;; set initial value
    (setq prefix   "None")
    (mach-anderes-zeugs :radeldidum)
    (when INeedhelp
      (pprint myhelper)
      (display prefix)
      ) ;; end when
  ) ;; let
) ;; end defun
So gross war die Aenderung gar nicht!


Und jetzt mal mit Initialisierung

Code:
(defun schonBesser ()
  (let (INeedHelp         ;; without initial value
        (myhelper 42)     ;; with initial value
        (prefix   "None")
        ) ;; end local variable list
    (setq INeedHelp (is-help-needed "Stephan"))
    (mach-anderes-zeugs :radeldidum)
    (when INeedhelp
      (pprint myhelper)
      (display prefix)
      ) ;; end when
  ) ;; let
) ;; end defun
Mehr oder weniger ist das jeweils erste setq in's let-initial mit hinein gerutscht.


Aber dieser Inital-value.. das  kann auch ein (komplexer) Funktionsaufruf sein:

Code:
(defun naPrima ()
  (let ((INeedHelp (is-help-needed "Stephan")) ;; with initial value
        (myhelper 42)     ;; with initial value
        (prefix   "None")
        )
    (mach-anderes-zeugs :radeldidum)
    (when INeedhelp
      (pprint myhelper)
      (display prefix)
      ) ;; end when
  ) ;; let
) ;; end defun

Ich hoffe ich habe ein wenig erleuchtet. Ich muss mir dieses Posting mal bookmarken. Habe da so eine Idee. ;)

-------------------------------------
ein LET kann man ueberall gut verwenden

Code:
(when (is-help-needed "MiBr")
  (let ((listener "MiBr")
        (mode  :extended))
    (pprint "lisp lernen")
    (pprint "forum lesen")
    ;(sd-display-help listener mode)
    ))

LISP code anbei, damit es in Eurem NOTEPAD+++ bunt wird, und ihr mit einfachem Beispiel spielen koennt.

==============================================

nur am Rande:

Zitat:
In meinem Notepad++ sah's astrein aus...
Das glaube ich dir, haengt halt sehr davon ab, was Du als TAB Groesse eingestellt hast. Bei mir sind es 8 blanks.

------------------
EDIT Unterschiede in LispCode Schnipseln hervorgehoben /EDIT
------------------
Firefox ESRJava Forum Stuttgart JUGS ● OSD Hilfeseite (de) / help page (en)NotePad++BuFDi

[Diese Nachricht wurde von der_Wolfgang am 05. Mrz. 2018 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

StephanWörz
Mitglied
Maschinenbautechniker


Sehen Sie sich das Profil von StephanWörz an!   Senden Sie eine Private Message an StephanWörz  Schreiben Sie einen Gästebucheintrag für StephanWörz

Beiträge: 770
Registriert: 11.10.2000

CEDM V20
SolidPower V20
ModelSearch
KeyShot 7
CadDoctor V4.2
SWX 2008
PHOENIX V10

erstellt am: 22. Feb. 2018 17:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Zitat:
Ich hoffe ich habe ein wenig erleuchtet

...Auf jeden Fall!!

Vielen herzlichen Dank, jetzt ist Licht im let-Dunkel 

------------------
...viele Grüße
Stephan

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

StephanWörz
Mitglied
Maschinenbautechniker


Sehen Sie sich das Profil von StephanWörz an!   Senden Sie eine Private Message an StephanWörz  Schreiben Sie einen Gästebucheintrag für StephanWörz

Beiträge: 770
Registriert: 11.10.2000

CEDM V20
SolidPower V20
ModelSearch
KeyShot 7
CadDoctor V4.2
SWX 2008
PHOENIX V10

erstellt am: 02. Mrz. 2018 17:58    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


SD_PrepareForRendering.lsp


SD_PrepareForRendering_StringLists.lsp

 
Guten Morgen!

Nun habe ich mal einige Anregungen aufgegriffen und umgesetzt!

Zitat:
Ersetze hier equal durch die IKIT Funktion SD-VEC-EQUAL-P

>>> erledigt


Zitat:
ein (let (thisFaceColor (sd-inq-face-color FaceToCheck)) .. .  taete der Performance gut, denn u.U. erfragst du die Farbe 14 mal. EINmal reicht

>>> erledigt


Zitat:
Die Daten sind in einer Variable ausgelagert. Das ist eine einfache String-String-Liste.

>>> z.T. erledigt

Zitat:
Statt dem fallback "NONE" haette ich eher NIL genommen.

>>> erledigt


Frage: Die Funktion in der Stringlist.lsp oder doch lieber im Hauptcode definieren???

Ansonsten gehe ich jetzt einen etwas anderen Weg. Ich kralle mir die Objekte der 1. Ebene (sd-inq-obj-children) unterscheide zwischen Part & Bgr. und verarzte entsprechend. Ich habe noch versucht das Ganze zu vereinfachen. Läuft inzwischen recht flott...

Für weitere Anregungen bin ich natürlich offen...

Und noch eine allgemeine Frage: Ich finde es besser Funktionsnamen mit "_" zu trennen anstatt mit "-". Das hat den Vorteil dass ich mit einem Doppelklick den ganzen String markieren kann und sofort das weitere Vorkommen des Strings im Code gehighlighted bekomme. So springe schnell durch den Code...
Ist das gegen irgendwelche Festlegungen? ...oder gibt es Gründe für den Bindestrich die ich noch nicht erkannt habe??

Leider muss ich auch noch was arbeiten. Das geht hier nur schleppend weiter. Ich halt Euch aber auf dem Laufenden...


...wünsche ein schöööönes Wochenende.

------------------
...viele Grüße
Stephan

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

der_Wolfgang
Ehrenmitglied V.I.P. h.c.
Tastenhauer


Sehen Sie sich das Profil von der_Wolfgang an!   Senden Sie eine Private Message an der_Wolfgang  Schreiben Sie einen Gästebucheintrag für der_Wolfgang

Beiträge: 2017
Registriert: 3.20.

● PE6+8@home
● W10 Pro Build19044.2364
● Drafting V20.1+4
● Modeling V20.1+4

erstellt am: 02. Mrz. 2018 23:24    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für StephanWörz 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von StephanWörz:
Nun habe ich mal einige Anregungen aufgegriffen und umgesetzt!

Prima.  Um diese Un/Uhrzeit beantworte ich allerdings nur noch die einfachen Dinge.

Zitat:
Frage: Die Funktion in der Stringlist.lsp oder doch lieber im Hauptcode definieren???
Ich wuerde nur diese Listen in die eine LSP Datei machen. Dann kannst du die Datei auch mal getrost einem unbedarften Mitarbeiter in die Hand geben und sagen: "Klopf da mal noch die verbleibenden 142 Pattern rein" und dein Code ist sicher.

Code:
;; load corresponding data from same directory
(load (format nil "~A/SD_PrepareForRendering_StringLists" (directory-namestring *load-truename*)))
siehe auch da.


Zitat:
Ansonsten gehe ich jetzt einen etwas anderen Weg. Ich kralle mir die Objekte der 1. Ebene (sd-inq-obj-children) unterscheide zwischen Part & Bgr. und verarzte entsprechend.
Und diese Abarbeitung mit Hilfe deine Rekursion ist komisch IMHO. Du waehlst doch als "Quelle" ein Assembly aus. Also muesste der Einstieg (so wie du es jetzt programmier hast) in die Abarbeitung ein
Code:
:Ok-action '(progn
    ;;Optionen verarbeiten
    ;;...
    (ProcessAssy  Quelle)
  );end progn / ok-action
sein.. Warum benutzt fuer die oberste Ebene eine andere Verarbeitung als fuer jede darunter liegende Ebene? ;) <- color reduced smilie!


Zitat:
Ich finde es besser Funktionsnamen mit "_" zu trennen anstatt mit "-". Das hat den Vorteil dass ich mit einem Doppelklick den ganzen String markieren kann und sofort das weitere Vorkommen des Strings im Code gehighlighted bekomme.
Das ist eher Betriebsinterne Konvention wie du das haelst. Ich glaube ich habe damals das "-" zum Teil der Worte gemacht im Notepad++ und dem CoCreate-Lisp-Highlighter.

Bischen Konvention war auch das Namen/Keywords von ActionRoutinen/Dialogen eher mit"_" ausgestattet werden (also das was etwas mehr nach 'aussen' geht,z.b.Recorder file) und der 'normale' Lisp code dann die"-" nimmt, also auch die defuns.

Wichtiger ist das Du fuer Dich /in Deiner Firma es einheitlich ist.

Guts Nächtle   

------------------
Firefox ESRJava Forum Stuttgart JUGS ● OSD Hilfeseite (de) / help page (en)NotePad++BuFDi

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

StephanWörz
Mitglied
Maschinenbautechniker


Sehen Sie sich das Profil von StephanWörz an!   Senden Sie eine Private Message an StephanWörz  Schreiben Sie einen Gästebucheintrag für StephanWörz

Beiträge: 770
Registriert: 11.10.2000

CEDM V20
SolidPower V20
ModelSearch
KeyShot 7
CadDoctor V4.2
SWX 2008
PHOENIX V10

erstellt am: 05. Mrz. 2018 14:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

OK..., Danke, ich werde auch diese Anregungen einarbeiten und die fehlenden LETs noch hinzufügen!

Nun habe ich aber eine Frage zu folgendem CodeSchnipsel:

Code:
(defun get-MaterialPrefix-by-MaterialPattern (Material)
    (dolist (a-mat-PNP *material-by-material*)
;car = 1. Element einer Liste cadr = alles außer 1. Element einer Liste
      (when (sd-string-match-pattern-p (car a-mat-PNP)  Material (cadr a-mat-PNP))
    ;;THEN
          (return (cadr a-mat-PNP))
;;ELSE
  (return nil)      ;; absolute fallback fallback :-D
  );;when
    );;dolist
  );;get-MaterialPrefix-by-MaterialPattern

hier ist doch eigentlich 1 Parameter zuviel drin???

Code:
(sd-string-match-pattern-p (car a-mat-PNP)  Material (cadr a-mat-PNP))

Ich verstehe das Ganze nicht?? Ich interpretiere das so:
Ist das "Pattern" (car a-mat-PNP) in dem String Material drin?.
...was bringt das (cadr a-mat-PNP)???

------------------
...viele Grüße
Stephan

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

lix b
Mitglied
Konstrukteur, CAD-Admin


Sehen Sie sich das Profil von lix b an!   Senden Sie eine Private Message an lix b  Schreiben Sie einen Gästebucheintrag für lix b

Beiträge: 279
Registriert: 03.10.2014

Creo Elements / Direct Modeling 20.2.1.0
Creo Elements / Direct Model Manager 20.2.1.0
Creo 5.0.2.0 Simulate
<P>Notepad++
Win 10

erstellt am: 05. Mrz. 2018 14:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für StephanWörz 10 Unities + Antwort hilfreich

Hallo Stephan,

für mein Verständnis ist der 3. Parameter überflüssig und wird einfach ignoriert.

Aber deine Beschreibung für cadr ist falsch

cadr = (car (cdr x)) => also das 2. Element einer Liste, oder?

------------------
Viele Grüße
Felix

[Diese Nachricht wurde von lix b am 05. Mrz. 2018 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

StephanWörz
Mitglied
Maschinenbautechniker


Sehen Sie sich das Profil von StephanWörz an!   Senden Sie eine Private Message an StephanWörz  Schreiben Sie einen Gästebucheintrag für StephanWörz

Beiträge: 770
Registriert: 11.10.2000

CEDM V20
SolidPower V20
ModelSearch
KeyShot 7
CadDoctor V4.2
SWX 2008
PHOENIX V10

erstellt am: 05. Mrz. 2018 15:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Felix!

Zitat:
Aber deine Beschreibung für cadr ist falsch

cadr = (car (cdr x)) => also das 2. Element einer Liste, oder?


...da hast Du recht! Danke für den Hinweis!

Code:
(car x)    ≡ (first x)                              ≡ (nth 0 '(x))  >>  zero based!
(cadr x)   ≡ (second x) ≡ (car (cdr x))            ≡ (nth 1 '(x)) 
(caddr x)  ≡ (third x)  ≡ (car (cdr (cdr x)))      ≡ (nth 2 '(x)) 
(cadddr x) ≡ (fourth x) ≡ (car (cdr (cdr (cdr x)))) ≡ (nth 3 '(x)) 

http://mr.gy/ansi-common-lisp/car_003b-cdr_003b-caar_003b-cadr_003b-cdar_003b-cddr_003b-caaar_003b-caadr_003b-cadar_003b-caddr_003b-cdaar_003b-cd_002b.html

------------------
...viele Grüße
Stephan

[Diese Nachricht wurde von StephanWörz am 05. Mrz. 2018 editiert.]

[Diese Nachricht wurde von StephanWörz am 05. Mrz. 2018 editiert.]

[Diese Nachricht wurde von StephanWörz am 05. Mrz. 2018 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

der_Wolfgang
Ehrenmitglied V.I.P. h.c.
Tastenhauer


Sehen Sie sich das Profil von der_Wolfgang an!   Senden Sie eine Private Message an der_Wolfgang  Schreiben Sie einen Gästebucheintrag für der_Wolfgang

Beiträge: 2017
Registriert: 3.20.

● PE6+8@home
● W10 Pro Build19044.2364
● Drafting V20.1+4
● Modeling V20.1+4

erstellt am: 05. Mrz. 2018 18:13    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für StephanWörz 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von StephanWörz:
...da hast Du recht! Danke für den Hinweis!
Dein Kommentar im (bisherigen) Lisp file ist falsch: "alles außer 1. Element einer Liste". Hatte ich vorgestern nicht mehr geschrieben.

Code:
(car x)    ≡ (first x)...

Beim 1. und 2. Element einer Liste nutze ich gerne car bzw. cadr. Weil, das laesst sich halt schneller schreiben.

Wenn ich mehr brauche, schwenke ich dann zu (nth 0 ..) (nth 1 ..) (nth 2 ..) (nth 3 ..) etc. ueber, weil das dann wieder einheitlicher aussieht. Vielleicht magst Du 'nth' in deinem hybschen CodeSchnipsel eins drueber noch hinzufuegen. 

"alles außer 1. Element einer Liste"  waere  uebrigens (rest a-list).

------------------
Firefox ESRJava Forum Stuttgart JUGS ● OSD Hilfeseite (de) / help page (en)NotePad++BuFDi

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

der_Wolfgang
Ehrenmitglied V.I.P. h.c.
Tastenhauer


Sehen Sie sich das Profil von der_Wolfgang an!   Senden Sie eine Private Message an der_Wolfgang  Schreiben Sie einen Gästebucheintrag für der_Wolfgang

Beiträge: 2017
Registriert: 3.20.

● PE6+8@home
● W10 Pro Build19044.2364
● Drafting V20.1+4
● Modeling V20.1+4

erstellt am: 05. Mrz. 2018 18:22    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für StephanWörz 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von lix b:
für mein Verständnis ist der 3. Parameter überflüssig

Ja, da habe ich was vergeigt. - Sorry - habs korrigiert.

Danke fuer den Hinweis! 

------------------
Firefox ESRJava Forum Stuttgart JUGS ● OSD Hilfeseite (de) / help page (en)NotePad++BuFDi

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

StephanWörz
Mitglied
Maschinenbautechniker


Sehen Sie sich das Profil von StephanWörz an!   Senden Sie eine Private Message an StephanWörz  Schreiben Sie einen Gästebucheintrag für StephanWörz

Beiträge: 770
Registriert: 11.10.2000

CEDM V20
SolidPower V20
ModelSearch
KeyShot 7
CadDoctor V4.2
SWX 2008
PHOENIX V10

erstellt am: 06. Mrz. 2018 10:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo!

Nun habe ich wieder Probleme mir dem LET.
Wie mache ich das richtig??

Code:
    ;;  Funktion zum wählen aller Teile rekursiv in Baugruppe     
        (defun SelectAllParts (Assy)
            (setq Teile  (sd-call-cmds (get_selection :focus_type *sd-part-seltype* :allow_face_part :allow_wire_part :select :recursive :in_assembly Assy)))
        );;SelectAllParts

Folgendes habe ich versucht:

Code:
    ;;  Funktion zum wählen aller Teile rekursiv in Baugruppe     
        (defun SelectAllParts (Assy)
            (let ((Teile  (sd-call-cmds (get_selection :focus_type *sd-part-seltype* :allow_face_part :allow_wire_part :select :recursive :in_assembly Assy)))))
        );;SelectAllParts

...da liefert mir die Funktion aber immer NIL zurück???

------------------
...viele Grüße
Stephan

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

lix b
Mitglied
Konstrukteur, CAD-Admin


Sehen Sie sich das Profil von lix b an!   Senden Sie eine Private Message an lix b  Schreiben Sie einen Gästebucheintrag für lix b

Beiträge: 279
Registriert: 03.10.2014

Creo Elements / Direct Modeling 20.2.1.0
Creo Elements / Direct Model Manager 20.2.1.0
Creo 5.0.2.0 Simulate
<P>Notepad++
Win 10

erstellt am: 06. Mrz. 2018 11:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für StephanWörz 10 Unities + Antwort hilfreich

Hi!

In der 1. Version schreibst du durch deine Funktion ja das Ergebnis in die globale Variable "Teile" und kannst es somit im Nachhinein jederzeit abrufen.

Wenn du das Ganze in ein LET verschachtelst, existiert die Variable "Teile" ja nur bis zum Ende der Ausführung, d.h. dir fehlt der Rückgabewert der Funktion

Code:
(return Teile)

Die LET-Funktion selbst hast du richtig definiert.

Das kannst die Funktion selbst auch leicht überprüfen

Code:
(defun SelectAllParts (Assy)
            (let ((Teile  (sd-call-cmds (get_selection :focus_type *sd-part-seltype* :allow_face_part :allow_wire_part :select :recursive :in_assembly Assy))))
(when Teile (display "Teile hat Inhalt durch LET bekommen"))
)
        );;SelectAllParts

------------------
Viele Grüße
Felix

[Diese Nachricht wurde von lix b am 06. Mrz. 2018 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

StephanWörz
Mitglied
Maschinenbautechniker


Sehen Sie sich das Profil von StephanWörz an!   Senden Sie eine Private Message an StephanWörz  Schreiben Sie einen Gästebucheintrag für StephanWörz

Beiträge: 770
Registriert: 11.10.2000

CEDM V20
SolidPower V20
ModelSearch
KeyShot 7
CadDoctor V4.2
SWX 2008
PHOENIX V10

erstellt am: 06. Mrz. 2018 17:57    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

OK! ...das versteh ich!

Viiielen Dank für den Schubs in die richtige Richtung.

------------------
...viele Grüße
Stephan

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

der_Wolfgang
Ehrenmitglied V.I.P. h.c.
Tastenhauer


Sehen Sie sich das Profil von der_Wolfgang an!   Senden Sie eine Private Message an der_Wolfgang  Schreiben Sie einen Gästebucheintrag für der_Wolfgang

Beiträge: 2017
Registriert: 3.20.

● PE6+8@home
● W10 Pro Build19044.2364
● Drafting V20.1+4
● Modeling V20.1+4

erstellt am: 06. Mrz. 2018 18:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für StephanWörz 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von StephanWörz:
Viiielen Dank für den Schubs in die richtige Richtung.
Felix hat Dir ja schon den richtigen Schubser gegeben. Prima.

Anmerkung:
(setq ... ) selbst hat einen Rueckgabewert!
DESWEGEN hat es in deiner obigen let-losen Variante funktioniert, denn der Rueckgabewert des letzten Statements in einer Funktion wird zum Rueckgabewert der Funktion selbst.

Gereicht haette schon die VariablenLISTe des let, den setq haettest Du auch beibehalten koennen.

Code:
(defun SelectAllParts (Assy)
  (let (Teile)
    (setq Teile (sd-call-cmds (get_selection :focus_type *sd-part-seltype*
                                :allow_face_part :allow_wire_part
                                :select :recursive :in_assembly Assy)))
    )
);;SelectAllParts
Diese recht einfache Code Anderung mit der Einfuegung des LET ist bei bestehndem Code die einfachere/sicherere Variante, erfuellt aber eben doch den Wunsch/die Regel 'keine globale Variablen erzeugen'.


In diesem Fall waere aber auch eine andere (sehr kurze) let-lose Variante sauber gewesen:

Code:
(defun SelectAllParts (Assy)
  (sd-call-cmds (get_selection :focus_type *sd-part-seltype*
                  :allow_face_part :allow_wire_part
                  :select :recursive :in_assembly Assy))
);;SelectAllParts

------------------
Firefox ESRJava Forum Stuttgart JUGS ● OSD Hilfeseite (de) / help page (en)NotePad++BuFDi

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

StephanWörz
Mitglied
Maschinenbautechniker


Sehen Sie sich das Profil von StephanWörz an!   Senden Sie eine Private Message an StephanWörz  Schreiben Sie einen Gästebucheintrag für StephanWörz

Beiträge: 770
Registriert: 11.10.2000

CEDM V20
SolidPower V20
ModelSearch
KeyShot 7
CadDoctor V4.2
SWX 2008
PHOENIX V10

erstellt am: 07. Mrz. 2018 07:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Zitat:
Original erstellt von der_Wolfgang:
... denn der Rueckgabewert des letzten Statements in einer Funktion wird zum Rueckgabewert der Funktion selbst.

Das ist mal eine Aussage die sogar ich auf Anhieb verstehe 

Die let-lose Variante gefällt mir sehr gut!

Wieder nicht umsonst aufgestanden , wieder was gelernt 


Vielen Dank für Eure Unterstützung!

------------------
...viele Grüße
Stephan

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

StephanWörz
Mitglied
Maschinenbautechniker


Sehen Sie sich das Profil von StephanWörz an!   Senden Sie eine Private Message an StephanWörz  Schreiben Sie einen Gästebucheintrag für StephanWörz

Beiträge: 770
Registriert: 11.10.2000

CEDM V20
SolidPower V20
ModelSearch
KeyShot 7
CadDoctor V4.2
SWX 2008
PHOENIX V10

erstellt am: 22. Jan. 2019 14:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


SD_PrepareForRendering.lsp


SD_PrepareForRendering_StringLists.lsp

 
Hallo,

jetzt noch mal eine Frage zu diesem Projekt:

In der Funktion Rename benenne ich Teile/Baugruppen um

Code:
(sd-call-cmds (change_name_pa :Part_asmb Objekt :name (format nil "~A~A" NewName Postfix)))

Nun bekomme ich immer wieder mal diese Fehlermeldung:

Nach klicken auf OK geht's aber munter weiter.
Hat jemand einen Tipp wie diese Meldung abfangen oder vermeiden kann?


------------------
...viele Grüße
Stephan

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

MiBr
Mitglied
Konstrukteur


Sehen Sie sich das Profil von MiBr an!   Senden Sie eine Private Message an MiBr  Schreiben Sie einen Gästebucheintrag für MiBr

Beiträge: 508
Registriert: 30.06.2015

HP Z440 Workstation 64GB
Modeling 20.1.2.0 (x64)
Drafting 20.1.2.0 (64x) klas. UI
Modell Manager 20.1.2.0
Ansys Workbeanch 19R3 Mechanical Pro

erstellt am: 23. Jan. 2019 06:57    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für StephanWörz 10 Unities + Antwort hilfreich

Hallo,

dein Problem erinnert mich an ein Unterpunkt beim Thema Hilfsbolzen.
Damals benötigte ich einen eideutigen Namen.

Hier wurde das Problem mittels (sd-gen-obj-basename ()) gelöst.

http://ww3.cad.de/foren/ubb/Forum92/HTML/000884.shtml#000013

Gruß Michael

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

StephanWörz
Mitglied
Maschinenbautechniker


Sehen Sie sich das Profil von StephanWörz an!   Senden Sie eine Private Message an StephanWörz  Schreiben Sie einen Gästebucheintrag für StephanWörz

Beiträge: 770
Registriert: 11.10.2000

CEDM V20
SolidPower V20
ModelSearch
KeyShot 7
CadDoctor V4.2
SWX 2008
PHOENIX V10

erstellt am: 23. Jan. 2019 10:02    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Danke Michael,

werde ich mir angucken!

------------------
...viele Grüße
Stephan

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

StephanWörz
Mitglied
Maschinenbautechniker


Sehen Sie sich das Profil von StephanWörz an!   Senden Sie eine Private Message an StephanWörz  Schreiben Sie einen Gästebucheintrag für StephanWörz

Beiträge: 770
Registriert: 11.10.2000

CEDM V20
SolidPower V20
ModelSearch
KeyShot 7
CadDoctor V4.2
SWX 2008
PHOENIX V10

erstellt am: 23. Jan. 2019 10:30    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Zur Info!

Code:
(sd-call-cmds (change_name_pa :Part_asmb Objekt :name (format nil "~A~A" NewName Postfix)))

habe ich geändert in

Code:
(sd-call-cmds (change_name_pa :Part_asmb Objekt :name (format nil "~A~A" (sd-gen-obj-basename :Part :Parent (sd-inq-parent-obj objekt) :Prefix NewName) Postfix)))

...nun sind keine Fehlermeldungen mehr erschienen!

------------------
...viele Grüße
Stephan

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

der_Wolfgang
Ehrenmitglied V.I.P. h.c.
Tastenhauer


Sehen Sie sich das Profil von der_Wolfgang an!   Senden Sie eine Private Message an der_Wolfgang  Schreiben Sie einen Gästebucheintrag für der_Wolfgang

Beiträge: 2017
Registriert: 3.20.

● PE6+8@home
● W10 Pro Build19044.2364
● Drafting V20.1+4
● Modeling V20.1+4

erstellt am: 25. Jan. 2019 16:39    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für StephanWörz 10 Unities + Antwort hilfreich

Das ist ein schöner Fall um mal die :failure Funktionalität von SD-CALL-CMDS zu nutzen
Code:
(sd-call-cmds (change_name_pa :Part_asmb Objekt :name (format nil "~A~A" NewName Postfix))
              :failure (progn
                        ;; upss...
                        (pprint (sd-inq-error-obj :all)) ;; und was war falsch?
                        (pprint "second try")
                        (change-name-pa-with-another-generated-new-name-which-is-unique)
                        )
              :success (pprint "Alles roger, eijjj!!  :thumbs-UP")
              )

In den allermeisten Fällen gehen wir davon aus das sd-call-cmds sauber und ohne Probleme durchläuft. Wie so oft beim Programmerieren ist auch hier der Anteil an Code, der sich um den Fehlerfall kümmert größer und aufwendiger, als der im "alles-gut"-Fall.

------------------
Firefox ESRJava Forum Stuttgart JUGS ● OSD Hilfeseite (de) / help page (en)NotePad++BuFDi

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

StephanWörz
Mitglied
Maschinenbautechniker


Sehen Sie sich das Profil von StephanWörz an!   Senden Sie eine Private Message an StephanWörz  Schreiben Sie einen Gästebucheintrag für StephanWörz

Beiträge: 770
Registriert: 11.10.2000

CEDM V20
SolidPower V20
ModelSearch
KeyShot 7
CadDoctor V4.2
SWX 2008
PHOENIX V10

erstellt am: 25. Jan. 2019 17:02    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Wolfgang,

herzlichen Dank für den CodeSchnipsel!

...werde ich mal in der Art verwenden. Die SUCCESS-Meldung lass ich aber bei Strukturen mit mehreren 1000 Teilen mal weg.

Wünsche Dir und allen Mitlesern ein schönes Wochenende

------------------
...viele Grüße
Stephan

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz