Community
AutoCAD Produktfamilie - Deutsch
Das Forum für alle Fragen zu AutoCAD, LT, Architecture, Electrical, Map 3D, Mechanical, MEP, Plant 3D, Raster Design, Web App, sowie Autodesk Civil 3D und Advance Steel.
abbrechen
Suchergebnisse werden angezeigt für 
Anzeigen  nur  | Stattdessen suchen nach 
Meintest du: 

AutoCAD 2018 - Profile nur mit benötigten Anwendungen laden

16 ANTWORTEN 16
GELÖST
Antworten
Nachricht 1 von 17
karel.grygar.jr
513 Aufrufe, 16 Antworten

AutoCAD 2018 - Profile nur mit benötigten Anwendungen laden

Hallo zusammen,

 

wie kann man mit Öffnen einer DWG-Datei:

- entweder mit vordefinierten Profil <<ALT>> nur die Anwendung X.lsp laden

- oder mit vordefinierten Profil <<NEU>> nur die Anwendung Y.lsp laden

 

Es können auch mehrere AutoCAD Instanzen dafür geöffnet werden. Wie kann die DWG-Datei geöffnet werden, ist nicht gegeben (intern / extern) - ich passe mich einfach an.

 

Beide Profile sind mit entsprechenden Einstellungen in Optionen vorhanden (Pfade für Support-Datei, usw.). Die Anwendungen X.lsp und Y.lsp liegen in anderem Ordner.

 

Vielen Dank im Voraus für Ideen

 

 

 

If this solution helped you solve the problem, click on "Accept as solution". Your Like is also welcome.

Karel Grygar
EQOS Energie Deutschland GmbH
16 ANTWORTEN 16
Nachricht 2 von 17
hansschmid
als Antwort auf: karel.grygar.jr

Servus Karel,

 

aus Interesse. Was steckt als Idee dahinter?

Welchen Vorteil/Arbeitserleichterung bekommst du dadurch?

 

Vielen Dank im Voraus.

 

Grüße, Hans

Impavidi progrediamur
Nachricht 3 von 17
cadffm
als Antwort auf: karel.grygar.jr


@karel.grygar.jr  schrieb:

Hallo zusammen,

 

wie kann man mit Öffnen einer DWG-Datei:

- entweder mit vordefinierten Profil <<ALT>> nur die Anwendung X.lsp laden

- oder mit vordefinierten Profil <<NEU>> nur die Anwendung Y.lsp laden

 

In dem man dem Profil ALT (nur)die Anwendung X.lsp automatisch laden einstellt (APPLOAD/Startgruppe)

In dem man dem Profil NEU (nur)die Anwendung Y.lsp automatisch laden einstellt (APPLOAD/Startgruppe)

Diese Aussage bezieht sich explizit auf den Fall das man die AutoCAD-Instanz mit diesem jeweiligen Profil gestartet hat*.

 

*so brauche ich hier nicht erklären wie Appload/Startgruppe & Profile/Profilwechsel funktionieren.

 

...

 

Alternativ kann man das laden natürlich auch über Programmierung regeln (nicht über unterschiedliche Appload/Startgruppe zweier Profile),

damit ist man wesentlich flexibler - {ggf. müßte man dann noch mal über den Punkt sprechen >>" nur die Anwendung <<<<lsp laden"}

Ich nehme an es geht nicht um NUR DIESE als vielmehr um "die andere nicht", korrekt?

 

Beispiel:

Eine Datei die mit jedem Dokument geladen wird (sei es die ACADDOC.lsp oder eine Lispdatei in der APPLOAD/Startgruppe)

enthält dann so einen Part:

(cond

   ((= "PROFILX" (strcase(getvar 'CPROFILE)))(load "X.lsp"))

   ((= "PROFILY" (strcase(getvar 'CPROFILE)))(load "Y.lsp"))

   (t (princ "\nWeder ProfilX noch ProfilY ist das aktuelle Profil"))

)


 

- Sebastian -
Nachricht 4 von 17
karel.grygar.jr
als Antwort auf: cadffm

Hi @cadffm,

 

die Idee ist automatisiert mit bestimmten Profil nur bestimmte Anwendungen zu laden.

If this solution helped you solve the problem, click on "Accept as solution". Your Like is also welcome.

Karel Grygar
EQOS Energie Deutschland GmbH
Nachricht 5 von 17
cadffm
als Antwort auf: karel.grygar.jr

Wie gesagt, wenn die Instanz mit dem jeweiligen Profil gestartet wird (und das Profil beibehalten bleibt),

dann funktioniert es genau so.

Appload Startgruppe in ProfilX enthält LispX.lsp, Appload Startgruppe in ProfilY enthält LispY.lsp

fertig.

<noch einmal: Teste es entsprechend auch nur in einer Instanz die mit dem gewünschten Profil eröffnet wurde>

 

In jedem Fall sinnvoller/praxistauglicher ist jedoch die gezeigte Methode eine Lispfunktion immer ausführen zu lassen

und in dieser wird dann anhand des aktuell entschieden welche Datei geladen werden soll.

 

- Sebastian -
Nachricht 6 von 17
karel.grygar.jr
als Antwort auf: hansschmid

Servus Hans,

 

ich möchte nur bestimmte Version der Datenbank (Neu vs. Alt) über das Laden der entsprechende LISP-Datei regeln. Problem ist, dass die Datenbank aktualisiert wurde und die neue Version einige Probleme in DWG-Dateien macht, die mit einer älteren Version der Datenbank erstellt wurden. Falls ich die alte Datenbank lade, kann ich ohne Probleme die ältere Zeichnungen verarbeiten.

If this solution helped you solve the problem, click on "Accept as solution". Your Like is also welcome.

Karel Grygar
EQOS Energie Deutschland GmbH
Nachricht 7 von 17
karel.grygar.jr
als Antwort auf: cadffm

Hi @cadffm,

 

mit den Profilen und den dazugehörigen Anwendungen in der Startgruppe war mir das klar, trotzdem danke schön 😉

Bei dieser Lösung muss man ja zuerst AutoCAD mit dem gewünschten Profil starten (2 Icons auf dem Desktop mit unterschiedlichen "Ziel"-Inhalten). Funktioniert, Benutzer muss ja aufpassen.

 

Zur Anwendung vom 2. Profil kommt es wahrscheinlich nur in 10% aller geöffneten DWG-Datein, in restlichen 90% wird immer 1. Profil eingesetzt. Es geht beim 2. Profil nur um Anpassungen der älteren Unterlagen (alte Datenbank). Falls ich ständig zwischen zwei (mehreren) Profilen switchen sollte, dann ist die Methode mit Lispfunktion bestimmt sinnvoll. Welche Vor- und Nachteile bringt sie, was kann man damit allgemein anders/einfacher steuern?

 

 


@cadffm  schrieb:

Ich nehme an es geht nicht um NUR DIESE als vielmehr um "die andere nicht", korrekt?


Kann, aber muss nicht sein. Es könnten auch 10 LISPs sein, und nur eine einzige Routine davon pro Profil variiert 😊.

 

If this solution helped you solve the problem, click on "Accept as solution". Your Like is also welcome.

Karel Grygar
EQOS Energie Deutschland GmbH
Nachricht 8 von 17
cadffm
als Antwort auf: karel.grygar.jr

Wenn das klar war, was war dann die Frage?

Stehe auf dem Schlauch.

 

 

>>"

Falls ich ständig zwischen zwei (mehreren) Profilen switchen sollte, dann ist die Methode mit Lispfunktion bestimmt sinnvoll. Welche Vor- und Nachteile bringt sie, was kann man damit allgemein anders/einfacher steuern?"

 

Als Erstes müßte ich wissen was mit SWITCHEN genau gemeint ist, aber so schauts aus:

 

1. Ich habe dann nur eine Sache zu pflegen, nämlich den Inhalt der LSP Datei die immer geladen wird, zum Beispiel die AcadDoc.lsp

 

2. Zugleich kann das dann eine Datei sein in der man auch vieles weitere steuert,

wieder ist man beim Thema nur eine Stelle pflegen zu müssen.

 

3. Wenn der einzige Unterschied zwischen den Profilen das Laden von LispX und Y ist,

dann müßte man jede Profiländerung in beiden Profilen vornehmen.

Geht man aber den genannten Weg so reicht ein Profil und regelt das umstellen anders, zB. durch setzen einer Variable.

(Anm: Wir wissen nicht was es mit der Datenbank auf sich hat, für uns Leser ist die DB, LispX und LispY eine BlackBox , daher nehme ich zunächst an der Zugriff ist einfach zu steuern und umzuschalten wann man will)

 

Und da BlackBox Diskussionen nur spannend sind wenn keiner Einblick hat..

 

viel Spaß beim tüfteln

Oftmals gibt es doch innerhalb einer DWG eindeutige Kriterien zu bestimmen ob es die Alte oder die Neue zu nutzen ist,

schon kann man den User als Fehlerquellen ganz ausschliessen.

 

Oder man hat ganz manuell ein Knöpfen über den bestimmt wird alte/neu,

oder oder oder

 

🙂

 

 

 

- Sebastian -
Nachricht 9 von 17
hansschmid
als Antwort auf: karel.grygar.jr

Danke Karel, für deine Erklärung.

 

Grüße, Hans

Impavidi progrediamur
Nachricht 10 von 17
karel.grygar.jr
als Antwort auf: cadffm

Hallo @cadffm ,

 

danke dir für deine Infos zur Lispfunktion. Ich muss beide Methoden berücksichtigen (zuerst ACAD starten, dann Datei öffnen / Datei direkt starten), da die User ja nicht immer Kopf benutzen 😉. Jetzt habe ich mindestens ein Horizont im Visier. Sorry für die Fachbegriffe und eventuelle allgemeine / ungenau Äußerungen, bin (leider) kein Programmierer.

 

Die Datenbank wurde irgendwann vor X-Jahren programmiert, ruft immer die gleichen evtl. neue Funktionen auf (identische Start-LISP zum Aufrufen der Datenbank in allen Versionen, wo weitere LISP- und .NET-Dingsbums geladen werden). Einziger Merkmal wo man Unterschied sofort sieht, ist ein Info zur konkreten geladenen Datenbankversion in der Befehlszeile. Ich kann aber diese Versionsnummer nicht greifen, ist tief implementiert. Darum hat man zwei Ordner mit einer alten und neuen Datenbank.

 

Problem ist, wenn man unter 2 verschiedenen Versionen die gleiche Objekte erstellt oder anpasst (speziell Blöcke mit Attributen), benutzt das im Hintergrund wahrscheinlich ein Bisschen unterschiedliche Definitionen für diese Objekte in identischen LISP / .NET Dateien. Hier wurde was Grundsätzliches geändert und niemand will das anpassen, damit sich die Objekte nach dem DWG-Öffnen nicht verändern (ältere DWGs). 

 

Ich versuche mich in die Lispfunktion irgendwie einarbeiten.... und natürlich wir werden nur alt 😊.

If this solution helped you solve the problem, click on "Accept as solution". Your Like is also welcome.

Karel Grygar
EQOS Energie Deutschland GmbH
Nachricht 11 von 17
karel.grygar.jr
als Antwort auf: cadffm

Gibt's Möglichkeit, dass man Name des geladenen Profiles in der oberen Leiste im AutoCAD neben der Dateiname darstellen würde?

If this solution helped you solve the problem, click on "Accept as solution". Your Like is also welcome.

Karel Grygar
EQOS Energie Deutschland GmbH
Nachricht 12 von 17
cadffm
als Antwort auf: karel.grygar.jr

Moin,

 

>>"Ich muss beide Methoden berücksichtigen (zuerst ACAD starten, dann Datei öffnen / Datei direkt starten),"

 

1. Ach jetzt, ja. Hmm

In dem Fall kannst du die Startgruppe vergessen,

da sind wir beim Punkt was bei einem Profilwechsel passiert und da funktioniert das nicht so wie man denken würde.

Natürlich funktioniert es wenn die Instanz mit dem richtigen Profil gestartet wurde, weitere Dateien öffnen = kein Problem,

aber Profilwechsel in einer Session könnte man so nicht korrekt handeln.

Selbst die aufgezeigte Lispvariante funktioniert in dem Fall nicht problemlos!

Ab hier sind wir dann bei "Entscheidungskriterium muss in der DWG vorhanden sein" oder der Code muss zumindest etwas aufwändiger werden.

 

 

2. Wenn beim Öffnen einer DWG die Info im Textfenster [F2] erscheint, dann steht die Info auch im Logfile, also kann man beim eingeschalteten Logfile per Lisp den Inhalt auslesen und so ermitteln welche Lisp benötigt wird.

Die Frage ist ob du das recht beschrieben hast bzw. ich richtig verstanden:

Bist du sicher die Angabe kommt mit dem öffnen der DWG UNABHÄNGIG davon welche Datenbank geladen wird, oder ist das nur die Info welche Datenbank aktuell dran hängt?

Also: Steht diese Info da auch wenn weder LispX noch Y geladen wird?

Dann: Logfile auslesen, anhand der Information dann LispX oder LispY laden lassen.

- Sebastian -
Nachricht 13 von 17
cadffm
als Antwort auf: karel.grygar.jr

Anzeige des Profilnamens:

Mit Lisp hast du imho keinen direkten Zugriff das zu manipulieren (ob das um 2 Ecken geht OHNE .Net/C++, keine Ahnung).

Aber wie oben nun angesprochen: Das aktuelle Profil(und die Startgruppe) taugt in dem Fall nicht,

also hat sich dies ohnehin erledigt.

- Sebastian -
Nachricht 14 von 17
karel.grygar.jr
als Antwort auf: cadffm

Ja von der geladene LispX  oder LispY ist die Datenbank abhängig. Logfile ist bei uns standardmäßig deaktiviert (Logfilemode=0) - warum, ist fraglich 😀. Ich habe es aktiviert und eine Logdatei siehe Anhang. Du findest dort Sektionen, die mit "Module Version xx.x" anfängt. 

 

Falls ich im AutoCAD anderes Profil manuell auf "aktiv" setze, werden erst nach ACAD-Neustart die Änderungen wirksam.

 

Der Code ist seeeeehr aufwändig und strukturiert. Ich kann leider nichts posten, da Copyright. 

 

Das Info zur Datenbank steht dort nur, wenn LispX oder Lisp Y geladen werden. Falls ich keine lade, steht dort nichts und auch die Tools "unbekannt" sind = keine Lisps, .NET geladen.

 

 

 

 

If this solution helped you solve the problem, click on "Accept as solution". Your Like is also welcome.

Karel Grygar
EQOS Energie Deutschland GmbH
Nachricht 15 von 17
karel.grygar.jr
als Antwort auf: cadffm

Ja das aktive Profil oben in der leiste wäre eine sehr hilfreiche Information für alle unsere Benutzer, da ist man sicher, welche Datenbank aktiv ist, falls AutoCAD nicht gezielt gestartet wurde. OK da kann man in Optionen auch schauen. Manchmal ist das für ältere Generationen ja little bit komplizierter 😁.

If this solution helped you solve the problem, click on "Accept as solution". Your Like is also welcome.

Karel Grygar
EQOS Energie Deutschland GmbH
Nachricht 16 von 17
cadffm
als Antwort auf: karel.grygar.jr

Anhand des aktuellen Profils ist eben NICHT sichergestellt das die richtige Lispdatei am werkeln ist!

 

Für die User bei denen du denkst das es eine Hilfe wäre das aktuelle Profil zu sehen:

 

Anstatt in der Titelzeile können die diese Info auch gerne in der Statusleiste ignorieren 😉

 

 

MODEMACRO

Aktuelles Profil ist: $(getvar,CPROFILE)

 

 

- Sebastian -
Nachricht 17 von 17
karel.grygar.jr
als Antwort auf: cadffm

schön gesagt 😀, die User interessieren sich gar nicht für die Datenbankversion, darum suche ich eine Lösung für "alle Gehirnkategorien". Hoffentlich wird es mit dem Wetter besser.

 

PS: ich weiß, was ich lade, die anderen denken das nur

If this solution helped you solve the problem, click on "Accept as solution". Your Like is also welcome.

Karel Grygar
EQOS Energie Deutschland GmbH

Sie finden nicht, was Sie suchen? Fragen Sie die Community oder teilen Sie Ihr Wissen mit anderen.

In Foren veröffentlichen  

Autodesk Design & Make Report