Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  SelectionSets mit Excel ohne Verweise

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:  SelectionSets mit Excel ohne Verweise (1148 mal gelesen)
MReAutoCAD
Mitglied


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

Beiträge: 5
Registriert: 09.03.2018

erstellt am: 09. Mrz. 2018 11:00    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 liebe Forenmitglieder,

ich schreibe ein Excel-Tool für mehrere ACAD Anwender. Die ACAD Versionen unterscheiden sich von 2016 bis 2018.

Jetzt möchte ich gerne SelectionSets im Excel-VBA Code anwenden, nur leider werden keine Blöcke gefunden.
Füge ich unter Verweise die ACAD 2018 Lib hinzu, klappt alles ohne Probleme.

Am liebsten würde ich auch auf eine Verweis-Lib verzichten, da ja leider die ACAD 2018 Lib für die 2016 Anwender nicht verfügbar ist.
Hat jemand eine Idee, wie ich das Problem lösen kann? Oder kann ich die 2018-Lib "einfach" für die 2016-Anwender nachinstallieren?

Vielen Dank für Eure Unterstützung.
Grüße
MRe

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

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



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

Beiträge: 2624
Registriert: 02.05.2006

AutoCAD LandDesktop R2 bis 2004
Civil 3D 2005 - 2022
Plateia, Canalis
Visual Basic

erstellt am: 09. Mrz. 2018 13:06    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 MReAutoCAD 10 Unities + Antwort hilfreich

Hallo MRe,
Willkommen im Forum 

Warum drehst Du es nicht um und schreibst ein Autocadtool das auf Excel zugreift?
Dann bist Du unabhängig von der Autocadversion.

Oder Du mußt Dir die Autocadversion holen und setzt danach erst den entsprechenden Verweis. Kennst Du Late Binding?
Magst Du mal den Code posten wie Du auf die Autocadzeichnung zugreifst (Variablendefinition, Öffnen der Zeichnung) ?

Grüße
Klaus 

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

MReAutoCAD
Mitglied


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

Beiträge: 5
Registriert: 09.03.2018

erstellt am: 09. Mrz. 2018 16: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

Hallo,

vielen Dank für deine Antwort und den Vorschlag das Thema umzudrehen. Das Tool selbst besteht im Wesentlichem aus Code für Excel und AutoCAD- Funktionen werden nur wenige genutzt.
Außerdem wird das Tool nicht für jede AutoCAD Zeichnung gebraucht, sodass ich es in Summe lieber im Excel habe. Wäre also eher eine Notlösung, aber besser als keine   

LateBinding kenne ich leider nicht. Habe es mir aber gerade angeguckt.. Vom Prinzip her könnte es aber gehen glaube ich, da ich (unbewusst) meine ACAD-App genauso einbinde

Grüße MRe

[Diese Nachricht wurde von MReAutoCAD am 09. Mrz. 2018 editiert.]

[Diese Nachricht wurde von MReAutoCAD am 09. Mrz. 2018 editiert.]

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

MReAutoCAD
Mitglied


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

Beiträge: 5
Registriert: 09.03.2018

erstellt am: 09. Mrz. 2018 16:17    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

PS: An den Code komme ich diese Woche nicht mehr dran :/

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

MReAutoCAD
Mitglied


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

Beiträge: 5
Registriert: 09.03.2018

erstellt am: 10. Mrz. 2018 16: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

Würde ich das Problem eigentlich umgehen, wenn ich mit Verweisen der niedrigsten Version arbeiten würde? Also ich verwende AutoCAD 16-Lib? Ist diese den nachfolgenden Versionen von ACAD "automatisch" bekannt?

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

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



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

Beiträge: 2624
Registriert: 02.05.2006

AutoCAD LandDesktop R2 bis 2004
Civil 3D 2005 - 2022
Plateia, Canalis
Visual Basic

erstellt am: 10. Mrz. 2018 19:43    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 MReAutoCAD 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von MReAutoCAD:
Würde ich das Problem eigentlich umgehen, wenn ich mit Verweisen der niedrigsten Version arbeiten würde? Also ich verwende AutoCAD 16-Lib? Ist diese den nachfolgenden Versionen von ACAD "automatisch" bekannt?

Jein, das klappt nur wenn 2016 ebenfalls (noch) auf dem PC installiert ist. Wenn Du bei den Verweisen mal nach unten schaust, siehst Du dass dort der Pfad zur Bibliothek angegeben ist.

Theoretisch gäbe es eine Möglichkeit Verweise auch über Programmcode einbinden:

Code:
' Autocad Type Library
ThisWorkbook.VBProject.References.AddFromFile _
"C:\Programme\Gemeinsame Dateien\Autodesk Shared\acax17enu.tlb"

Habe ich aber noch nicht gemacht. Zuvor wäre natürlich zu prüfen ob die Type Library schon eingebunden ist und ob sie überhaupt existiert. Meines Erachtens müßte das beim Öffnen des WorkBook geschehen, aber wie geschrieben: Habe ich keine Erfahrung damit.

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

MReAutoCAD
Mitglied


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

Beiträge: 5
Registriert: 09.03.2018

erstellt am: 11. Mrz. 2018 14:10    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

Oder in meinem Fall sogar beim Laden des Custom-Ribbon. Könnte ich mir aber schon als Lösung vorstellen. Vielen Dank für Deinem Tipp.

Bei mir noch ACAD 16 zu installieren wäre kein Problem. Oder eben nur mit ACAD 16 zu arbeiten. Ich frage mich halt, wenn ich etwas mit ACAD16 entwickle und die ACAD 16 Lib verwende, kann dann ein Client mit ACAD 17 oder 18 ebenfalls ohne Probleme mit den Verweisen arbeiten?

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



Technischer Redakteur (m/w/d)

Die Felss-Gruppe ist Lösungs­anbieter im Bereich der Kaltumformung.

Als Leicht­bau­experten entwickeln die Unternehmen der Felss-Gruppe für ihre Kunden die optimalen Lösungen und Prozesse ? von der Produkt­ent­wicklung bis zur Maschine oder auch zum fertigen Bauteil in der Komponenten­fertigung.

Rund 800 Mit­arbeiterinnen und Mitarbeiter arbeiten gemeinsam mit Kunden ...

Anzeige ansehenTechnische Dokumentation
rexxitall
Mitglied
Dipl. -Ing. Bau


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

Beiträge: 266
Registriert: 07.06.2013

Various: systems, Operating systems, cad systems, cad versions, programming languages.

erstellt am: 13. Mai. 2018 07:19    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 MReAutoCAD 10 Unities + Antwort hilfreich

Wenn du exelst muss Excel ACAD irgendwie dazuladen. Versionsabhänging auch klar.
Der Ansatz den Spieß umzudrehen und Acad zu sagen welche Excel info es verabeiten soll ist besser.
Nun mag das nicht gewünscht sein.
Es gibt natürlich auch die Möglichkeit ACAd egal welches, das weis das Betriebssystem 
zu starten un dem Parameter mitzugeben.
Da gibt es die dollsten Möglichkeiten. 
Kommandozeile, Textdatei, Script oder ganz abgefahren man kann mit ACAD über Interprocesskommunikation reden.
Das geht über sockets, pipes, Windows messagens was auch immer. Und es gibt auch ne autocad version ohne GUI die man dazu auch einsetzen kann.
Jetzt steinigt mich nicht  ich habe mal ne VB.net Dll geschrieben die als named pipe server fungiert.
Wenn acad nix zu tun hat lauscht es halt an ner Pipe ob was kommt.
Da kann man wunderbar Textbefehle hinschicken und sagen was man wünscht. Das macht das Acad denn auch.
Das geht auch bidirektional (Klar das kann man in VBA auch versuchen nur scheiterterts dann an singlethread von VBA un an den 64 bit OS aufrufen )
Da geht viel  Man kann auch auf den Trichter kommen ACAD nen webserver unterzujubeln.
Was übrigens gar nicht mal soooo kompliziert ist. So microwebserver brauch ab ca. 400 zeilen. Und die gibt es im Web.
Excel kann ja webservices abfragen.
Was auch geht ist ne ACAD instance über VBS zu starten. Nicht aufschreien starten und laden muss man das irgendwie sowieso.
VBS hat den Vorteil das es viele Sachen kapselt. Die Nummer mit den Pipes ist in VBS ein Klacks (sorry Klacks) und nativ ein ziemlicher Seich.

OK das führt alles zu weit.
Gut die installierte ACAD version bekommt man heraus und kann auch die DLLS laden. Das geht !
Führt dan aber zwangsläufig in dei DLL Hölle.

Ne sehr sinple IPC geht mit SQLITE 
SQLITE managed automatisch Zugriffe.
Und man kann sehr schön Sachen drin speichern und wieder rauslesen.
Für SQlite gibt es eine VBA anbindung die überall funktioniert. Haben die echt schön gemacht.
Autocad starten mit DVB die aufSQLITE Tabelle lauscht.
Excel selbe SQlite lib geladen benutzt die selbe Tabelle.2 Tabellen anlegen für Befehel und Rückgabe.
Acad guggt nun alle sekunde nach ob sich in der Tabelle Befhl was tut und wen ja schribts das in andre tabelle zurück.
Hintergrund ist das sqlite das ganze Semaphorenhandling transparent macht. Da kann man auch mit 8 Excels und 5 Acads drauf zu greifen ohne da
Sqlite gibt es für 64bit und 32 bit mit nativen VBA client.

Könnt ich mir so vorstellen Excel schreibt mit timestamp user und Befehlsnummer seine wünsche in die SQLITE datenbank
Acad liest die gemäß Timestamp aus und realisiert die Befehele.
Abgearbeitete Befehle werden gelöscht.
Ergebnisse werden mit Abfragenummer und user in die Tabelle zurückgeschrieben um von Excel ausgelsesn zu werden.

Das geht deswegen auch mit Multiuser das dieselbe SQLITE Datenbank von mehreren Processen geöffnet werden kann.

Nach 2 Tagen wenn man Null Plan hat sollte das springen - wenn man VBA kann.
Die SQl Statements sind kein Hexenwerk un zu hunderten im Netz.

Damit würde sich die Problematik darauf reduzieren IRGENDEIN acad zu laden egal ob 32 oder 64 bit
um es dann von
IRGENDEINEM Excel 32 oder 64 Bit zu steuern.
Der Verbindungsknoten ist ja ne SQLITE Datei. Und der ist es wurscht ob 64 bit oder 32 bit oder welche Version von Client auf der herumorgelt.

Mit dem Gedanken würde ich mal spielen.
Lieben Gruß
Thomas

------------------
Wer es nicht versucht, hat schon verlorn 
Und bei 3 Typos gibts den vierten gratis !
<<< for sale !

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