Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  PTC Creo Elements/Programmierung
  unterschiedlich viele Variablen übergeben

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:  unterschiedlich viele Variablen übergeben (756 mal gelesen)
Greskamp
Mitglied
Ingenieur


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

Beiträge: 523
Registriert: 12.03.2003

MS: Windows 10 64bit
OSD: 20.1 M020
ModelManager: 20.1 M020
NX 1899
TC 12.3

erstellt am: 22. Apr. 2016 16:12    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 habe ein Problem mit einem Lisp was 3 Variablen übergeben soll, aber eine davon immer nil ist.
Gibt es einen Trick das zu lösen, glaube nämlich das da mein Problem drin liegt. Die erste Variable ist immer gesetzt, bei der 2 und 3 kann es wechseln. Komischerweise wenn die 3. Variable einen Wert hat geht es, wenn die 3. Variable keinen Wert hat, dann nicht.

Vielleicht kann mir mal jemand dazu was sagen...

Vielen Dank

------------------
Gruß Peter

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: 22. Apr. 2016 16: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 Greskamp 10 Unities + Antwort hilfreich

Auch NIL ist ein gültiger Variablenwert. Mit anderen Worten: Auch in den von Dir beschriebenen Problemszenarien haben alle Variablen einen Wert. Mag aber natürlich sein, dass es nicht der Wert ist, den der aufgerufene Code erwartet.

Ansonsten ist die Beschreibung zu unklar, um eine Empfehlung geben zu können. (Gekürzter) Beispielcode wäre hilfreich.

Claus

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

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

Greskamp
Mitglied
Ingenieur


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

Beiträge: 523
Registriert: 12.03.2003

erstellt am: 25. Apr. 2016 07:20    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


kontur.pkg

 
Hallo claus,

ich glaube ich habe mich da auch etwas verzettelt.
Mein Programm soll bei einem beliebigen Linienzug Lochkreise erzeugen, entweder durch Angabe des Achsabstands oder durch Anzahl an Löchern.
WEnn ich das durch die Anzahl Löcher erzeuge, klappt es erst mal, aber beim Abstand bekomme ich eine Fehlermeldung.
Vielleicht findest du ja den Fehler.
Anbei auch die Datei zum testen, ist ne .pkg Datei in der V18.


Code:


(in-package :greskamp)
(use-package :OLI)

(export 'Kreis_auf_geteilte_Linie)

(sd-defdialog 'Kreis_auf_geteilte_Linie
:dialog-title "nach Materialstärke suchen"
:toolbox-button nil
:variables
'(
(ca_Abstand :value-type :positive-number
:multiple-items nil
:title "ca. Abstand"
:prompt-text "Geben Sie das ca. Maß für die Lochabstände ein"
:initial-value nil
)

(Anzahl_Loecher :value-type :positive-number
:multiple-items nil
:title "Anzahl der Löcher "
:prompt-text "Geben Sie die gewünschte Anzahl an Löchern ein"
:initial-value nil

)

("-")

(Loch_Bohrung :value-type :positive-number
:title "Durchmesser"
:multiple-items nil
:prompt-text "Geben Sie Bohrungsdurchmesser an"
; :after-input
; (progn
; (WHEN (> ca_Abstand 0)
; (IF (<= ca_Abstand Loch_Bohrung)
; (progn
; (display "Der Lochdurchmesser ist größer oder gleich zum Lochabstand, bitte Durchmesser neu eingeben")
; (setf Loch_Bohrung nil)
; )
; )
; )
; )

)

);ende variables
:mutual-exclusion '(ca_Abstand Anzahl_Loecher)

:cancel-action '()
:ok-action '(Kreis_auf_geteilte_Linie_X Loch_Bohrung ca_Abstand Anzahl_Loecher)

)

(defun Kreis_auf_geteilte_Linie_X (Kreis_Durchmesser Abstand_geteilt Anzahl_Loecher)

(setq Kreis_Punkte1 ())

(setq weiße_Linien
(frame2::getres (GET_SELECTION :FOCUS_TYPE *sd-edge-2d-seltype*
:no_highlight
:curr_wp_only
:select
:all_2d )))

(display Kreis_Durchmesser)
(display Abstand_geteilt)
(display Anzahl_Loecher)
(display "")

(IF Abstand_geteilt
(dolist (EDGE weiße_Linien)
(setq Laenge_weisse_Linie (frame2::getres(MEASURE_DIST :edge_length EDGE)))
(setq Teilung (/ Laenge_weisse_Linie Abstand_geteilt))
(setq Teilung (round Teilung))
(split EDGE :segments Teilung complete)
)
)

(setq Loch_pro_Linie (* (/ (- Anzahl_Loecher (length weiße_Linien)) (length weiße_Linien)) 1.0))

(IF Anzahl_Loecher
(dolist (EDGE weiße_Linien)
(setq Laenge_weisse_Linie (frame2::getres(MEASURE_DIST :edge_length EDGE)))
(setq Teilung1 (/ Laenge_weisse_Linie Loch_pro_Linie))
(setq Teilung1 (/ Laenge_weisse_Linie Teilung1))
(setq Teilung1 (+ (round Teilung1) 1))
(split EDGE :segments Teilung1 complete)
)
)

(setq weiße_Linien_geteilt
(frame2::getres (GET_SELECTION :FOCUS_TYPE *sd-edge-2d-seltype*
:no_highlight
:curr_wp_only
:select
:all_2d )))

(toggle_type weiße_Linien_geteilt)

(dolist (EDGE weiße_Linien_geteilt)
(setq Anfangs_Punkt (sd-gpnt3d-to-2d (sd-edge-start-pnt (sd-inq-edge-geo EDGE :dest-space :local))))
(setq Ends_Punkt (sd-gpnt3d-to-2d (sd-edge-end-pnt (sd-inq-edge-geo EDGE :dest-space :local))))
(setq Kreis_Punkte1 (adjoin Anfangs_Punkt Kreis_Punkte1 :test 'equal ))
(setq Kreis_Punkte1 (adjoin Ends_Punkt Kreis_Punkte1 :test 'equal ))
)

(dolist (ITEM Kreis_Punkte1)
(frame2::getres (circle :cen_rad ITEM (/ Kreis_Durchmesser 2))); complete ))
)

(display (format nil "Es wurden ~a Lochkreise erzeugt!" (length Kreis_Punkte1)))
(setq Abstand_geteilt ())
(setq Kreis_Durchmesser ())
(setq Anzahl_Loecher ())

)



------------------
Gruß Peter

[Diese Nachricht wurde von Greskamp am 25. Apr. 2016 editiert.]

[Diese Nachricht wurde von Greskamp am 25. Apr. 2016 editiert.]

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: 25. Apr. 2016 09: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 Greskamp 10 Unities + Antwort hilfreich

Danke fürs Beispielprogramm. Wenn Du jetzt noch den Fehlerfall und die Fehlermeldung beschreiben könntest...

Claus

PS: Bin jetzt zwei Wochen in Urlaub, daher erst mal Funkstille, also bitte nicht wundern.

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

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

Greskamp
Mitglied
Ingenieur


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

Beiträge: 523
Registriert: 12.03.2003

erstellt am: 25. Apr. 2016 12: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

Hallo Claus,

dann dir mal einen schönen Urlaub.
Inzwischen habe ich es auch selbst hin bekommen. An dem gedachten Problem lag es wohl nicht wirklich.
Aber jetzt laäuft es.

------------------
Gruß Peter

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