2016-04-05 3 views
0

In der unten habe ich die Kreise und die Linien, die in der angegebenen Dxf sind. Ich möchte die Punkte. Ich habe etwas aus der Dokumentation des dxfGrabber-Moduls ausprobiert, das ich nicht verstanden habe. Kann mir bitte jemand helfen.Erhalten von Punkten aus der DXF mit Dxfgrabber-Modul Python

import dxfgrabber 
import matplotlib.pyplot as p 
dxf=dxfgrabber.readfile("3.dxf") 
#version=dxf.header["$ACADVER"] 
output=[entity for entity in dxf.entities if entity.layer =='0'] 
q=[] 
for line in output: 
    q.append(line) 
w=[] 
i=0 
l=[] 
c=[] 
lines = [entity for entity in output if entity.dxftype == 'LWPOLYLINE'] 

circles= [entity for entity in output if entity.dxftype == 'CIRCLE'] 

for line in lines: 
    l.append(line) 
for part in circles: 
    c.append(part) 
references = [entity for entity in dxf.entities if entity.dxftype == '    

test= dxf.blocks 
points=[] 
points= 

Antwort

0
  1. Sammeln Sie alle Mittelpunkte aller Kreise:

    center_points = [entity.center für Unternehmen in der Ausgabe, wenn entity.dxftype == 'CIRCLE']

Ergebnis : center_points ist eine Liste von (x, y, z) Tupeln.

  1. Collect Eckpunkten aller LwPolylinien:

    list_of_vertices = [entity.points für Unternehmen in der Ausgabe, wenn entity.dxftype == 'LWPOLYLINE']

Ergebnis: list_of_vertices ist eine Liste von Vertex-Listen und jeder Vertex ist ein (x, y) -Tupel.

+0

Also sollte ich für jeden Blocktyp testen, ob die DXF Ellipse, Arc und Parabel hat! . Kann ich stattdessen alle Punkte gleichzeitig bekommen? –

+0

dxf.entities enthält alle Entitäten aus dem Modellbereich. dxf.blocks enthält alle Blockdefinitionen. Jeder Block ist ein separater Entitätsraum, der von der INSERT-Entität in den Modellbereich platziert wird. Wenn Sie Entitäten aus Blockdefinitionen erfassen, erhalten Sie nur die ursprüngliche Position der Entitäten im Blockentitätsbereich und nicht die Position der Entitäten, die durch INSERT im Zeichnungsmodellbereich erstellt wurden. – mozman

+0

Ich versuchte das, aber es gab leere Listen für beide von ihnen >>> ===== RESTART: C: \ Benutzer \ shiva \ Desktop \ desktopfolders \ Python \ dxfRead2.py ===== >>> center_points [] >>> list_of_vertices [] >>> –

Verwandte Themen