| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Die Basis für Ihre Digitale Fabrik: Bestandsaufnahme und Datenintegration, ein Webinar am 30.10.2024
|
Autor
|
Thema: Blöcke über Excel setzen und ausfüllen (1573 / mal gelesen)
|
CADuceus Mitglied LWL-Netzplaner GIS
Beiträge: 359 Registriert: 20.01.2005 LWL Netzplanung AutoCAD Map 3D 2020 Win10 64bit / Chrome Intel® Core™ i7-4770K 3.50GHz / 32GB NVidia Quadro P400 HP DesignJet T795
|
erstellt am: 03. Aug. 2016 09:12 <-- editieren / zitieren --> Unities abgeben:
Hallo liebe CADler Beim folgenden Problem weiss ich nicht den besten Ansatz: Ich habe tausende Grundstücksnummern in der DWG. An diesen Stellen möchte ich nun einen Block platzieren (nicht ersetzen) in welchem diese Nummer als Attribut steht UND fünf weitere Attribute, welche in einer Excel-Tabelle auf der selben Zeile wie die Grundstücknummer stehen, ausfüllen. Mein erster Gedanke war, die Koordinaten der Grundstücksnummern zu extrahieren, in die bestehende Tabelle zu sortieren und dann über ein Command-Skript Block für Block einzufügen. Einerseits ist das Sortieren der Koordinaten mühsam, weil die Tabelle die Daten für mehrere DWGs enthält, anderseits arbeitet so ein Script vermutlich zu langsam bei der Menge an Blöcken.
Da gibt es doch bestimmt einen besseren Weg. Wie würdet Ihr vorgehen?
(Normalerweise würde ich weitere 4h im Forum suchen, aber das Problem ist akut, also verzeiht mir die Eile.)
------------------ Du kannst in anderen nur entzünden, was in Dir selber brennt! Wollte noch ein File anhängen, aber habe die Kiste schon heruntergefahren. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 03. Aug. 2016 09:17 <-- editieren / zitieren --> Unities abgeben: Nur für CADuceus
|
CADuceus Mitglied LWL-Netzplaner GIS
Beiträge: 359 Registriert: 20.01.2005 LWL Netzplanung AutoCAD Map 3D 2020 Win10 64bit / Chrome Intel® Core™ i7-4770K 3.50GHz / 32GB NVidia Quadro P400 HP DesignJet T795
|
erstellt am: 03. Aug. 2016 10:04 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von CADmium:
.. ich würde mir ein Programm schreiben ...
Ach was, Programme sind völlig überbewertet. Aber mal angenommen, ich wüsste wie man mit entmode Attribute bearbeitet: Wie lese ich mit Lisp die Zahl in der zweiten Spalte in der Zeile in welcher XY in Spalte eins befindet in der Tabelle A in der Datei 123.xlsx?
------------------ Du kannst in anderen nur entzünden, was in Dir selber brennt! Wollte noch ein File anhängen, aber habe die Kiste schon heruntergefahren. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 03. Aug. 2016 10:14 <-- editieren / zitieren --> Unities abgeben: Nur für CADuceus
|
scj Mitglied
Beiträge: 555 Registriert: 09.08.2001
|
erstellt am: 03. Aug. 2016 11:29 <-- editieren / zitieren --> Unities abgeben: Nur für CADuceus
|
Andreas Kraus Mitglied Elektrotechniker
Beiträge: 1455 Registriert: 11.01.2006 WIN 10 ACAD 2022 BricsCAD V23
|
erstellt am: 03. Aug. 2016 14:08 <-- editieren / zitieren --> Unities abgeben: Nur für CADuceus
Hallo CADuceus, ich hatte hier: http://ww3.cad.de/foren/ubb/Forum145/HTML/004389.shtml#000003mal was zu Excel geantwortet. Da du aber wahrscheinlich erst mal die ganze Liste brauchst hab ich noch das hier: Code: (defun k_excel_excel->datenliste (/ rngobj excel_variant datenliste n) ;;; Exceldaten in Datenliste schreiben (setq rngobj (vlax-get-property excelsheet 'range (k_excel-usedrange excelsheet t) ) ) (if (setq excel_variant (VLAX-VARIANT-VALUE (vlax-get-property rngobj 'value2) ) ) (setq n 0 datenliste (vl-remove-if '(lambda (data) (null (car data))) (mapcar '(lambda (zeile) (setq n (1+ n)) (if (vl-every 'null (mapcar '(lambda (dummy) (if (and (= (type dummy) 'variant) (= (VLAX-VARIANT-TYPE dummy) 10) ) t nil ) ) zeile ) ) (mapcar 'VLAX-VARIANT-VALUE zeile) (alert (strcat "Fehler in Zeile " (itoa n))) ) ) (VLAX-SAFEARRAY->LIST excel_variant ) ) ) datenliste (mapcar '(lambda (data) (mapcar 'cons (car datenliste) data)) (cdr datenliste) ) ) ) datenliste )
Ist ein Modul aus meiner Excel-Schnittstelle (wie die anderen aus dem Link oben). Schau mal ob du damit was anfangen kannst. Musst du vielleicht noch anpassen aber ich hoffe es hilft schon mal. Wenn was fehlt bitte melden, ich hab jetzt nicht geschaut ob noch ein kleines verstecktes Modulchen fehlt. ------------------ Geht nicht, gibts nicht Gruß Andreas http://kraus-cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RL13 Ehrenmitglied V.I.P. h.c. Dipl.-Ing. Bauwesen
Beiträge: 2373 Registriert: 23.10.2008 Civil 3D 2018.1 Civil 3D 2016 64 Bit SP 3 mit DACH und Extensions W7 Professional 64Bit HP Z440 Intel Xeon CPU E5-1620 v4 32 GB RAM NVIDIA Quadro P4000
|
erstellt am: 03. Aug. 2016 14:09 <-- editieren / zitieren --> Unities abgeben: Nur für CADuceus
|
CADuceus Mitglied LWL-Netzplaner GIS
Beiträge: 359 Registriert: 20.01.2005 LWL Netzplanung AutoCAD Map 3D 2020 Win10 64bit / Chrome Intel® Core™ i7-4770K 3.50GHz / 32GB NVidia Quadro P400 HP DesignJet T795
|
erstellt am: 03. Aug. 2016 16:31 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von CADmium: .... man kann direkt auf Excel zugreifen,[...]
Man kann. Ich kann es nicht. Solange ich etwas nicht kann, glaube ich auch nicht dass es geht. Was ich aber kann: Ein Skript laufen lassen und einen Kaffee trinken gehen.
Übrigens: Ich glaube auch nicht an den Mond. Das ist nur die Rückseite der Sonne!
------------------ Du kannst in anderen nur entzünden, was in Dir selber brennt! Wollte noch ein File anhängen, aber habe die Kiste schon heruntergefahren. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADuceus Mitglied LWL-Netzplaner GIS
Beiträge: 359 Registriert: 20.01.2005 LWL Netzplanung AutoCAD Map 3D 2020 Win10 64bit / Chrome Intel® Core™ i7-4770K 3.50GHz / 32GB NVidia Quadro P400 HP DesignJet T795
|
erstellt am: 03. Aug. 2016 17:14 <-- editieren / zitieren --> Unities abgeben:
Also Leute, ehrlich: Die Hilfsbereitschaft sprengt ja voll den Rahmen. Ein globales "Danke". Da ich mehr mit dem lösen der Aufgabe beschäftigt war, litt meine Anwesenheit hier im Forum ein wenig. @scj: "GetExcel.lsp" ist wirklich genial. Warum das Rad neu erfinden? Macht mehr als ich brauche. @Andreas Kraus: Danke. Das schreiben der kompletten Routine kann ich mir jetzt trotzdem hoffentlich sparen. Werde mich im Nachhinein damit genauer befassen. @RL13: Richtig erkannt: GIS (MAP leider aber ohne DB-Zugriff). Aber... Zwischenzeitlich konnte ich die Aufgabe vereinfachen. Der Auftraggeber hat mir neue Tabellen gegeben, in welchen die Koordinaten bereits vorhanden sind (warum nicht gleich?). Eine einzige Excel-Formel die mir aus Feldverkettung eine fertiges command-Skript schreibt - fertig. Muss für diesmal reichen da es heute auch fertig sein muss. Da das Skript aber auf jede beliebige Zeichnung angewendet werden kann, werde ich das Ganze bei Gelegenheit in eine Routine packen welche auch prüft, ob das betreffende Grundstück überhaupt in dieser Zeichnung enthalten ist. Ev. werde ich wirklich (mal) auf die MAP-Werkzeuge zurückgreifen. Danke nochmal an alle. Ende und over.
------------------ Du kannst in anderen nur entzünden, was in Dir selber brennt! Wollte noch ein File anhängen, aber habe die Kiste schon heruntergefahren. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADdalog Mitglied
Beiträge: 6 Registriert: 29.10.2015 Windows7 X64 SP1, Intel i7-6700k, 32 GB RAM,Geforce GTX 980, AutoCAD MEP 2015/2016/2017
|
erstellt am: 04. Aug. 2016 09:25 <-- editieren / zitieren --> Unities abgeben: Nur für CADuceus
Hallo CADuceus, hast Du es mal mit der Funktion Attribute importieren/exportieren aus den Expresstools probiert? Mögliche Vorgehensweise: Blöcke mit Attributen erstellen, platzieren. Ein Attribut des jeweiligen Blockes könnte dann die Raumnummer sein. Über die Funktion "Attribute exportieren" alles auslesen, Du erhältst eine Textdatei, die Du anschließend in Excel importierst.(Register "Datei" "Aus Text") Jetzt kannst Du die einzelnen Felder editieren (ausfüllen). Die Anzahl der Spalten nicht ändern, die Spalte "Handle" muss erhalten bleiben, das ist die konkrete Zuordnung der jeweiligen Attributblöcke. Das ganze wieder als Textdatei (!)abspeichern und über die Funktion "Attribute importieren" in die Zeichnung einlesen. Jetzt sollten alle Attributblöcke ausgefüllt werden... Wir benutzen diese Funktion erfolgreich um Räume in Gebäuden mit Raumnummern, Bezeichnungen und Luftmengen zu versehen.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd P Ehrenmitglied V.I.P. h.c. cook-general
Beiträge: 3424 Registriert: 07.06.2001 W10-64bit, AMD Ryzen 7 3700X,32GB RAM, Sapphire Pulse Radeon RX 570 8G G5, Canon TX-3000 MFP, Maus Cherry MW4500, Sub:Infrastructure Design Suite, Office 365
|
erstellt am: 09. Aug. 2016 08:35 <-- editieren / zitieren --> Unities abgeben: Nur für CADuceus
Servus, a kurzer.... verwenden den Basispunkt des Objektes als Startpunkt für eine Linie, Befehl muss halt je nach Aufgabe getauscht werden. Ich denke das ist nett für diverse Scripts. (command "linie" (cdr (assoc 10 (entget (HANDENT "3343")))) getpoint) ------------------ <----- Bitte Systeminfo eintragen, warum siehst du hier. Wünsche: Tabllen (XLS,ODS) FDO nativ einbinden, FDO-WMTS, richtige Ebenen für Layer, Erweiterter Attribut-Editor "auffrischen", dyn. Xrefs, mehrere modell Bereiche, Halo4Texte, verschränkte Attribute, Linientypen überarbeiten (doppellinien) , XREF>VISRETAIN pro XREF Fehler: FDORasterdaten im Layout Richtigen Maßstab verwenden, funktionierende updates u. erweiterungen inkl. installationsroutinen, Fehler zwischen Normal MAP Civil beheben Schöne Grüsse aus der Steiermark Bernd P. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |