| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für PTC CREO |
Autor
|
Thema: LISP-Programmierung (850 mal gelesen)
|
holt Mitglied Systembetreuer CAD
Beiträge: 713 Registriert: 07.08.2003 Lenovo P320 Win10 64-bit, 32GB NVIDIA Quadro P2000 4 GB Creo Elements/Direct Modeling 20.1 Creo Elements/Direct Drafting 20.1 Creo Elements/Direct ModelManager 20.1
|
erstellt am: 20. Feb. 2004 11:46 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe Probleme mit LISP-Anweisungen: 1.) Wenn ich die folgende Funktion in einer Funktion aufrufe, die bei :after-initialization, :ok-action oder :cancel-action eines Dialogs aufgerufen wird, bekomme ich immer den Fehler "Negative Index: -1" (defun sti-special-settings () (am_text_settings :size 2.5) (am_text_settings :color :rgb 0.92,1,1) (am_text_settings :ratio 0.8) (am_text_settings :slant 0) (am_text_settings :font1b "hp_i3098_c") (am_text_settings :abs_angle 0.0) (am_text_settings :frame "BALLOON") (am_text_settings :feedb "ALL") ) Darf am_text_settings nicht beim Initialisieren von Dialogen ausführen? Wenn ja, wo dann? Ich möchte sicherstellen, daß die Einstellungen beim Schließen des Dialogs wieder zurückgesetzt werden. 2.) die LISP-Funktion round rundet bei .5 immer ab, bei .51 immer auf (mathematische Rundng?) Gibts eine Möglichkeit, kaufmännisch zu runden (.5 auf, .4 ab) oder muß man das selbst programmieren? ------------------ Gruß aus dem Salzkammergut Thomas Hollerweger Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Walter Geppert Moderator Frank und Frei
Beiträge: 2143 Registriert: 12.12.2000 Konstruktion von Sondermaschinen, Montageautomaten, Meß- und Prüfeinrichtungen, Vorrichtungen und Produktentwicklung mit Creo Elements/Direct Modeling 20.4, AdvancedDesign, Surfacing, Simulate, SolidPower, ModelManager auf HP ZBook 17 G4, Windows 10 Pro 64
|
erstellt am: 20. Feb. 2004 12:16 <-- editieren / zitieren --> Unities abgeben: Nur für holt
1.) Alle COMMANDs (also auch das ganze Zeugs, das der Aufzeichner ausspuckt) sollte man mit (sd-call-cmds cmd) ausführen. Näheres in der Dokumentation im IntegrationKit in Installdir\help\Common\documentation\integration_kit\reference\sd-call-cmds.html 2.) Da hab ich nix gefunden, muss man wohl selbst programmieren ------------------ meine LISP-Makros sind auf Heikos Hilfeseite Grüße aus Wien Walter DC4 Technisches Büro GmbH Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
holt Mitglied Systembetreuer CAD
Beiträge: 713 Registriert: 07.08.2003 Lenovo P320 Win10 64-bit, 32GB NVIDIA Quadro P2000 4 GB Creo Elements/Direct Modeling 20.1 Creo Elements/Direct Drafting 20.1 Creo Elements/Direct ModelManager 20.1
|
erstellt am: 20. Feb. 2004 14:05 <-- editieren / zitieren --> Unities abgeben:
|
Dorothea Mitglied
Beiträge: 242 Registriert: 22.11.2001
|
erstellt am: 20. Feb. 2004 16:14 <-- editieren / zitieren --> Unities abgeben: Nur für holt
Hallo Thomas, zu 2) Das mit dem round-Kommando ist sogar noch komplizierter. Es rundet naemlich bei .5 immer auf die naechste gerade Zahl. Sprich: (round 1.5) = 2 (round 2.5) = 2 Das heisst die Aussage, dass die LISP-Funktion round bei .5 immer abrundet, ist nicht ganz richtig. Warum das so ist weiss ich auch nicht. Gruss Dorothea Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
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: 20. Feb. 2004 19:37 <-- editieren / zitieren --> Unities abgeben: Nur für holt
Zitat: Original erstellt von Dorothea: Das mit dem round-Kommando ist sogar noch komplizierter. Es rundet naemlich bei .5 immer auf die naechste gerade Zahl. Sprich: [...]Warum das so ist weiss ich auch nicht.
Siehe Spezifikation von Common LISP, zum Beispiel unter http://www.lispworks.com/reference/HyperSpec/Body/f_floorc.htm: "round and fround produce a quotient that has been rounded to the nearest mathematical integer; if the mathematical quotient is exactly halfway between two integers, (that is, it has the form integer+1/2), then the quotient has been rounded to the even (divisible by two) integer." Unser (round) verhaelt sich also entsprechend der Spezifikation von LISP. Claus
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|