Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  Blöcke über Excel setzen und ausfüllen

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:  Blöcke über Excel setzen und ausfüllen (1521 mal gelesen)
CADuceus
Mitglied
LWL-Netzplaner GIS


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

Beiträge: 358
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 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 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




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

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 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 CADuceus 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von CADuceus:
Wie würdet Ihr vorgehen?

.. ich würde mir ein Programm schreiben ...

------------------
Also ich finde Unities gut ... und andere sicher auch
---------------------------------------
  - Thomas -          
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

CADuceus
Mitglied
LWL-Netzplaner GIS


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

Beiträge: 358
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 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:

.. 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




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

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 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 CADuceus 10 Unities + Antwort hilfreich

.... man kann direkt auf Excel zugreifen, aber man kann auch die xls-Datei als Semikolongetrennten Textdatei abspeichern .... die dann im Lisp einlesen .... die Zeile an den Semikolons aufsplitten die Teilstrings in eine Subliste und die dann wiederum in ein Gesamtliste.... mit Asscoc kann man dann prima auf die einzelnen Sublisten zurückgreifen , und deren Einträge in die entsprechenden Attribute packen ... aber da du das ja wahrscheinlich eh nicht vor hast, hör ich an dieser Stelle auf 

------------------
Also ich finde Unities gut ... und andere sicher auch
---------------------------------------
  - Thomas -          
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

scj
Mitglied
 


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

Beiträge: 554
Registriert: 09.08.2001

erstellt am: 03. Aug. 2016 11:29    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 CADuceus 10 Unities + Antwort hilfreich

Andreas Kraus
Mitglied
Elektrotechniker


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

Beiträge: 1356
Registriert: 11.01.2006

Win 10
ACAD 2022

erstellt am: 03. Aug. 2016 14:08    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 CADuceus 10 Unities + Antwort hilfreich

Hallo CADuceus,
ich hatte hier:
http://ww3.cad.de/foren/ubb/Forum145/HTML/004389.shtml#000003
mal 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


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

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 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 CADuceus 10 Unities + Antwort hilfreich

Hallo CADuceus,

das hört sich doch nach einer typischen GIS Frage an und da Du MAP hast nutze die MAP-Funktionen und stell hier Deine Fragen:

http://ww3.cad.de/cgi-bin/ubb/forumdisplay.cgi?action=topics&number=285

Grob umrissen:
_MAPEXPORT der Texte zu Punkten mit den Textinfos
_MAPCONNECT der entstandenen Punkt-SDF und der Exceltabelle
_MAPDEFINEJOIN der Exceltabelle und der Punkte über die Flurstücksnummer
entsprechende Stilisierung

------------------
mfg Roman

[Diese Nachricht wurde von RL13 am 03. Aug. 2016 editiert.]

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

CADuceus
Mitglied
LWL-Netzplaner GIS


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

Beiträge: 358
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 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:
.... 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


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

Beiträge: 358
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 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

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


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

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 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 CADuceus 10 Unities + Antwort hilfreich

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



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

Beiträge: 3358
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 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 CADuceus 10 Unities + Antwort hilfreich

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

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