Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  S::STARTUP

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
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


Sehen Sie sich das Profil von AsSchu an!   Senden Sie eine Private Message an AsSchu  Schreiben Sie einen Gästebucheintrag für AsSchu

Beiträge: 1632
Registriert: 27.06.2003

ACAD 2007,cadMANdu
Win 2000 XP

erstellt am: 02. Mrz. 2004 10:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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




Sehen Sie sich das Profil von CADmium an!   Senden Sie eine Private Message an CADmium  Schreiben Sie einen Gästebucheintrag für CADmium

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 02. Mrz. 2004 12:42    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AsSchu 10 Unities + Antwort hilfreich

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




Sehen Sie sich das Profil von Brischke an!   Senden Sie eine Private Message an Brischke  Schreiben Sie einen Gästebucheintrag für Brischke

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 02. Mrz. 2004 13:50    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AsSchu 10 Unities + Antwort hilfreich

@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


Sehen Sie sich das Profil von AsSchu an!   Senden Sie eine Private Message an AsSchu  Schreiben Sie einen Gästebucheintrag für AsSchu

Beiträge: 1632
Registriert: 27.06.2003

ACAD 2007,cadMANdu
Win 2000 XP

erstellt am: 02. Mrz. 2004 14:22    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

@cadmium und Brischke

vielen Dank für die Antworten.
Melde mich wieder, ob es klappt.

Ciao

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

AsSchu
Ehrenmitglied
Konstrukteur


Sehen Sie sich das Profil von AsSchu an!   Senden Sie eine Private Message an AsSchu  Schreiben Sie einen Gästebucheintrag für AsSchu

Beiträge: 1632
Registriert: 27.06.2003

ACAD 2007,cadMANdu
Win 2000 XP

erstellt am: 02. Mrz. 2004 15:24    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

@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




Sehen Sie sich das Profil von CADmium an!   Senden Sie eine Private Message an CADmium  Schreiben Sie einen Gästebucheintrag für CADmium

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 02. Mrz. 2004 15:32    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AsSchu 10 Unities + Antwort hilfreich

na dann nimm _menuload statt _menu

so etwa:
Befehl: (command "_menuload" "d:\\MDTMechanical Desktop\\express\\acetmain")

------------------
- Thomas -

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

JWD
Mitglied


Sehen Sie sich das Profil von JWD an!   Senden Sie eine Private Message an JWD  Schreiben Sie einen Gästebucheintrag für JWD

Beiträge: 3
Registriert: 19.06.2003

erstellt am: 02. Mrz. 2004 15:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AsSchu 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von AsSchu an!   Senden Sie eine Private Message an AsSchu  Schreiben Sie einen Gästebucheintrag für AsSchu

Beiträge: 1632
Registriert: 27.06.2003

ACAD 2007,cadMANdu
Win 2000 XP

erstellt am: 02. Mrz. 2004 15:36    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Zitat:
Original erstellt von CADmium:
na dann nimm _menuload statt _menu

so etwa:
Befehl: (command "_menuload" "d:\\MDTMechanical Desktop\\express\\acetmain")


also im Moment nehme ich nix mehr

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 02. Mrz. 2004 22:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

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


Sehen Sie sich das Profil von AsSchu an!   Senden Sie eine Private Message an AsSchu  Schreiben Sie einen Gästebucheintrag für AsSchu

Beiträge: 1632
Registriert: 27.06.2003

ACAD 2007,cadMANdu
Win 2000 XP

erstellt am: 03. Mrz. 2004 08:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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




Sehen Sie sich das Profil von CADmium an!   Senden Sie eine Private Message an CADmium  Schreiben Sie einen Gästebucheintrag für CADmium

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 03. Mrz. 2004 08:32    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AsSchu 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von AsSchu an!   Senden Sie eine Private Message an AsSchu  Schreiben Sie einen Gästebucheintrag für AsSchu

Beiträge: 1632
Registriert: 27.06.2003

ACAD 2007,cadMANdu
Win 2000 XP

erstellt am: 03. Mrz. 2004 08:46    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

AsSchu
Ehrenmitglied
Konstrukteur


Sehen Sie sich das Profil von AsSchu an!   Senden Sie eine Private Message an AsSchu  Schreiben Sie einen Gästebucheintrag für AsSchu

Beiträge: 1632
Registriert: 27.06.2003

ACAD 2007,cadMANdu
Win 2000 XP

erstellt am: 03. Mrz. 2004 09:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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




Sehen Sie sich das Profil von Brischke an!   Senden Sie eine Private Message an Brischke  Schreiben Sie einen Gästebucheintrag für Brischke

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 03. Mrz. 2004 09:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AsSchu 10 Unities + Antwort hilfreich

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




Sehen Sie sich das Profil von CADmium an!   Senden Sie eine Private Message an CADmium  Schreiben Sie einen Gästebucheintrag für CADmium

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 03. Mrz. 2004 09:21    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AsSchu 10 Unities + Antwort hilfreich

..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 ansehenEntwicklung
AsSchu
Ehrenmitglied
Konstrukteur


Sehen Sie sich das Profil von AsSchu an!   Senden Sie eine Private Message an AsSchu  Schreiben Sie einen Gästebucheintrag für AsSchu

Beiträge: 1632
Registriert: 27.06.2003

ACAD 2007,cadMANdu
Win 2000 XP

erstellt am: 03. Mrz. 2004 09:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Habs gefunden

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz