Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Umschalten zwischen geöffneten Zeichnungen

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
Autor Thema:   Umschalten zwischen geöffneten Zeichnungen (656 mal gelesen)
Wilfried Nelkel
Mitglied
glaubt mir eh keiner


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

Beiträge: 786
Registriert: 15.03.2001

AutoCAD/ADT/ACA 2002 - 2019, Hardware: HP Z620 Workstation, Xeon E5-1620 € 3,60 GHz, 32 GB RAM, PNY Quadro K2000, Windows 7-64bit .....
ATC-Trainer

erstellt am: 01. Aug. 2004 16:27    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

Hallo Leute,

ich möchte über ein Lisp-Programm / DCL Dialog, auf alle zur Zeit geöffneten DWGs zugreifen. Also durch Klick auf eine Zeichnung, soll dann das entsprechende Fenster aktiviert werden.

Geht das in Lisp (hab nix gefunden) oder wie könnte man das anders lösen. Als Parameter für den Aufruf wird der Zeichnungsname übergeben.

Über Lösungen wär ich dankbar.

Schönen Sonntag noch :-)  (Wetter passt ja)


Wilfried Nelkel

------------------
Schöne Grüsse


Wilfried Nelkel 

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

startrek
Mitglied
Architekt


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

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 01. Aug. 2004 17:26    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 Wilfried Nelkel 10 Unities + Antwort hilfreich

Hi Wilfried,

mit Lisp kann ich Dir nicht dienen,
hier ein 'gruseliger VBA-Code' - hoffentlich bekomm ich keine Prügel hier ;-)

CUSee you = Wir sehen uns Nancy
--
Userform1.frm

Code:

Option Explicit
Private Sub UserForm_Initialize()
  Dim i%
  For i = 0 To Documents.Count - 1
      ListBox1.AddItem Documents.Item(i).Name
  Next
End Sub

Private Sub ListBox1_Click()
  Dim i%
  With ListBox1
      For i = 0 To .ListCount
        If .Selected(i) Then
            if Documents(i).WindowState = acMin then Documents(i).WindowState = acNorm
            Documents(i).Activate
            Exit For
        End If
      Next
  End With
End Sub



Modul1 normales Modul
Code:

Sub allDrawings()
Userform1.show 0 '0=modal 1=default wenn keine Angabe
end Sub
   

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

Wilfried Nelkel
Mitglied
glaubt mir eh keiner


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

Beiträge: 786
Registriert: 15.03.2001

AutoCAD/ADT/ACA 2002 - 2019, Hardware: HP Z620 Workstation, Xeon E5-1620 € 3,60 GHz, 32 GB RAM, PNY Quadro K2000, Windows 7-64bit .....
ATC-Trainer

erstellt am: 01. Aug. 2004 19: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

Hy Nancy,

danke für die schnelle Antwort. Aber wie starte ich das Programm aus einem Lisp heraus?

Wahrscheinlich bekomme ich jetzt Prügel, weil ich so doof frage, aber ich hab mich leider noch nie mit VBA oder VB befasst. :-(

Ich möchte ja ausserdem den Zeichnungsnamen der geöffneten AutoCAD-Datei als Parameter mit übergeben.

------------------
Schöne Grüsse


Wilfried Nelkel 

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

Wilfried Nelkel
Mitglied
glaubt mir eh keiner


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

Beiträge: 786
Registriert: 15.03.2001

AutoCAD/ADT/ACA 2002 - 2019, Hardware: HP Z620 Workstation, Xeon E5-1620 € 3,60 GHz, 32 GB RAM, PNY Quadro K2000, Windows 7-64bit .....
ATC-Trainer

erstellt am: 01. Aug. 2004 19:55    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

Mannomann. Ich war mal wieder viel zu schnell mit der Frage. Noch nicht mal ausprobiert.
Is ja total easy (wenn fraus kann.)

Aber irgendwie hängt mein AutoCAD, wenn ich auf einen DCL-Button klicke (unload_dialog ....) und dann (VBARUN mit dem Modulnamen) reinschreibe. Beim erstenmal gehts beim zweitan Mal kommt der Makroeditor. Vielleicht muss ich erst das VBA-Modul laden und dann nur noch starten?

Keine Ahnung. Irgendwie finde ich VBA viel schwerer als AutoLisp. Oder täusch ich mich da? :-)

------------------
Schöne Grüsse


Wilfried Nelkel 

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

startrek
Mitglied
Architekt


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

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 01. Aug. 2004 21: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 Nur für Wilfried Nelkel 10 Unities + Antwort hilfreich


frmDraws.zip

 
Hi nochmal,

> Keine Ahnung. Irgendwie finde ich VBA viel schwerer als AutoLisp.
> Oder täusch ich mich da? :-)

also da fragst Du wohl die Falsche ;-) dito! Nur mir gehts genau andersrum ...

Wie Du das aus Lisp heraus startest, sorry, weiss nicht, ob & wie das geht.
Desweiteren weiss ich nicht, wie general rein unter lisp lösbar,
ich mein wir sind ja hier in ebendiesem Forum [eigentlich hab ich mich nur reingedrängelt] ;-)

Okay, sei's wies sei:

den Anhang müsstest Du im VBE im Projektexplorer via RMK-Import reinholen.
Danach noch unter Einfügen -> Modul wählen und da einfach ins Codefenster reinschreiben/kopieren:

~~~~~
sub keineIdee()
frmDraws.show
end sub
~~~~~

that's all, oder solltes gewesen sein, dann kannste aus der ACAD-Umgebung via Alt+F8 das Makro 'keineIdee' starten [hoffentlich] 

Ansonsten wollt ich jetz aber keinen überzeugten Lispler umkrempeln, wer's besser weiss der melde sich bitte ... und mein Code is sicher [wie immer] nicht das gelbe vom Ei

lg Nancy
                       

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

melzig
Mitglied
Maschinenbautechniker


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

Beiträge: 396
Registriert: 15.01.2003

erstellt am: 02. Aug. 2004 07: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 Nur für Wilfried Nelkel 10 Unities + Antwort hilfreich

@ Wilfried

Wenn du das nicht unbedingt selber basteln willst, gibt es sowas fertig als Freeware.
Heißt "Docbar" siehe unter www.cadwerx.net !
Wenn es dir wirklich nur ums umschalten geht.

Tschüß Frank!

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

Wilfried Nelkel
Mitglied
glaubt mir eh keiner


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

Beiträge: 786
Registriert: 15.03.2001

AutoCAD/ADT/ACA 2002 - 2019, Hardware: HP Z620 Workstation, Xeon E5-1620 € 3,60 GHz, 32 GB RAM, PNY Quadro K2000, Windows 7-64bit .....
ATC-Trainer

erstellt am: 02. Aug. 2004 09:14    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

Hallo Frank,

danke für den Hinweis. Aber ich bräuchte eine Idee, wie ich aus einem Lispprogramm heraus die aktiven Zeichnungen durchschalten kann.

Leider kann das Programm von Nancy zwar die Zeichnungen durchschalten, aber irgendwie finde ich nicht den Weg, den Zeichnungsnahmen aus einem lisp-Programm heraus als Parameter zu übergeben, um das gewünschte Zeichenfenster zu aktivieren.

Vielleicht bin ich ja auch nur zu doof.

------------------
Schöne Grüsse


Wilfried Nelkel 

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: 13435
Registriert: 30.11.2003

.

erstellt am: 02. Aug. 2004 09:45    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 Wilfried Nelkel 10 Unities + Antwort hilfreich

(vl-load-com)
(defun DOCUMENT-ACTIVATE (DOCUMENT / FOUND)   
  (vlax-for ITEM (vla-get-documents
                  (vlax-get-acad-object)
                )
    (if (and(not FOUND)
            (=(strcase(vla-get-name ITEM))(strcase DOCUMENT))
        )   
      (setq DOCUMENT ITEM
            FOUND    'T
      )
    )
  ) 
  (if FOUND (vla-activate DOCUMENT))
)

Aufruf dann mit (document-activate "Zeichnung1.dwg")

Zu bedenken ist allerdings, das das Lisp normalerweise in eine Zeichnung geladen wird, und nur da läuft (namespace usw., aber das erklärt dir MAPCAR vielleicht genauer (und mir auch)), d.h. nach dem Aktivieren der neuen Zeichnung "hängt dein Programm"

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

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)2020 CAD.de | Impressum | Datenschutz