| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Visuelle Fabrikplanung und Echtzeit-Monitoring in der Produktion, ein Webinar am 13.11.2024
|
Autor
|
Thema: Profilwechsel über Icon (1981 mal gelesen)
|
stcad2011 Mitglied
Beiträge: 4 Registriert: 12.09.2012 Win 7 AutoCad 2011
|
erstellt am: 12. Sep. 2012 09:04 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen Ich bin verzweifelt. Ich suche seit langem eine Möglichkeit wie wir im Geschäft schnell zwischen zwei Profilen wechseln können. Mein Wunsch: AutoCad 2011 läuft mit Profil A. Um schnell zum Profil B zu wechseln möchte ich zwei Icons mit einem Makro erstellen welches mir Profil A oder B lädt. Bis jetzt habe ich erst hinbekommen wie mann die Optionen öffnet. Ich bin in AutoCad ziemlich sattelfest, habe aber von der Makroprogrammierung und Iconprogrammierung Null Ahnung!! Danke für Eure Hilfe stcad2011 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 12. Sep. 2012 09:31 <-- editieren / zitieren --> Unities abgeben: Nur für stcad2011
eine IMHO schnelle Möglichkeit ist die Zeile (command "_+options" 9) als Buttonmakro ( ---> CUI ) .. die 9 steht für die Registerkarte im Optionsdialog ... Via Lisp und ActiveX gäbes es noch sowas zum Profil umschalten
(defun DT:PROFILE-AKTIV-SET ( PROFILNAME / PROFILES PNAMES) (setq PROFILES(vla-get-profiles(vla-get-preferences(vlax-get-Acad-Object)))) (vla-GetAllProfileNames PROFILES 'PNAMES) (and(=(type PROFILNAME) 'STR) (member(strcase PROFILNAME) (mapcar '(lambda(X) (strcase X))(vlax-safearray->list PNAMES)) ) (not(vl-catch-all-error-p (vl-catch-all-apply 'vla-put-ActiveProfile (list PROFILES PROFILNAME)) ) ) (=(strcase PROFILNAME) (strcase(vla-get-activeprofile PROFILES)) ) ) ) und zum Importieren .... (defun DT:PROFILE-IMPORT(PROFILNAME DATEINAME) (and(=(type PROFILNAME)'STR)(=(type DATEINAME)'STR) (not(vl-catch-all-error-p (vl-catch-all-apply 'vla-ImportProfile (list(vla-get-profiles(vla-get-preferences(vlax-get-Acad-Object))) PROFILNAME DATEINAME :vlax-false ) ) ) ) ) )
------------------ - 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 |
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8086 Registriert: 09.03.2006 Kinder, kauft Kämme! Es kommen lausige Zeiten.
|
erstellt am: 12. Sep. 2012 09:45 <-- editieren / zitieren --> Unities abgeben: Nur für stcad2011
08/15-Lösung für VBA: Makros:
Code: Sub PROFIL_A() Application.Preferences.Profiles.ActiveProfile = "ProfilA" End Sub Sub PROFIL_B() Application.Preferences.Profiles.ActiveProfile = "ProfilB" End Sub
Code für den button:
Code: ^C^C^P(if eq(getvar(CPROFILE) "ProfilA") (command "_-vbarun" "PROFIL_A") (command "_-vbarun" "PROFIL_B"))
Achtung, toggelt nicht nur zwischen A&B, sondern setzt B immer dann, wenn A nicht aktiv ist. VBA-Modul muss (nach)installiert sein. HTH Nachtrag: bitte auch noch google oder Antonius befragen, >> hier << oder >> hier << wären imho auch noch Ansätze drin. Gibt noch mehr... ------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
stcad2011 Mitglied
Beiträge: 4 Registriert: 12.09.2012 Win 7 AutoCad 2011
|
erstellt am: 12. Sep. 2012 10:34 <-- editieren / zitieren --> Unities abgeben:
Danke mal im Voraus. Habe das VBA-Modul installiert, die Makros im Modul1 eingefügt und den Code auf dem Button eingefügt. Zur Zeit habe ich noch einen Syntaxfehler. Dies liegt aber wahrscheinlich daran, dass meine VBA-Kentnisse sich auf VBA-Excel beschränken. Somit muss ich noch üben und testen. Oder mache ich was anderes falsch? Ich melde mich wenn ich's hinbekommen habe. Gruss stcad2011 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
stcad2011 Mitglied
Beiträge: 4 Registriert: 12.09.2012 Win 7 AutoCad 2011
|
erstellt am: 12. Sep. 2012 10:52 <-- editieren / zitieren --> Unities abgeben:
Ich bin's nochmals. Gehe ich richtig davon aus, dass ich das VBA-Modul vor dem Ausführen vom Button zuerst laden muss mit einem _appload? Sonst habe ich ja die Makros nicht im Projekt vorhanden. Danke fürs Helfen! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8086 Registriert: 09.03.2006 Kinder, kauft Kämme! Es kommen lausige Zeiten.
|
erstellt am: 12. Sep. 2012 11:11 <-- editieren / zitieren --> Unities abgeben: Nur für stcad2011
|
stcad2011 Mitglied
Beiträge: 4 Registriert: 12.09.2012 Win 7 AutoCad 2011
|
erstellt am: 12. Sep. 2012 16:49 <-- editieren / zitieren --> Unities abgeben:
Hallo Ich habe es hinbekommen. Für euch Profis vieleicht nicht ganz so elegant aber es funktioniert. Die VBA und CUI Einstellungen von Runkelruebe habe ich verwendet. Musste natürlich zuerst auf allen Rechner den VBA-Editor installieren. Damit die Funktion auch von Start weg läuft, habe ich die "Projekt.dvb" in der Startgruppe hinzugefügt. Nun kann jeder User im Betrieb via Icon bei Bedarf das Profil wechseln. Danke für Eure schnelle und ausführliche Hilfe! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kali84 Mitglied Tischler
Beiträge: 1 Registriert: 29.04.2016
|
erstellt am: 29. Apr. 2016 08:24 <-- editieren / zitieren --> Unities abgeben: Nur für stcad2011
|
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 29. Apr. 2016 09:03 <-- editieren / zitieren --> Unities abgeben: Nur für stcad2011
Wenn du von einem Syntaxfehler schreibst, dann hast du wohl versucht das Menümakro von oben 1:1 zu übernehmen? Also setzt du auf die VBA-Variante für das Profilsetzen? Dann nehme dieses Menümakro für deine Schaltfläche: ^C^C^P$M=$(if,$(eq,$(upper,$(getvar,CPROFILE)),$(upper,"EinProfilnameB")),_.-vbarun;PROFIL_A,_.-vbarun;PROFIL_B) Wobei ich deine verwendeten Profilnamen nicht kenne, das mußt du natürlich noch anpassen. ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD 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: 29. Apr. 2016 09:32 <-- editieren / zitieren --> Unities abgeben: Nur für stcad2011
Hi, also ganz ehrlich, bevor jemand auf die Idee kommt das VBA-Modul zu installieren nur um Profile umzuschalten: Das ist irgendwie drüber. Eine sehr, sehr große Kanone, die auf einen sehr, sehr kleinen Spatz schießt! Pack' lieber diesen Lisp-Code in ein Buttonmakro und ändere Test1 und Test2 in deine Profilnamen. Der Code schaltet zwischen zwei Profilen hin und her: ^C^C(vl-load-com)(vla-put-ActiveProfile(vla-get-profiles(vla-get-preferences(vlax-get-Acad-Object)))(if (= "Test1" (getvar 'CPROFILE)) "Test2" "Test1")) Achtung: Korrekte Schreibweise ist wichtig, es wird nicht geprüft, ob es die Profile tatsächlich gibt! Gruß CADchup
------------------ CADmaro.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |