Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Daten auslesen

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:  Daten auslesen (526 mal gelesen)
cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

Windows 10
64bit system
Autocad Civil3d 2020 ENGLISH
Visual Studio 2019
OpenDCL.Runtime.9<P>

erstellt am: 04. Nov. 2021 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


Drawing2.dxf.txt

 
Hallo Forum!

Bin auf der Suche nach einer Lösung, die Daten nach Markierung im Bild auslesen zu können. Der Zugriff ist mir nicht ohne weiteres möglich. Hat jemand eine Idee?


Danke im Voraus!

------------------
Gruss Dirk

[Diese Nachricht wurde von cadplayer am 04. Nov. 2021 editiert.]

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4162
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 04. Nov. 2021 17: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 cadplayer 10 Unities + Antwort hilfreich

... diese Eigenschaften werden wahrscheinlich in den EED's des gewählten Elements zu finden sein. ggf. auch nur irgendwelche kryptischen Inhalte, die dann wiederum als Schlüssel für irgendwelche Dictionary-Einträge dienen. Aber alles nur Vermutungen.
Ggf. stellt die Applikation auch eine API zur Verfügung, da solltest du dich aber an den Hersteller dieser Applikation wenden.

Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


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

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 04. Nov. 2021 17:52    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

genau, darauf bin ich gestossen, nachdem ich mir die DXF in notepad anschaute.
Also kein weg da ran zu kommen, wenn einem das API fehlt?
Wie schafft es Acad zu lesen, hab über die dictionary’s nichts gefunden, was würde mit den Daten passieren, wenn ich den Block sprenge?

------------------
Gruss Dirk

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4162
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 04. Nov. 2021 18: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 cadplayer 10 Unities + Antwort hilfreich

... AutoCAD kann das auch nicht lesen. Die Applikation (mal vereinfacht ausgedrückt) meldet einfach für bestimmte Entity-Typen zusätzliche Eigenschaften an und wenn dann das Eigenschaftenfenster auf so ein Objekt vom vereinbarten Typen trifft, dann wird die Applikation gebeten doch die Daten zur Verfügung zu stellen, AutoCAD zeigt die nur an (geht mit C++ und sind dort auch nur ein paar Zeilen Code).
Wenn diese Zeichnung also in Umgebungen geöffnet wird, in denen die Applikation nicht zur Verfügung steht und auch kein anderer ObjectEnabler installiert ist, dann gibt es dort diese Eigenschaften auch nicht.

Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


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

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 04. Nov. 2021 22: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

vielen Dank, klar und verständlich 😀

------------------
Gruss Dirk

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

cadffm
Moderator
良い精神




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

Beiträge: 20903
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 04. Nov. 2021 23:24    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 cadplayer 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von cadplayer:
wenn einem das API fehlt?

DAS wäre schlecht und eine mühsame Arbeit, in diesem Fall hier evtl. gar SEHR mühsam da die Daten
nicht einfach als String vorliegen sondern im binär chunk von irgendwelchen "IRD_OBJ_RECORDs" und anderen.

Ich habe mir die Datei angesehen, es geht also um C3D bzw. MAP,
du hast ja C3D und da sind die MAP Sachen mit drin (ich nehme an die Datei wurde auch in C3D erstellt!?
daher muss es ja dabei sein, sonst könnte C3D die Daten nicht schreiben.

Deine Suche sollte sich konzentrieren auf die ADE Funktionsbibliothek,
also über den Daumen: Alles was mit ADE* anfängt, hier aktuell auch nur auf ADE_OD*

Starte dein C3D und schau, jeder Zeile der Ausgabe ist zugleich ein Suchbegriff für dich:

(foreach i
   (vl-sort (vl-remove-if-not '(lambda (x) (wcmatch (strcase x) "ADE*"))(atoms-family 1) )'< )
   (print i)
)

Jeder Treffer gleich ein Suchbegriff, aber das findest du auch alles schön gebündelt in einer Hilfe, just Google - Object Data Functions AutoCAD Map 3D AutoLISP

Im 'c programme autodesk autocad 2021 MAP Sample' Ordner findest du auch Beispielroutinen (wofür auch immer, bin kein C3D/MAP USer).
Zb. Copy_OD.lsp oder das nette DIRARROW.lsp - der ARROW Befehl zeigt dir nach Auswahl einer Linie eine temporäre Pfeildarstellung an.
Eine Funktion in der Datei ist READ_TABLE_DATA
welche direkt zwei hier passende Funktionen einsetzt: ade_odgettables ade_odgetfield
und schon hast du deine erste Funktion zum Thema gefunden (bzw ich).

Teste zB diesen Ausdruck, ab in die Befehlzeile damit:
Befehl:
(foreach table (ade_odgettables (setq ename  (car(entsel))))
  (foreach field (cdr(assoc "Columns" (ade_odtabledefn table)))
    (if (setq hit (ade_odgetfield ename table (cdar field) 0))
        (alert(print(strcat (cdar field) "= " hit)))
    )
  )
)

ich sage hier aber mal ADE 
weil ich & C3D+MAP = keine Ahnung

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

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 05. Nov. 2021 05: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

Tja du belehrst mich immer wieder, wie wenig ich weiss. (sorry für mein deutsch, SWE-tastatur... "ss").
Vielen, vielen Dank - deine Infos muss ich mir erstmal in ruhe durchlesen und testen - Neuland, Datensätze von den ich gar nichts wusste - absolut interessant.

Wünsche euch beiden ein schönes WE!

------------------
Gruss Dirk

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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1707
Registriert: 11.10.2004

Window 10
ACAD 2012-2021
CIVIL 2012 - 2021
BricsCAD V14-V21
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 05. Nov. 2021 08:37    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 cadplayer 10 Unities + Antwort hilfreich

Hallo Dirk,
noch eine Ergänzung zum Beitrag von Sebastian.

mit den MAP-Daten, das hatten wir schon einmal:
https://ww3.cad.de/foren/ubb/Forum481/HTML/000529.shtml#000010

Ich habe die Funktion JB_MAP->Xdaten von damals eben noch angepasst, weil bei Deinen Daten ein Integer falsch ausgewertet worden ist (ob das alles so korrekt ist kannst Du selber prüfen, war nur auf die Schnelle)

Zum verwenden brauchtst Du in jeden Fall AutoCAD-MAP, die MAP-Daten werden dann strukturiert in Xdaten abgelegt. Das kannst Du Dir dann ja anpassen.

Code:

;;;Jörn Bosse, 07.11.2019, aktualisiert 05.11.2021
(defun c:JB_MAP->Xdaten (/ AWS COLUMNSUB DEFAULTVAL FIELDDATA N TBLNAME XDATA XDATAGCN Nrecord i)
  (if (and (princ "\nObjekte auswählen:") (setq aws (ssget)))
    (progn (setq n 0)
     
  (repeat (sslength aws)
    (mapcar
      '(lambda (tblname)
  (setq Nrecord(ade_odrecordqty (ssname aws n) tblname))
  (setq xData nil
XDataDef nil
i -1)


  (while (< (+ i 1) Nrecord)
    (setq i (+ i 1))

    (mapcar
      '(lambda (ColumnSub)
  (setq FieldData (ade_odgetfield
    (ssname aws n)
    tblname
    (cdr (assoc "ColName" ColumnSub))
    i))

  (cond ((= (strcase (cdr (assoc "ColType" ColumnSub)) 'T) "character")
(setq XdataGcN 1000))
((= (strcase (cdr (assoc "ColType" ColumnSub)) 'T) "integer")
(setq XdataGcN 1070))
((= (strcase (cdr (assoc "ColType" ColumnSub)) 'T) "point")
(setq XdataGcN 1010))
      ((= (strcase (cdr (assoc "ColType" ColumnSub)) 'T) "real")
(setq XdataGcN 1040)))
  (if (= i 0)
    (setq XdataDef
  (append XdataDef
  (list (cons 1000 "ColName")
(cons 1000 (cdr (assoc "ColName" ColumnSub)))
(cons 1000 "ColDesc")
(cons 1000 (cdr (assoc "ColDesc" ColumnSub)))
(cons 1000 "ColType")
(cons 1000 (cdr (assoc "ColType" ColumnSub)))
(cons 1000 "DefaultVal")
(cons XdataGcN
      (JB_MAP->Xdaten:DefaultVal:Type XdataGcN
(cdr (assoc "DefaultVal"
    ColumnSub)))
      )))))

(setq Xdata (append Xdata (list (cons 1000 (cdr (assoc "ColName" ColumnSub)))
(cons XdataGcN (JB_MAP->Xdaten:DefaultVal:Type XdataGcN
FieldData)))))
)
     
    (cdr (assoc "Columns" (ade_odtabledefn tblname)))))
  (regapp (strcat tblname "_DEF"))
  (entmod (append (entget (ssname aws n))
  (list (list -3 (cons (strcat tblname "_DEF") XdataDef)))))
  (regapp (strcat tblname "_DATA"))
  (entmod (append (entget (ssname aws n))
  (list (list -3 (cons (strcat tblname "_DATA") Xdata))))))
     
      (ade_odgettables (ssname aws n)))
    (setq n (+ n 1)))))
  (princ))

(defun JB_MAP->Xdaten:DefaultVal:Type (XdataGcN DefaultVal / )
  (cond ((= XdataGcN 1070);;;integer
(if DefaultVal
  (atoi DefaultVal)
  0)
  )
((= XdataGcN 1040);;;real
(if DefaultVal
  (atof DefaultVal)
  0))
('T
DefaultVal))
  )
 
     


------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

Bosse_tools-Überblick

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



Programmentwickler CAD & Office (m/w/divers)

thyssenkrupp ist eine international aufgestellte Unternehmensgruppe aus weitgehend selbstständigen Industrie- und Technologiegeschäften mit über 100.000 Mitarbeitenden. In 56 Ländern erwirtschaftete die Gruppe im Geschäftsjahr 2020/2021 einen Umsatz von 34 Mrd ?. Mit umfassendem Technologie-Know-how entwickeln die Geschäfte und alle Mitarbeitenden wirtschaftliche und ressourcenschonende ...

Anzeige ansehenSoftwareentwicklung
cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 05. Nov. 2021 21:38    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

wow, jetzt bin ich ganz baff.
Danke Jörn für dein know how.
Super, jetzt habe ich geniale Werkzeuge.

------------------
Gruss Dirk

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