| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Eigene Sysvar (914 mal gelesen)
|
Stelli1 Moderator Verm.-Ing.
Beiträge: 1521 Registriert: 17.08.2005 Map 2000-2014, Rasterdesign, MapGuide, Autodesk Topobase, VS6, VS.net 2013
|
erstellt am: 28. Sep. 2005 15:42 <-- editieren / zitieren --> Unities abgeben:
Hallo, eigene Voreinstellungen kann man ja in der Registry speichern. Geht das auch in AutoCAD als Sysvar ? etwa so:
Code:
' Varname = "MyColor" ' Vardata = CStr(Farbe) ' ThisDrawing.SetVariable Varname, Vardata
Stelli------------------ Warum lisp'eln wenn's auch anders geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
startrek Moderator Architekt
Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 28. Sep. 2005 18:20 <-- editieren / zitieren --> Unities abgeben: Nur für Stelli1
Hi Stelli, Bei GetVariable() steht: Name: [...] must contain a valid system variable name [...] Du willst auf sowas wie:
Code:
'alert, das ist kein Code ;-) dim myVar as AcadSysVar set myVar = Application.AcadSysVars.Add("my_own_sysvar")
hinaus? Klar, die Methodik gibts nicht, war jetzt nur symbolisch gemeint.;-)Keine Ahnung, wie man Acad davon überzeugen kann, was 'eigenes' als eine 'valid', also gültige Sysvar anzuerkennen/anzulegen. Vielleicht über eigene Klassen? Aber autsch, da kenn ich mich nicht so dolle aus, BTW, was möchtest du denn damit grundsätzlich erreichen? Gruss Nancy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stelli1 Moderator Verm.-Ing.
Beiträge: 1521 Registriert: 17.08.2005 Map 2000-2014, Rasterdesign, MapGuide, Autodesk Topobase, VS6, VS.net 2013
|
erstellt am: 28. Sep. 2005 18:37 <-- editieren / zitieren --> Unities abgeben:
Hallo Nancy, wäre schön wenn es so laufen würde. Wenn man mit Save/GetSettings arbeitet landet das ganze in der Registry unter "Hkey_current_user/Software/VBA Sett..." Man hat mit VBA wenige Möglichkeiten. Irgendwann gibst da ein Chaos. Für VB habe ich da mit der WinApi meine Funktionen. Aber die wollte ich eigentlich nicht in VBA benutzen. Mit einer VB-DLL finde ich auch nicht gut weil man die immer mit Austauschen muss. Da lag der Weg nahe das als SYSVAR zu speichern. Eben das Loch an der dünnsten Stelle aufbohren. Geht dann wohl leider nicht. Trotzdem Danke Stelli ------------------ Warum lisp'eln wenn's auch anders geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 ACAD 2008 Mechanical
|
erstellt am: 28. Sep. 2005 22:04 <-- editieren / zitieren --> Unities abgeben: Nur für Stelli1
Zitat: Original erstellt von Stelli1:
Warum lisp'eln wenn's auch anders geht...
Mit Lisp machst du einfach ein (setq a "Hallo") und damit gibts die Variable in der Acad-zeichnung bis zum schließen oder überschreiben. Permanent kannst du was in dictionaries ablegen... dann wären noch EED's an Objekten. Die vl-bb-set und vl-bb-ref -Funktion für Zeichnungsübergreifende Variablen via blackboard. Und letzendlich läßt sich auch (und das auch in VBA ) das Document.SummaryInfo-Object mißbrauchen. Systemmäßig bleibt bloß die Registry bzw. ne Ini-Datei ect.
------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stelli1 Moderator Verm.-Ing.
Beiträge: 1521 Registriert: 17.08.2005 Map 2000-2014, Rasterdesign, MapGuide, Autodesk Topobase, VS6, VS.net 2013
|
erstellt am: 28. Sep. 2005 23:43 <-- editieren / zitieren --> Unities abgeben:
Hallo Thomas, danke für die Antwort. Warum lisp'eln wenn's auch anders geht... Muss es im Moment, da ich mir eigentlich vorgenommen hatte nichts mit Lisp zu tun haben zu wollen. Geht aber anscheinend nicht ganz ohne. Zur Zeit laüft eine größere Migration die es mir einerseits erlaubt etwas Zeit (Wartezeit) hier im Forum zu stöbern, aber auf der anderen Seite keine Zeit läßt (im Moment) noch Lisp zu lernen. Da gibt es denn auch noch eine Menge mit .net zu verfeinern. Zur Lösung der aktuellen Frage werde ich mal versuchen (VB/A) Zeichnungsbezogene Variablen in ein Dictionary zu bringen und den Rest halt in die Registry. Mit der Sysvar hätte es wohl auch den Nachteil das die im Benutzerprofil steht. Zur gegeben Zeit würde ich mich aber gerne auf deine und eure Unterstützung freuen um ein wenig an lisp ranzukommen. Stelli1
------------------ Warum lisp'eln wenn's auch anders geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mapcar Mitglied CADmin
Beiträge: 1250 Registriert: 20.05.2002 Die Phönizier haben das Geld erfunden - aber warum so wenig? (Johann Nepomuk Nestroy)
|
erstellt am: 29. Sep. 2005 23:45 <-- editieren / zitieren --> Unities abgeben: Nur für Stelli1
Man sollte sich einfach vor der Vorstellung hüten, dass es in AutoCAd wirklich Sysvars gibt im Sinne einer einheitliche internen Tabelle oder so. Die Sysvars zerfallen ja sowieso schon mal in diejenigen, die in der Zeichnung gespeichert werden, diejenigen, die in die Reg kommen, und dann noch die, die gar nicht gespeichert werden (können). Bei der Programmierung über ARX oder .NET tritt das deutlich zutage: Da muss man oft sehr verschiedene Wege gehen, um an den Inhalt einer sogenannten 'Sysvar' zu kommen. Die 'Sysvars' sind nur ein Oberflächenkonzept des interaktiven AutoCAD. Eine erweiterbare Tabelle exisitiert definitiv nicht, da nicht mal eine nicht-erweiterbare Tabelle existiert. Und dann existieren auch noch 'Sysvars', die sich dem 'Sysvar'-Mechanismus versagen:-( Für Applikationsdaten stehen die Uservariablen (sehr begrenzt), Extzended Entity Data sowie die Dictionaries zur Verfügung. Gruß, Axel Strube-Zettler ------------------ Meine AutoLisp-Seiten Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|