Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  PTC Creo Elements/Programmierung
  LISP: Variable prüfen - enthält Baugruppe

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 PTC CREO
Autor Thema:  LISP: Variable prüfen - enthält Baugruppe (1060 mal gelesen)
holt
Mitglied
Systembetreuer CAD


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

Beiträge: 713
Registriert: 07.08.2003

Corei7 3770K, Win7-64, 16GB
PNY Quadro 2000K
CoCreate Modeling 18.10
CoCreate Drafting 18.10
CoCreate ModelManager 18.10

erstellt am: 29. Apr. 2009 07: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,

ich glaube ich stehe momentan auf der Leitung.

Ich möchte bei einer Dialog-Variable mit Mehrfach-Auswahl prüfen ob Baugruppen enthalten sind und damit eine andere Variable aktiv oder inaktiv setzen.

Ich habe dazu folgenden etwas länglichen Code geschrieben: (nur das Codeschnipsel)

Code:

(Teile
  :title "Teil/Bgr"
  :value-type :Part-assembly
  :multiple-items t
  :wire-part-allowed t
  :face-part-allowed t
  :with-container t
  :initial-value nil
  :after-input
    (let (bgr)
      (setq bgr nil)
      (if (listp Teile)
        (when (find t Teile :test #'(lambda (a b) (if (sd-inq-assembly-p b) t nil)))
          (setq bgr t)
        )
        (when (sd-inq-assembly-p Teile)
          (setq bgr t)
        )
      )
      (if bgr
        (progn
          (setq rekursiv nil)
          (sd-set-variable-status 'rekursiv :enable t)
        )
        (progn
          (setq rekursiv nil)
          (sd-set-variable-status 'rekursiv :enable nil)
        )
      )
    )
)

Da gibts doch sicherlich eine kürzere und elegantere Möglichkeit, oder?

------------------
Gruß aus dem Salzkammergut

Thomas

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

clausb
Ehrenmitglied V.I.P. h.c.



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

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: 29. Apr. 2009 07:21    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 holt 10 Unities + Antwort hilfreich

Erster Versuch:

Code:

(Teile
  :title "Teil/Bgr"
  :value-type :Part-assembly
  :multiple-items t
  :wire-part-allowed t
  :face-part-allowed t
  :with-container t
  :initial-value nil
  :after-input
    (progn
      (setq rekursiv nil)
      (if (find-if #'sd-inq-assembly-p Teile)
        (sd-set-variable-status 'rekursiv :enable t)
        (sd-set-variable-status 'rekursiv :enable nil))))


------------------
CoCreate Modeling FAQ: http://www.clausbrod.de/CoCreateModeling/

[Diese Nachricht wurde von clausb am 29. Apr. 2009 editiert.]

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

holt
Mitglied
Systembetreuer CAD


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

Beiträge: 713
Registriert: 07.08.2003

Corei7 3770K, Win7-64, 16GB
PNY Quadro 2000K
CoCreate Modeling 18.10
CoCreate Drafting 18.10
CoCreate ModelManager 18.10

erstellt am: 29. Apr. 2009 07:50    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

Super! Danke! 10x10 Us für die tolle Lösung und die schnelle Reaktion!

Sehr übersichtlich und macht genau das was ich wollte.

Wenn man deinen Code betrachtet fällt auf, dass mein Code auch kürzer möglich gewesen wäre (z.B. das doppelte (setq rekursiv nil), ...) Aber so kompakt hätte ich das wohl nie hingebracht. find-if - muss man sich merken.

Hätte ich mir die Prüfung auf Liste auch mit find sparen könnnen?

------------------
Gruß aus dem Salzkammergut

Thomas

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

clausb
Ehrenmitglied V.I.P. h.c.



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

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: 29. Apr. 2009 07:59    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 holt 10 Unities + Antwort hilfreich

Das mit der Typprüfung auf Liste habe ich offen gesagt nicht wirklich verstanden (und dann einfach unter den Teppich gekehrt  ). In welchen Fällen bekommt man denn keine Liste aus der Selektion?


------------------
CoCreate Modeling FAQ: http://www.clausbrod.de/CoCreateModeling/

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

holt
Mitglied
Systembetreuer CAD


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

Beiträge: 713
Registriert: 07.08.2003

Corei7 3770K, Win7-64, 16GB
PNY Quadro 2000K
CoCreate Modeling 18.10
CoCreate Drafting 18.10
CoCreate ModelManager 18.10

erstellt am: 29. Apr. 2009 08:31    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

Ich war bisher immer der Meinung, dass bei Einzelauswahl ein einzelnes Element kommt und nur bei Mehrfachauswahl eine Liste. Hab aber gerade in der IKIT-Doku nachgelesen. Da steht drin dass man immer eine Liste bekommt wenn :multiple-items t eingestellt ist.
War also wirklich überflüssig. 

Und jetzt weiß ich auch womit ich das verwechselt habe:
Bei get_selection ist wird je nach Auswahl ein Einzelelement oder eine Liste geliefert.

------------------
Gruß aus dem Salzkammergut

Thomas

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.

● PE60+80@home
● W10 Pro Build19044.2364
● Drafting V17~V20.5.1
● Modeling V17~V20.5.1

erstellt am: 29. Apr. 2009 20: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 holt 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von holt:
Und jetzt weiß ich auch womit ich das verwechselt habe:
Bei get_selection wird je nach Auswahl ein Einzelelement oder eine Liste geliefert.

Falsch.  Bei get_selection bekommst Du immer eine Liste.  Nur wenn Du :single_selection spezifizierst nicht.

------------------
Seamonkey Firefox Thunderbird ● OSD Hilfeseite (de) / help page (en)NotePad++

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



Berechnungsingenieur CAE-Automotive (m/w/d)

Die CAIQ GmbH schafft einzigartige Lösungen, um die virtuellen Produktentwicklungsprozesse zu optimieren. Dabei arbeiten wir an der funktionalen Absicherung komplexer Produkte mittels computergestützter Methoden, die unsere hochqualifizierten und innovativen Ingenieur:innen entwickeln und anwenden. Diese Methoden werden durch unsere Software in einfach anzuwendende Applikationen eingebettet. Die Offenheit unserer Software ermöglicht die Integration nahezu beliebiger Softwareprodukte....

Anzeige ansehenFahrzeugtechnik
holt
Mitglied
Systembetreuer CAD


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

Beiträge: 713
Registriert: 07.08.2003

Corei7 3770K, Win7-64, 16GB
PNY Quadro 2000K
CoCreate Modeling 18.10
CoCreate Drafting 18.10
CoCreate ModelManager 18.10

erstellt am: 01. Mai. 2009 15:08    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:
Falsch. 

Tatsächlich!

Ich gebe mich geschlagen! 

------------------
Gruß aus dem Salzkammergut

Thomas

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