|
CoCreate Programmierung : LISP: Syntax gesucht (AM_PLOT_EX)
holt am 23.04.2009 um 13:54 Uhr (0)
Hallo,ich möchte im LISP-Code Druckeinstellungen voreinstellen.Dazu rufe ich das Kommando AM_PLOT_EX wie folgt auf:Code:(sd-call-cmds (AM_PLOT_EX :PLOT_WARNINGS :ON :SHOW_DIALOG :ON :PLOTTER_TYPE_RA :PDF :PLOTTER_NAME_RA "PDF_GENERIC" :CUSTOM_SIZE :WIDTH format-breite :HEIGHT format-hoehe :ACCEPT :ORIENTATION_PORTRAIT :ROTATE 0 :OUTPUT_SHEET) :SCALE :FACTOR :SCALE_FACTOR_VALUE 1))Mein Problem ist die Angabe der Formatgröße mittels CUSTOM_SIZE.Beim Aufruf wie oben aus einem Dialog heraus wird die Formatgrö ...
|
In das Form CoCreate Programmierung wechseln |
|
CoCreate Programmierung : LISP: Syntax gesucht (AM_PLOT_EX)
Walter Geppert am 23.04.2009 um 15:11 Uhr (0)
Ich hsb so was ähnliches realisiert, wos geht, allerdings "blind" ohne Dialogaufruf:Code: (sd-call-cmds (am_plot_ex :plotter_type_ra :pdf :plotter_name_ra "PDF_GENERIC" :to_file :yes :destination fname :custom_size :width breit :height hoch :accept :copies 1 :output_sheet :contents_all :s ...
|
In das Form CoCreate Programmierung wechseln |
|
CoCreate Programmierung : Fortlaufender Variablenname
uli1601 am 23.04.2009 um 17:49 Uhr (0)
Vielen Dank Claus, für die Tipps. Ich sehe schon, das mit defstruct war keine so gute Idee :-)Ich habe nun mal versucht, ein Array aufzubauen (mit Arrays habe ich bisher in LISP noch nichts gemacht...)Code:(setf ergebnis_array (make-array (1 3) :adjustable t :initial-contents (("sigma(N/mm^2)" "tau(N/mm^2)" "sigmav(N/mm^2)"))))Soweit, so gut, jetzt habe ich mal mein Startarray bei der Initialisierung meines Dialogs erzeugt.Das möchte ich nun gerne erweitern und mit Werten füllen (deshalb um eine Zeil ...
|
In das Form CoCreate Programmierung wechseln |
|
CoCreate Programmierung : Fortlaufender Variablenname
clausb am 23.04.2009 um 19:32 Uhr (0)
Gegen die Verwendung von Strukturen (die mit defstruct definiert werden) ist gar nichts einzuwenden - meine Zweifel betrafen die Idee, dynamisch Variablen zu erzeugen. Wie gesagt, Lisp kann sowas im Unterschied zu vielen anderen Sprachen, aber selbst in Lisp nutzt man solche Moeglichkeiten nicht so oft, meistens eher in mit defmacro erzeugten Makros.Dein Problem bei der Erweiterung des Arrays ist ein simples Quotierungsproblem, das wir schon ab und an mal hatten. Abhilfe:Code:(setf ergebnis_array (adj ...
|
In das Form CoCreate Programmierung wechseln |
|
CoCreate Programmierung : Fortlaufender Variablenname
uli1601 am 22.04.2009 um 22:52 Uhr (0)
Guten Abend allerseits,ich habe mal wieder ein Problem. Ich stoße mit meinen begrenzten LISP-Kentnissen mal wieder an meine Grenzen: :-)Ich habe mir ein defstuct "ergebnis" festgelegt. Nun würde ich gerne verschiedene Instanzen mit fortlaufender Variablenbezeichnung (z.B. ergebnis1) von meinem defstruct erzeugen. Hier mal mein Codeschnipsel dazu:Code:(setf zaehler (+ zaehler 1))(setf (sd-read-from-string (format NIL "ergebnis~A" zaehler)) (make-ergebnis ...))Allerdings kann ich so keine Variablenbezeichnun ...
|
In das Form CoCreate Programmierung wechseln |
|
CoCreate Programmierung : Fortlaufender Variablenname
clausb am 22.04.2009 um 23:30 Uhr (0)
Zur Laufzeit dynamisch Variablensymbole anlegen und sie an Instanzen Deiner Struktur binden? Auch sowas geht in Lisp - anders als in vielen anderen Sprachen übrigens. Aber ich bin mir ziemlich sicher, dass Du das nicht wirklich willst oder Dir vielleicht nicht überlegt hast, was das alles nach sich zieht. Das Vorhaben sieht wirklich arg fischig aus.Wieso legst Du nicht einfach ein Array von Strukturen an? (Siehe dazu beispielsweise http://l1sp.org/cl/make-array ) Oder noch schlichter eine Liste?Claus----- ...
|
In das Form CoCreate Programmierung wechseln |
|
CoCreate Programmierung : LISP: Syntax gesucht (AM_PLOT_EX)
holt am 23.04.2009 um 20:58 Uhr (0)
Ich vermute mal dass es sich hier um einen Bug in V16 handelt. In V15 und zu Hause in der PE2.0 funktioniert sowohl meine Variante als auch Walters.Werde morgen eine Anfrage beim Support machen.Was mich beim Plotten auch immer wieder stört ist dass beim interaktiven Aufruf des Plotdialogs die Endung (.pdf) beim Dateinamen immer manuell eingegeben werden muss. Das werde ich wohl auch noch mal erwähnen müssen. (Hab ich zwar schon bei Einführung des PDF_GENERIC in V14? gemacht, ist wohl ein paar Jahre aus. Ge ...
|
In das Form CoCreate Programmierung wechseln |
|
CoCreate Programmierung : LISP: Syntax gesucht (AM_PLOT_EX)
holt am 24.04.2009 um 14:31 Uhr (0)
Hallo,ich habe das Problem gefunden:Wenn man am_plot_ex aufruft, dort das Format einstellt und das Fenster wieder schließt, merkt sich Modeling seit Version 16 diese Einstellung nicht. Beim nächsten Aufruf steht wieder A4 drin.Genauso läuft das in meinem Lisp-Code:Ich rufe die Einstellungen mittels sd-call-cmds auf.Am Ende des Dialogs wird er wieder mittels sd-put-buffer aufgerufen. Da steht dann wieder A4 drin wie beim manuellen Aufruf.Lösung: Ich habe den Code so geändert, dass am_plot_ex gleich mittels ...
|
In das Form CoCreate Programmierung wechseln |
|
CoCreate Programmierung : Tausche Lisp!
Klaus Holzer am 29.04.2009 um 12:58 Uhr (0)
Na das war mal ne kurze Vorstellung... ... und was ist jetzt mit DEINEM Lisp ??? ------------------GrußKlaus
|
In das Form CoCreate Programmierung wechseln |
|
CoCreate Programmierung : LISP: Variable prüfen - enthält Baugruppe
holt am 29.04.2009 um 07:50 Uhr (0)
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 SalzkammergutThomas
|
In das Form CoCreate Programmierung wechseln |
|
CoCreate Programmierung : LISP: Variable prüfen - enthält Baugruppe
der_Wolfgang am 29.04.2009 um 20:34 Uhr (0)
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++
|
In das Form CoCreate Programmierung wechseln |
|
CoCreate Programmierung : LISP: Variable prüfen - enthält Baugruppe
holt am 29.04.2009 um 07:02 Uhr (0)
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 ...
|
In das Form CoCreate Programmierung wechseln |
|
CoCreate Programmierung : LISP: Variable prüfen - enthält Baugruppe
clausb am 29.04.2009 um 07:21 Uhr (0)
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.]
|
In das Form CoCreate Programmierung wechseln |