Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  PTC Creo Elements/Programmierung
  LISP: String nicht abgeschlossen

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:  LISP: String nicht abgeschlossen (1281 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: 23. Jan. 2008 13: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


graphik.vbs.txt

 
Hallo,

wir haben aktuell ein Performance-Problem bei neueren Notebooks und haben beschlossen, bei diesen Geräten ein paar Grafikeinstellungen in Modeling und 3D-Access umzustellen, damit die Leistung akzeptabel ist.

Dazu möchte ich in der sd_customize abfragen, welche Grafikkarte verwendet wird:

Code:
;; Funktion zum ermitteln der Grafikkarte
(defun get-graphics-string()
    (let ((s (open (format nil "| cscript /nologo \"~a\\..\\startup\\graphik.vbs\""
        (oli::sd-sys-getenv "SDCORPCUSTOMIZEDIR")) :direction :input)))
        (read-line s nil)
    )
)

;; Grafikvorgaben bei bestimmten Grafikkarten umstellen
(if (or (oli::sd-string= "Quadro NVS 130" (get-graphics-string)) (oli::sd-string= "GeForce Go 6600" (get-graphics-string)))
    (progn
        (set_dynamic_redraw_mode :shaded)
        (set_dynamic_redraw_mode :clip-no-caps)
        (set_displaylist_mode :On)
    )
)


Eigenartigerweise findet der Code nie eine Übereinstimmung mit den Vergleichs-Strings.
Grund: Der Rückgabewert des Scripts hat kein abschließendes Anführungszeichen (").
    Ausgabe von (pprint (get-graphics-string)) z.B.: "Quadro NVS 130

Was hab ich bloß da wieder falsch gemacht?

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

Thomas Hollerweger

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: 23. Jan. 2008 13: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

Meine Vermutung: Das Skript produziert eine Ausgabe mit DOS-Zeilenenden. Hier steht, wie man die los wird.

Ansonsten ein Vorschlag fuer eine alternative und robustere Vorgehensweise: Statt die Einstellungen am Namen der Grafikkarte festzumachen, wuerde ich beim ersten Hochfahren kurz die Performance testen und dann anhand der gemessenen Leistung mithilfe von Vergleichswerten die passenden Einstellungen machen. Auf diese Weise musst Du dem Code nicht jedesmal hinterherrennen, nur weil irgendjemand in der Abteilung einen neuen Laptop bekommen hat oder seine alte Grafikkarte die Graetsche gemacht hat.

Claus


------------------
CoCreate OneSpace Modeling FAQ: http://www.clausbrod.de/OneSpaceModeling/

[Diese Nachricht wurde von clausb am 23. Jan. 2008 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.

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

erstellt am: 23. Jan. 2008 23: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 Nur für holt 10 Unities + Antwort hilfreich

tip A: (sd-string-match-pattern-p ... ) existiert
(sd-string-match-pattern-p "*Quadro*" "Audi A4 Quadro, tiefergelegt")  ;;  so in etwa halt 

tip B: (string-trim "abc" "labcabcabc")  existiert auch um die \" und anderes los zu bekommen

------------------
Seamonkey Firefox Thunderbird  Seamonkey auf deutsch

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: 24. Jan. 2008 08:04    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

Juhu, es funktioniert!

@ Claus:
Ich habe meinen Code ursprünglich von deinem Makro übernommen aber nicht begriffen, was da passiert. Daher habe ich die Zeile mit dem read-line verstümmelt übernommen.
Kannst du mir im einzelnen erklären, was in deinem Code passiert?

@ Wolfgang:
string-trim ist meiner Meinung nach die leichter lesbare Variante, also werd ich diese Funktion nehmen (tut mitr leid, Claus  ). Es soll ja auch in Zukunft jemand begreifen, was ich damit bezwecken wollte.

Danke euch beiden! Ich gebe eine Thread-Runde Us aus!

Nochmal @ Claus:
Wie kann man beim Start der Applikation auf einfache Weise die Performance ermitteln, ohne ein Modell zu laden, ...? Oder meinst du alles manuell ermitteln und einstellen?
Das hätte den entscheidenden Nachteil, dass es erstens sehr viel Arbeit ist (bei 100 3D-Lizenzen) und außerdem kann dann die sd_customize nicht überall gleich sein.

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

Thomas Hollerweger

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: 24. Jan. 2008 08:14    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:
Ich habe meinen Code ursprünglich von deinem Makro übernommen aber nicht begriffen, was da passiert. Daher habe ich die Zeile mit dem read-line verstümmelt übernommen.
Kannst du mir im einzelnen erklären, was in deinem Code passiert?

Zeile fuer Zeile wird in einer Schleife eingelesen (kannst Du Dir in Deinem Fall sparen), in jeder wird mit

Code:
(remove #\Return l)
das unpassende Zeilenende entfernt. So kompliziert?

Zitat:

Wie kann man beim Start der Applikation auf einfache Weise die Performance ermitteln, ohne ein Modell zu laden, ...?

Ich wuerde ein Modell laden und das dann automatisch ausmessen. Das aber nur einmal pro Workstation. Wenn Ihr Eure Anpassungen zentral verwaltet, liesse sich das gut organisieren.

------------------
CoCreate OneSpace Modeling FAQ: http://www.clausbrod.de/OneSpaceModeling/

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: 24. Jan. 2008 12:28    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 clausb:
So kompliziert?

Für mich schon!
Wie kann z.b. remove Strings verarbeiten, wenn es eine Liste erwartet?
Daher bekomme ich bei folgendem Codefragment immer die Fehlermeldung "Quadro FX 1500[]" is not of type LIST. (wobei [] ein Quadrat sein soll)

Code:
(setf l (read-line s nil))
(remove #\Return l) 
(close s)

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

Thomas Hollerweger

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: 24. Jan. 2008 13: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 holt 10 Unities + Antwort hilfreich

(remove) erwartet keine Liste, sondern eine "sequence" - siehe Doku unter http://www.lisp.org/HyperSpec/Body/fun_removecm__elete-if-not.html.  Strings gelten als "sequences".

Habe den Testfall gerade in v14.50 und v15 ausprobiert. Keine Fehlermeldungen.

Claus


------------------
CoCreate OneSpace Modeling FAQ: http://www.clausbrod.de/OneSpaceModeling/

[Diese Nachricht wurde von clausb am 24. Jan. 2008 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: 24. Jan. 2008 13:53    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


graka_abfragen.txt

 
OK, jetzt kommt bei mir auch keine Fehlermeldung, ich hatte einen Fehler beim Aufruf der Funktion.

Aber dem String fehlt immer noch das abschließende ".
Anbei der entsprechende Ausschnitt aus der sd_customize.

Dein obiger Link funktioniert übrigens nicht.

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

Thomas Hollerweger

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: 24. Jan. 2008 13: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 Nur für holt 10 Unities + Antwort hilfreich

Der Link ist jetzt korrigiert.

Der String veraendert sich nicht, weil, nun ja, Du ihn nicht veraenderst 
(remove) veraendert naemlich nicht die Eingabe, sondern liefert einen veraenderten String als Resultat. Das aber hast Du nirgends verwendet.

Leicht vereinfachter und ungetesteter Codevorschlag:

Code:

(defun get-graphics-string()
  (with-open-file
    (s "| cscript /nologo foo/bla/graphik.vbs" :direction :input)
    (remove #\Return (read-line s nil))))

------------------
CoCreate OneSpace Modeling FAQ: http://www.clausbrod.de/OneSpaceModeling/

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: 24. Jan. 2008 13: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

Zitat:
Original erstellt von holt:
Aber dem String fehlt immer noch das abschließende ".

Kommando zurück!

Ich muss den input-stream erst schließen und dann das remove ausführen, dann gehts!

Also:

Code:
(setf l (read-line s nil))
(close s)
(remove #\Return l) 

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

Thomas Hollerweger

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



Bauingenieur für Investitionsprojekte und Gebäudeinstandhaltung (m/w/d)

Arbeiten bei Weihenstephan bedeutet, Teil eines regional verwurzelten Familienunternehmens und international wachsenden Lebensmittelkonzerns zu sein. Die Molkerei Weihenstephan steht für langjährige Erfahrung und Premium-Qualität in der Milchverarbeitung. Als Teil der Unternehmensgruppe Theo Müller ergänzt Weihenstephan das Molkerei-Portfolio mit den typisch blauen Produkten wie H- und Frischmilch, Butter, Sahne, Joghurt und Quark....

Anzeige ansehenBauwesen
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: 24. Jan. 2008 14:05    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

Claus war wieder einmal schneller.
Außerdem ist meine Aussage oben nicht korrekt.
Durch die Änderung der Reihenfolge habe ich nur bewirkt, dass das Ergebnis von (remove) gleich als Rückgabewert der Funktion verwendet wird. Vorher habe ich nach dem (close) nochmal l als Rückgabewert übergeben.
Das ist mir erst mit deiner Antwort klar geworden.

Danke!
Nochmal 10 Us!

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

Thomas Hollerweger

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