Community
AutoCAD Produktfamilie - Deutsch
Das Forum für alle Fragen zu AutoCAD, LT, Architecture, Electrical, Map 3D, Mechanical, MEP, Plant 3D, Raster Design, Web App, sowie Autodesk Civil 3D und Advance Steel.
abbrechen
Suchergebnisse werden angezeigt für 
Anzeigen  nur  | Stattdessen suchen nach 
Meintest du: 

Frage zum Zugriff auf externe Tabellen (Bereichsnamen über VB / LISP / Script ändern mit Dialogbox)

9 ANTWORTEN 9
Antworten
Nachricht 1 von 10
peter.frank1
506 Aufrufe, 9 Antworten

Frage zum Zugriff auf externe Tabellen (Bereichsnamen über VB / LISP / Script ändern mit Dialogbox)

Der Verweis von z.B. 6 verschiedenen Excel-Links in einer Zeichnung sollte in einer Dialogbox angezeigt werden und wenn notwendig hier geändert werden können.
Wo kann man eine Beschreibung über den Objektnamen der Excel-Links und die Objektnamen der verlinkten Datei und des Link-Details (z.B. Named range) finden - um diese z.B. mit VB o.ä. auszulesen und zu verändern ?

Tags (1)
9 ANTWORTEN 9
Nachricht 2 von 10
cadffm
als Antwort auf: peter.frank1

Hi,

 

Als was sind die denn verlinkt (wo kommen die her, wo gehen die hin)

Ich vermute hier geht es um die externe Quelle für AutoCAD-Tabellen Objekte?

 

LISP

http://help.autodesk.com/view/OARX/2021/DEU/?guid=GUID-A809CD71-4655-44E2-B674-1FE200B9FE30

Schau nach dem benannten Dictionary "ACAD_DATALINK"

 

 

 

- Sebastian -
Nachricht 3 von 10
peter.frank1
als Antwort auf: peter.frank1

Die Tabelle(n) wurden eingefügt über "Insert Table" + "From a data link", hier wurden zB. 6 Excel Links eingefügt, bei jedem eine A) Excel-Datei (+ Pfad-Info) ausgewählt und dann mit B) Select Excel sheet to link to eine Seite  + C) Link to a named range der Tabellen-Bereichs-Name ausgewählt.

Diese 3 (4) Daten für alle Excel-Links sollten in einer Dialogbox ausgegeben werden und bei Bedarf geändert werden können

Nachricht 4 von 10
cadffm
als Antwort auf: peter.frank1

Danke für die Erklärung.

War da noch eine Frage versteckt oder gehst du jetzt erst mal meinem Hinweis nach?

- Sebastian -
Nachricht 5 von 10
peter.frank1
als Antwort auf: cadffm

Dictionary "ACAD_DATALINK" habe ich noch nicht gefunden, ansonsten bin ich über den gesendeten Link auf der Suche - wie man auf die Objekt-Namen der Links und den dazugehörigen Daten kommt...
... die Frage ist für mich noch offen, ob man mit LISP so eine Dialogbox erstellen kann, in der man Eingaben machen kann.

Nachricht 6 von 10
cadffm
als Antwort auf: peter.frank1

öhm

Das hört sich jetzt an als hättest du keine Auto/VisualLisp Erfahrung!?

Bei der Anfrage habe ich da mit was anderem gerechnet, sorry.

 

Ja, man kann Dialogfelder erstellen und Objekte kann man ebenfalls manipulieren,

das Dialogfeld dient dabei ja wie immer nur als grafische Schnittstelle zum User,

dann eintragen, lesen, berarbeiten ist ja die Aufgabe des Programmierers..

 

Aber: Pures Lisp ist da ziemlich old-School. DCL, dialog controle language - grausig.

http://help.autodesk.com/view/ACD/2021/DEU/?guid=GUID-D3B46441-1867-479E-9478-C604B6D7441D

Falls du VB kannst und dabei eigentlich VB.net meinst!? Bin jetzt verunsichert wegen der generellen Frage ob das denn geht.

 

Wie auch immer: Wenn es um SCHÖNE Dialogfelder geht und ich die Wahl habe, dann würde ich das

Dialogfeld nicht in Lisp machen.

(persönlich ist es bei mir so: Ich kann nichts anderes, bzw. ich müßte ein Zusatzprogramm verwenden bei dem ich per Lisp auf schöne Oberflächenelemente zugriff habe, die in c++ oder .net umgesetzt zur Verfüfunf gestellt werden)

 

Noch mal Lisp:

(entget (cdadr (member '(3 . "ACAD_DATALINK") (entget(namedobjdict)))))

(-1 . <Objektname: 19b6509a10>)
(0 . "DICTIONARY")
(5 . "301")
(102 . "{ACAD_REACTORS")
(330 . <Objektname: 19b6789a40>)
(102 . "}")
(330 . <Objektname: 19b6789a40>)
(100 . "AcDbDictionary")
(280 . 1)
(281 . 1)
(3 . "DATAE1") ; Name der Verknüpfung
(360 . <Objektname: 19b6509ed0>)
(3 . "DATAL2") ; Name der Verknüpfung
(360 . <Objektname: 19cb8afd10>)
(3 . "Datenextraktion - 123.dxe")
(360 . <Objektname: 19b6509a20>)

 

Da stecken die Objektdaten der Verknüpfungen.

- Sebastian -
Nachricht 7 von 10
peter.frank1
als Antwort auf: cadffm

😥

LISP habe ich wirklich keine Erfahrung, nur in letzter Zeit ein paar kleine Progrämmchen angesehen.

 

Wollte die Dialogbox mit den Abfragen und der Übergabe der neuen Werte eigentlich in VBA erstellen (habe da einiges für Excel gemacht), das dürfte klappen - nur ist das in der verwendeten ACAD 2017 - Version nicht mehr enthalten und ich weiß nicht, ob ich das auf dem Rechner installieren kann - daher die Überlegung mit LISP...

Nachricht 8 von 10
cadffm
als Antwort auf: peter.frank1

Ok.

Das ist richtig, die VBA Schnittstelle ist seit 2012/2013 ca. nicht mehr Teil der Installation,

man muss diese separat installieren.

 

Ich habe nun keine Ahnung wir dein Lispwissen aussieht, aber von VBA kommend wäre VisualLisp mit dem ActiveX Objektmodell das richtige für dich.

Ich zeigte die Daten oben über AutoLISP was praktisch der DXF Stuktur gleichkommt.

 

Bezüglich der Dialogfelder macht das aber keinen Unterschied.

 

Hmm.

Ich sage es mal so: Spaß macht das keinen wenn man da nicht fit drin ist(was auf mich zB zutrifft).

 

Wenn der VBA Weg bei dir wirklich mal ausgeschlossen ist, dann darfst du auch keine anderen Programme installieren,

so müßtest du es also wirklich von 0 an lernen.

 

Tutorials/Bücher gibt es genug, dabei ist egal wie alt diese sind.

 

Wenn du den Weg also in Angriff nimmst, zaubere zunächst mal eine einfache Version in der die eigentlichen Programmfunktionen funktionieren.

Datalinks finden, Daten lesen, Daten ändern.

Danach kommt dann die Arbeit 😄

 

 

- Sebastian -
Nachricht 9 von 10
cadffm
als Antwort auf: peter.frank1

Könnte beim Einstieg helfen

(vlax-for Dic (vla-item (vla-get-Dictionaries(vla-get-activeDocument(vlax-get-ACAD-Object))) "ACAD_DATALINK") (vlax-dump-object Dic))

 

Aber damit bin ich dann raus aus dem Thema

- Sebastian -
Nachricht 10 von 10
peter.frank1
als Antwort auf: cadffm

OK, Danke !

 

Muss auch keinen Spass machen - Hauptsache ich muss bei ca 200 Zeichnungen nicht die jeweils 6 Bereichsnamen über die vorhandenen Dialoge eingeben bzw. ändern  !!

Sie finden nicht, was Sie suchen? Fragen Sie die Community oder teilen Sie Ihr Wissen mit anderen.

In Foren veröffentlichen  

Autodesk Design & Make Report