| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Request a special discount on NVIDIA RTX 5000 Ada Generation GPU !, eine Pressemitteilung
|
Autor
|
Thema: Finddir oder so, gibt es so was? (1334 / mal gelesen)
|
ryfCAD Mitglied Architekt
Beiträge: 126 Registriert: 21.06.2005 ryfCAD rC Architektur für AutoCAD und GstarCAD
|
erstellt am: 12. Jun. 2016 12:22 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, wie finde ich heraus, in welchem Verzeichnis eine Menüdatei liegt, die durch den User geladen wurde? Beispiel: Der User installiert meine Applikation beliebig, ich weiss nicht wohin und wie er mein Applikationsverzeichnis benennt hat. Nun lädt er meine Menüdatei. Ich möchte nun anhand des Standortes der eben geladenen Menüdatei herausfinden, wo diese liegt. Findfile funktioniert nicht, da der Suchpfad zu meiner Applikation ja noch fehlt. Die Ermittlung löse ich mittels der zugehörigen Menülisp- Datei aus, die automatisch angestossen wird. Eine Art "Finddir" Zweck: Sobald ich den Standort weiss trage ich den Suchpfad zu meiner Applikation in die Liste der AutoCAD- Supportdateien ein, übergebe den Pfad an eine Variable und trage diese in die Registry (Backslash's ersetzt durch Slash's) ein. Meine Applikation kann durch den User an einen Beliebigen Standort installiert werden. Wofür? Der User muss sich nicht um die Supportumgebung kümmern. Die Funktion der Applikation wird einzig durch das Laden meines Menüs gewährleistet. wäre doch genial? ------------------ Auch für LT gibt es Lösungen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 12. Jun. 2016 13:16 <-- editieren / zitieren --> Unities abgeben: Nur für ryfCAD
|
ryfCAD Mitglied Architekt
Beiträge: 126 Registriert: 21.06.2005 ryfCAD rC Architektur für AutoCAD und GstarCAD
|
erstellt am: 12. Jun. 2016 13:57 <-- editieren / zitieren --> Unities abgeben:
Ich möchte nichts rumkopieren. Mein Lösungsansatz: Der User kann z.B meine Lisp laden und ich suche dann den Pfad der Lisp. Wird ja evtl. In der Registery eingetragen sein. ------------------ Auch für LT gibt es Lösungen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 12. Jun. 2016 14:25 <-- editieren / zitieren --> Unities abgeben: Nur für ryfCAD
... du schreibst, dass ein User deine Applikation installiert ... was meinst du damit? Von Lisp aus hast du keine Chance herauszufinden von wo aus diese geladen wurde. Den einzigen Weg den ich kenne, geht nur mit ObjectARX. Grüße! Holger ------------------ Holger Brischke CAD on demand GmbH Individuelle Lösungen von Heute auf Morgen.
defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ryfCAD Mitglied Architekt
Beiträge: 126 Registriert: 21.06.2005 ryfCAD rC Architektur für AutoCAD und GstarCAD
|
erstellt am: 12. Jun. 2016 14:49 <-- editieren / zitieren --> Unities abgeben:
Meine Applikation ryfCAD wird durch eine Setup.exe durch den User in seine Verzeichnisstruktur installiert: ..\ryfCAD2017 Im Verzeichnis ryfCAD befinden sich weitere Unterverzeichnisse, z.B. Block Wo aber liegt nun ryfCAD1017 ? Ich weiss es nicht. Ziel: Installation meines Verzeichnisses ryfCAD2017 inkl. Unterverzeichnisse mittels einer Setup.exe durch den User. Alles kein Problem. Aber wie erreiche ich den Eintrag des Suchpfades zu ryfCAD2017 und das Laden der ryfCAD.CUI? Var. 1 Manueller Eintrag durch User, danach mittels ..\ryfCAD2017\ACAD.LSP laden von ryfCAD.cui (2. ACAD.LSP ???) Var. 2 Appload ryfCAD.Lsp durch User, auslesen wo ryfCAD.lsp liegt. Eintrag des Pfades in ACAD-Supportpfade mittels Lisp. ryfCAD.Lsp lädt ryfCAD.cui. ------------------ Auch für LT gibt es Lösungen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 12. Jun. 2016 16:01 <-- editieren / zitieren --> Unities abgeben: Nur für ryfCAD
|
Brischke Moderator CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 12. Jun. 2016 16:09 <-- editieren / zitieren --> Unities abgeben: Nur für ryfCAD
... für eben diese Aufgabenstellung ist der zuerst gepostete Link die Lösung. Du kannst ja unabhängig von diesem Autoload-Appverzeichnis den Dpeicherort der Blöcke während des Setups sonstwohin festlegen lassen. Dann solltest du aber auch darauf achten, dass durch das Setup die Berechtigungen korrekt gesetzt werden, besonders wenn die Installation in das Programme- Verzeichnisse erfolgt. Grüße Holger ------------------ Holger Brischke CAD on demand GmbH Individuelle Lösungen von Heute auf Morgen.
defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ingenieur Studio HOLLAUS Mitglied CAD / CAFM / GIS Beratung-Programmierung-Schulung
Beiträge: 1049 Registriert: 06.11.2008
|
erstellt am: 12. Jun. 2016 17:31 <-- editieren / zitieren --> Unities abgeben: Nur für ryfCAD
Zitat: Nun lädt er meine Menüdatei. Ich möchte nun anhand des Standortes der eben geladenen Menüdatei
Ich nehme an, es wird diese Menüdatei partiell geladen, oder? In dem Fall kann man die Liste der geladenen CUIX durchgehen, wenn man die eigene (per Name) gefunden hat, dann kommt man auch zu dem Pfad dieser Datei. Code: (vlax-for aobj (vla-get-menugroups (vlax-get-acad-object)) (print (vla-get-MenuFileName aobj)) )
------------------
www.cars4fun.at Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
archtools Mitglied
Beiträge: 965 Registriert: 09.10.2004 Entwickler für AutoCAD, BricsCAD u.a., alle Systeme
|
erstellt am: 12. Jun. 2016 21:40 <-- editieren / zitieren --> Unities abgeben: Nur für ryfCAD
Zitat: Original erstellt von ryfCAD:
Der User muss sich nicht um die Supportumgebung kümmern. Die Funktion der Applikation wird einzig durch das Laden meines Menüs gewährleistet.wäre doch genial?
Im VitalLisp wurde für jede geladene VLX der Pfad gespeichert. Nachdem Autodesk VitalLisp aufgekauft hatte, war die zweite Änderung nach der Umbenennung in VisualLisp die ersatzlose Streichung dieser überaus nützlichen Funktionalität. Aktuell kannst Du aus Lisp heraus nur den gesamten Verzeichnisbaum nach Deiner CUIX oder MNU usw. durchsuchen, und musst hoffen, dass dabei nur eine einzige Version dieser Datei gefunden wird. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ryfCAD Mitglied Architekt
Beiträge: 126 Registriert: 21.06.2005 ryfCAD rC Architektur für AutoCAD und GstarCAD
|
erstellt am: 13. Jun. 2016 11:17 <-- editieren / zitieren --> Unities abgeben:
Den Suchpfad mittels der geladenen CUIX- Dateien herausfinden ist ein guter Ansatz, wahrscheinlich auch der einzige Weg für Variante 2 Aber ich denke, ich suche den Weg über Variante 1: Der User trägt über die Optionen den Suchpfad zu meinem Stamm- Applikationsverzeichnis ein (Welcher normale User weiss schon was Appload oder Menuload ist?) Danach lade ich automatisch partiell meine Menüdatei zu und stosse via zugehöriger Menülisp das Karussel meiner Initialisierung an: Mit Findfile (Pfad ist ja nun manuell durch User gesetzt) lese ich den Suchpfad zu meiner CUI aus und trage diesen (wichtig: Backslash zu Slash umgewandelt!) via Variable in die Registry. Somit klappt es dann auch z.B. mit der Blockeinfügerei aus der Menüdatei ohne fixe Pfadverdrahtung. Weitere Suchpfadeinträge sind somit überflüssig. Ich kann mir von da an den Pfad zur benötigenden Datei herleiten und übergeben. Versucht der User über menuload oder appload die Applikation anzustossen wird mit Hinweis auf fehlenden Supporteintrag abgebrochen. Jetzt muss ich nur noch herausfinden, wie ich das Karussel automatisch anstossen kann. Evtl. durch zweite ACAD.lsp in meinem Applikationsverzeichnis??? Ist Jahre her seid meiner letzten Lispelei... Muss alles wieder nachlesen und dann kommt auch wieder die Erleuchtung. Danke euch allen!
------------------ Auch für LT gibt es Lösungen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3336 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 13. Jun. 2016 11:48 <-- editieren / zitieren --> Unities abgeben: Nur für ryfCAD
Hi, nur mal zwei Denkanstöße: Der User könnte dir im Supportpfad einen Ordner unterjubeln, in den du nicht schreiben darfst. Oder er könnte dir einen Ordner unterjubeln, den es gar nicht gibt. Halte es für dich so einfach wie möglich, denn du willst das Procedere auch in ein paar Jahren noch verstehen können. Und falls du das für User in deinem Unternehmen erstellst: Wenn dich übernächste Woche der Blitz oder ein Lottogewinn trifft, sollte dann nicht jemand anders mit deiner Einrichtungsumgebung klarkommen? Darüber hinaus halte es für die User so einfach wie möglich. Einige sind mit dem Aufruf der Optionen schon überfordert und erst recht mit einem Eintrag in den Supportpfad. Und eigentlich ist es den meisten vollkommen wumpe, wohin sich ein Tool installiert, daher kannst du den Pfad auch gleich vorgeben. Nur meine 2ct. Gruß CADchup ------------------ CADmaro.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 13. Jun. 2016 12:17 <-- editieren / zitieren --> Unities abgeben: Nur für ryfCAD
Zitat: Original erstellt von ryfCAD: ... Ist Jahre her seid meiner letzten Lispelei...
In welcher Sprache ist denn deine Applikation programmiert? Wenn das eine DLL ist, dann kannst du durch das Setup bestimmte Registry-Einträge erzeugen lassen, die beim nächsten Start von AutoCAD das automatische Laden deiner Applikation bewirken. Ich habe das Gefühl, du bist in dem von dir angedachten Weg gedanklich gefangen?? Grüße! Holger
------------------ Holger Brischke CAD on demand GmbH Individuelle Lösungen von Heute auf Morgen.
defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ryfCAD Mitglied Architekt
Beiträge: 126 Registriert: 21.06.2005 ryfCAD rC Architektur für AutoCAD und GstarCAD
|
erstellt am: 13. Jun. 2016 15:42 <-- editieren / zitieren --> Unities abgeben:
ryfCAD ist ursprünglich eine Architektur-Applikation für AutoCAD LT bis zur Version 2011. Sie besteht aus einer Menüdatei mit Dieselmakros, die Registry- Einträge setzen und auslesen, sowie über 3000 normgerechte Blöcke im Bereich Architektur. Aus beruflichen und gesundheitlichen Gründen musste ich das Projekt 6 Jahre auf Eis legen. Inzwischen hat sich vieles im Bereich AutoCAD Alternativen getan. GstarCAD, ZWCAD, Arescommander, ProdgeCAD etc. alles viel kostengünstiger und einfacher programmierbar als AutoCAD LT. Dies ist für mich der Grund, meine 2D-Applikation auf Lisp zu portieren. 2D Pläne sind in der Architektur immer noch das tägliche Brot und Tools zur automatischer Erstellung diverser (in Schweizer Norm) gezeichneter Bauteile (Türen, Fenster, Wände, Treppen etc.) sind sehr gefragt. Mehr soll die Applikation auch nicht können: www.ryfcad.ch------------------ Auch für LT gibt es Lösungen, aber Lisp erleichtert das Leben ungemein Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas Kraus Mitglied Elektrotechniker
Beiträge: 1455 Registriert: 11.01.2006 WIN 10 ACAD 2022 BricsCAD V23
|
erstellt am: 14. Jun. 2016 10:08 <-- editieren / zitieren --> Unities abgeben: Nur für ryfCAD
Hallo, hab eben erst gelesen was du vorhast. Ich verwende auch Teilmenüs und LISP und Pfade in den Optionen usw. und habe für jedes Teilmenü eine MNL in der der Pfad der entsprechenden Menüdatei (wenn nicht schon geschehen) in die Supportpfade eingetragen wird. Auch gleich noch andere Pfade die relativ zum Menüpfad ermittelt weden. Funktioniert schon Jaaaahhhhre einwandfrei, kann ich nur empfehlen . Teilmenü laden und ALLES ANDERE ist automatisiert . Das Argument, dass vielleicht ein User Appload oder Menuload nicht kennt, lass ich mal nicht zu, denn wenn ein User das schon nicht weis, hat der in den Supportpfaden schon mal gar nichts zu suchen .
------------------ Geht nicht, gibts nicht Gruß Andreas http://kraus-cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3336 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 14. Jun. 2016 10:18 <-- editieren / zitieren --> Unities abgeben: Nur für ryfCAD
|
ryfCAD Mitglied Architekt
Beiträge: 126 Registriert: 21.06.2005 ryfCAD rC Architektur für AutoCAD und GstarCAD
|
erstellt am: 14. Jun. 2016 16:28 <-- editieren / zitieren --> Unities abgeben:
Nun, wenn ich ehrlich bin, ich portiere von AutoCAD auf einen ACAD-Clone, GstarCAD. Andere werden auch funktionieren, ich beschränke mich auf Lisp. Weshalb GstarCAD, nicht ein anderer Clone kann ich vielleicht in einer anderen Diskussion erläutern. ------------------ Auch für LT gibt es Lösungen, aber Lisp erleichtert das Leben ungemein Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |