| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: S::STARTUP (1870 mal gelesen)
|
AsSchu Ehrenmitglied Konstrukteur
Beiträge: 1632 Registriert: 27.06.2003 ACAD 2007,cadMANdu Win 2000 XP
|
erstellt am: 02. Mrz. 2004 10:23 <-- editieren / zitieren --> Unities abgeben:
Moin, habe da mal so eine Frage. Ich wollte an anderen Workstations automatisch ein Menü über die acaddoc.lsp zuladen lassen. Mit der Funktion S::STARTUP kann ich dieses nicht ausführen lassen, weil diese schon von einer anderen Appli benutzt wird. Gibt es eine andere Möglichkeit? Ciao
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 .
|
erstellt am: 02. Mrz. 2004 12:42 <-- editieren / zitieren --> Unities abgeben: Nur für AsSchu
in der acaddoc.lsp (setvar "filedia" 0) (command "_menu" "d:\\MDT\\acadm\\acadmpp") ; hier ändern , ist bloß ein Beispielmenü (setvar "filedia" 1) Achtung! _menu ... Lädt eine Menüdatei (das Hauptmenü) und entlädt , wenn vorhanden alle anderen _menuload Lädt ergänzende Menüdefinitionsdateien Aber der eintrag müßte auch in der acad.lsp reichen! Diese wird nach Initialisierung von ACAD als erstes ausgeführt. Die ACADdoc.lsp wird beim Öffnen einer Zeichnung ausgeführt.
------------------ - Thomas - [Diese Nachricht wurde von CADmium am 03. Mrz. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4171 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 02. Mrz. 2004 13:50 <-- editieren / zitieren --> Unities abgeben: Nur für AsSchu
@AsSchu, ja gibt es. Schreibe die Anweisungen einfach in eine *.mnl Datei eines Menüs, welches immer geladen wird. Findest du keine *.mnl, dann erzeugst du dir einfach eine. Diese muss den gleichen Namen und im gleichen Verzeichnis gespeichert sein, wie die zugehörige *.mn* Datei. Bei Fragen ... Grüße Holger ------------------ Holger Brischke (defun - Lisp over night! AutoLISP-Programmierung für AutoCAD Da weiß man, wann man's hat! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AsSchu Ehrenmitglied Konstrukteur
Beiträge: 1632 Registriert: 27.06.2003 ACAD 2007,cadMANdu Win 2000 XP
|
erstellt am: 02. Mrz. 2004 14:22 <-- editieren / zitieren --> Unities abgeben:
|
AsSchu Ehrenmitglied Konstrukteur
Beiträge: 1632 Registriert: 27.06.2003 ACAD 2007,cadMANdu Win 2000 XP
|
erstellt am: 02. Mrz. 2004 15:24 <-- editieren / zitieren --> Unities abgeben:
@cadmium Schön,dass man immer wieder was dazulernt. Wenn ich das über den commandbefehl mache fügt er nur das eine Menü ein und alle anderen sind verschwunden. Dann muss ich wohl alle so laden. Das möchte ich aber vermeiden. Schön ist es auch, wenn das dann im Netz liegt und bei allen Usern das Menü verschwindet. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 .
|
erstellt am: 02. Mrz. 2004 15:32 <-- editieren / zitieren --> Unities abgeben: Nur für AsSchu
|
JWD Mitglied
Beiträge: 3 Registriert: 19.06.2003
|
erstellt am: 02. Mrz. 2004 15:34 <-- editieren / zitieren --> Unities abgeben: Nur für AsSchu
wenn man es mit menügruppen in den einzelnen menüs macht, können diese über (command "._menuload" (findfile "mein.mns") laden. Anschließend müssen die Popups auch noch dargestellt werden mit (menucmd "P10=+mymenugroup.POP1"). Ob es geladen ist, stellt man mit (if (not (menugroup "mymenugroup")) (progn...) fest. ------------------ JW Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AsSchu Ehrenmitglied Konstrukteur
Beiträge: 1632 Registriert: 27.06.2003 ACAD 2007,cadMANdu Win 2000 XP
|
erstellt am: 02. Mrz. 2004 15:36 <-- editieren / zitieren --> Unities abgeben:
|
Ex-Mitglied
|
erstellt am: 02. Mrz. 2004 22:51 <-- editieren / zitieren -->
Zitat: Original erstellt von AsSchu: Moin,habe da mal so eine Frage. Ich wollte an anderen Workstations automatisch ein Menü über die acaddoc.lsp zuladen lassen. Mit der Funktion S::STARTUP kann ich dieses nicht ausführen lassen, weil diese schon von einer anderen Appli benutzt wird. Gibt es eine andere Möglichkeit? Ciao
Hallo, aber natzürlich geht das - die S::STARTUP ist ja extra dafür vorgesehen, von vielen Apps benutzt werden zu können. Auch ArchTools verwendet die S::STARTUP (allerdings hat die einen kleinen Bug, wie wir ja im ArchTools Forum gerade erst festgestellt haben). Du kannst Dir ja mal die ARCHTOOLS.MNL Datei ansehen, wie man eine bestehende S::STARTUP Funktion benutzt, ohne den anderen Apps das Wasser abzugraben. Kurzfassung: - Du programmierst Deine eigene Startfunktion MEINSTART - Du siehst nach, ob die S::STARTUP schon existiert nein: -> Du definierst mit DEFUN-Q statt DEFUN die S::STARTUP so: (defun-q s::startup () (meinstart) ) ja: Du hängst Deine Funktion an die vorhandene S::STARTUP an: (setq s::startup (reverse (cons '(meinstart) (reverse s::startup)))) Es gibt viele Programme, die die S::STARTUP nicht mit DEFUN-Q, sondern mit DEFUN definieren, und dann kannst Du daran Deine Funktion nicht mehr anhängen. Das ist ein schwerer Fehler des jeweiligen Programmierers und wird von mir dadurch bestraft, dass ich seine S::TARTUP einfach wegwerfe. Mit LISTP kannst Du prüfen, ob's eine Liste ist oder nicht. Der Vorschlag mit der Menüdatei klappt u.U. nicht (hab's aber mit neuen AutoCAD Versionen nicht getestet) - AutoCAD ist zum Zeitpunkt des Ladens der Menüdateien noch nicht vollständig initialisiert, so dass noch kein vollständiger Zugriff auf die Datei möglich ist. Tom Berger ------------------ Architekturwerkzeuge für AutoCAD: http://www.archtools.de |
AsSchu Ehrenmitglied Konstrukteur
Beiträge: 1632 Registriert: 27.06.2003 ACAD 2007,cadMANdu Win 2000 XP
|
erstellt am: 03. Mrz. 2004 08:23 <-- editieren / zitieren --> Unities abgeben:
Moin, alles schön und gut. Kann ich in der acaddoc.lsp noch eine zweite defun-q s::startup ausführen lassen: die 1. ist ja von archtools besetzt. in der .mnl von archtools lokal was hinzusetzen nützt mir ja nichts, weil ich über eine acaddoc.lsp die im Netzt liegt ein Menü bei anderen Usern automatisch laden lassen möchte. Ciao Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 .
|
erstellt am: 03. Mrz. 2004 08:32 <-- editieren / zitieren --> Unities abgeben: Nur für AsSchu
Nochmal : die acaddoc.lsp wird bei jedem Öffnen einer Zeichnung ausgeführt, dem zufolge auch alle Befehle in derselben! Warum dann noch eine Startup..? wenns um ein zusätzliches menü geht, kannst du mit (defun MENU-IS-LOADED ( MENU / MENULISTE ) (if(=(type MENU)'STR) (if(member (strcase MENU) (mapcar (function (lambda (X) (car X))) (vlax-for FOR-ITEM (vla-get-menugroups (vlax-get-acad-object)) (setq MENULISTE (cons (cons(strcase (vla-get-name FOR-ITEM)) FOR-ITEM ) MENULISTE ) ) ) ) ) (assoc (strcase MENU) MENULISTE) ) ) ) überprüfen, ob es schon geladen ist, und in Abhängigkeit davon mit [b]_menuload[b] (nicht mit _menu ) das Teil nachladen.. ------------------ - Thomas - Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AsSchu Ehrenmitglied Konstrukteur
Beiträge: 1632 Registriert: 27.06.2003 ACAD 2007,cadMANdu Win 2000 XP
|
erstellt am: 03. Mrz. 2004 08:46 <-- editieren / zitieren --> Unities abgeben:
|
AsSchu Ehrenmitglied Konstrukteur
Beiträge: 1632 Registriert: 27.06.2003 ACAD 2007,cadMANdu Win 2000 XP
|
erstellt am: 03. Mrz. 2004 09:12 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von AsSchu: Moin Cadmium,das mit dem Laden klappt wunnebar. Jetzt noch euine blöde Frage. Wie bekomme ich das menü dazu , dass es in der oberen Taskleiste auch angezeigt wird? Ciao
ich habs mit POP1 und auch POP 17 probiert, immer wird der Eintrag in der Menüleiste nicht vorgenommen???? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4171 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 03. Mrz. 2004 09:16 <-- editieren / zitieren --> Unities abgeben: Nur für AsSchu
Hallo AsSchu, was meinst du mit POP1 und POP17? (menucmd "P10=+mymenugroup.POP1"). Das POP10 bestimmt den Ort, und das POP1 die Bezeichnung des Menü's in der Menüdatei. Vielleicht hast du da etwas verwechselt? Grüße Holger ------------------ Holger Brischke (defun - Lisp over night! AutoLISP-Programmierung für AutoCAD Da weiß man, wann man's hat! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 .
|
erstellt am: 03. Mrz. 2004 09:21 <-- editieren / zitieren --> Unities abgeben: Nur für AsSchu
..steht in der ACAD-Hilfe, Handbuch für Benutzeranpassungen, Verwenden von Menüdateien, Basis und Teilmenüs, Steuern von Teilmenüs mit Autolisp ganz gut beschrieben. ------------------ - Thomas - Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Entwicklungsingenieur Thermomanagement (M/W/D) im Bereich Innovation | Die ITW Automotive Products GmbH am Standort Hodenhagen ist Teil der global erfolgreich agierenden ITW-Unternehmensgruppe mit ca. 50.000 Mitarbeitern in 57 Ländern und einem Umsatz von 13,6 Mrd. USD. Als innovativer Automobilzulieferer ist unser Spezialgebiet das Thermomanagement von Elektrofahrzeugen, welches wir mit unterschiedlichsten, kundenspezifischen Komponenten bedienen. Qualitätsanspruch ... | Anzeige ansehen | Entwicklung |
|
AsSchu Ehrenmitglied Konstrukteur
Beiträge: 1632 Registriert: 27.06.2003 ACAD 2007,cadMANdu Win 2000 XP
|
erstellt am: 03. Mrz. 2004 09:33 <-- editieren / zitieren --> Unities abgeben:
|