| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY wird von NVIDIA zum Händler des Jahres gewählt – zum dritten Mal in Folge, eine Pressemitteilung
|
Autor
|
Thema: Pfad der Lisp zur Laufzeit? (1083 mal gelesen)
|
WolfgangE Mitglied
Beiträge: 1006 Registriert: 29.01.2003 Compass2000 in (fast) allen Ausbaustufen: Jobserver, ACM, Replikator, DBQ-Programmierung. Programmierung, Wartung und Administration von MSSQL2000-Datenbanken. Grundlegende Kenntnisse in AutoLisp-Programmierung.
|
erstellt am: 01. Sep. 2004 09:36 <-- editieren / zitieren --> Unities abgeben:
Hallo Lisp-Gemeinde, gesucht hab' ich, gefunden leider nicht, vielleicht kann mir da jemand weiter helfen. Ich habe ein Lisp-Programm, welches unter anderem eine Textdatei einlesen soll. Diese Textdatei befindet sich im selben Verzeichnis wie die Lisp-Datei selbst. Kann ich nun irgendwie innerhalb der Lisp ermitteln, in welchem Verzeichnis sie sich befindet (und damit auch die Textdatei)? Wie sieht das ganze dann aus, wenn ich die LSP in eine FAS kompiliere? Was ich schlussendlich haben möchte, ist einfach folgendes: ich erstelle eine FAS und möchte diese einfach in irgendein Verzeichnis kopieren, zusammen mit der TXT. Diese TXT soll dann eben immer gefunden werden. Danke und ciao, WolfgangE
------------------ An Optimist Is A Person Who Has Not Been Shown All The Facts Yet!!! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADwiesel Moderator CAD4FM UG
Beiträge: 1989 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 01. Sep. 2004 10:24 <-- editieren / zitieren --> Unities abgeben: Nur für WolfgangE
Hai so einfach ist das nur per doslib möglich. wenn es allerdings ein Lisp/vlx ist, was in der Startgruppe abgelegt ist, so kann es per vl ausgelesen werden. Als Alternative kannst du aber auch einfach eine Subfunktion deffinierne - in deinem Lisp, die dann gleich einen Reg-key schreibt a la: wo bin ich. ------------------ Gruß CADwiesel Besucht uns im CHAT
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
WolfgangE Mitglied
Beiträge: 1006 Registriert: 29.01.2003 Compass2000 in (fast) allen Ausbaustufen: Jobserver, ACM, Replikator, DBQ-Programmierung. Programmierung, Wartung und Administration von MSSQL2000-Datenbanken. Grundlegende Kenntnisse in AutoLisp-Programmierung.
|
erstellt am: 01. Sep. 2004 11:00 <-- editieren / zitieren --> Unities abgeben:
Puuuhhhh! So kompliziert ... Na, ich werden mal schauen, ob ich das Ding irgendwie noch als Variable oder Parameter reinbring, den man dann halt 1x angeben muss. Danke für die Info. Ciao, WolfgangE
------------------ An Optimist Is A Person Who Has Not Been Shown All The Facts Yet!!! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Schachinger Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 2041 Registriert: 08.04.2002
|
erstellt am: 01. Sep. 2004 11:26 <-- editieren / zitieren --> Unities abgeben: Nur für WolfgangE
ich hab sowas bis jetzt immer mit simpelsten mitteln gelöst. beim ausführen des gefehls der die txt-datei braucht wird zuerst direkt auf c: nach einer pfad-datei gesucht (z.b. "anwendung-path.set"). existiert diese datei noch nicht wird der user augefordert den pfad für die gewünschte text-datei anzugeben. dieser pfad wird in die "anwendung-path.set" geschrieben und beim nächsten aufruf braucht man den pfad nicht mehr angeben. die datei ist mit dem editor editierbar oder über eine option bei ausführen des befehls aus dem autocad (wenn man die zu suchende text-datei z.b. verschiebt oder ähnliches). ich weis - ist nicht sehr elegant, aber das wir die lösung die ich mir mit meinem begrenzten lisp-wissen zurecht gelegt habe und ist mit dein einfachen "open, read-line, write-line" etc. zu verwirklichen. ------------------ mfg Siegfried Schachinger http://www.tbschatz.at Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 01. Sep. 2004 14:10 <-- editieren / zitieren --> Unities abgeben: Nur für WolfgangE
Vielleicht noch ne Idee: (setq *ORGLOAD* LOAD) (defun load ( NAME ) (if(=(type NAME) 'STR) (progn (if (setq NAME(findfile NAME)) (setq *LISPPATHS* (cons (cons(strcat(cadr(fnsplitl NAME))(caddr(fnsplitl NAME))) (car(fnsplitl NAME)) ) *LISPPATHS* ) ) ) (*ORGLOAD* NAME nil) ) ) ) in die acaddoc.lsp integrieren. Anschließend hast du dann die Pfade der geladenen Lisp in der Variable *LISPPATHS*. Mit assoc usw. solltest du die dann auslesen können! Das Original "Load" kriegst du mit (setq Load *ORGLOAD*) zurück ------------------ - Thomas - Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
WolfgangE Mitglied
Beiträge: 1006 Registriert: 29.01.2003 Compass2000 in (fast) allen Ausbaustufen: Jobserver, ACM, Replikator, DBQ-Programmierung. Programmierung, Wartung und Administration von MSSQL2000-Datenbanken. Grundlegende Kenntnisse in AutoLisp-Programmierung.
|
erstellt am: 01. Sep. 2004 15:09 <-- editieren / zitieren --> Unities abgeben:
Hallo Thomas, danke erst mal, werd ich mal versuchen, auch wenn ich den Code nicht so ganz verstehe (mach nicht viel mit Lisp). ------------------ An Optimist Is A Person Who Has Not Been Shown All The Facts Yet!!! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |