Ich habe Civil 3D 2012 mit ArcGIS für AutoCAD 300. Ich möchte die Ausmaße eines Polygons in der Zeichnung lesen. Feature-Class in A4A300 = Grenzen, die CAD-Ebene ist PROP-BNDY. Auf dieser Ebene befindet sich nur ein Polygon, da es sich um den Umfang der Site handelt. Muss ich das Polygon in ein temporäres Shapefile konvertieren, lesen und dann löschen? Ich werde die Randbereiche plus eine Konstante in alle Richtungen verwenden, um Rasterbilder zu schneiden. Der Prozess sollte keine Benutzereingaben beinhalten. Ich habe 30 Verzeichnisse, die ich durchlaufen werde, eine Zeichnungsdatei in jedem Verzeichnis und ein Polygon in jeder Zeichnung. Ich habe die Python-Routinen zum Erstellen einer Liste von Verzeichnissen mit den Dateien * map.dwg und bin mit dem Abschneiden der Raster vertraut. Ich kann einfach nicht finden, wie die Polygonbereiche in der DWG-Datei gelesen werden. Ihre Hilfe wird gerne in Anspruch genommen!!
quelle
Antworten:
Wie Sie vorgeschlagen haben, müssen Sie das CAD-Polygon-Feature in eine GIS-Feature-Class oder einen Feature-Layer konvertieren. Anschließend können Sie arcpy verwenden, um die Geometrieausdehnung zu ermitteln.
Um eine temporäre / speicherinterne Schicht zu erstellen , können Sie zunächst die Funktion " Feature-Layer erstellen" verwenden (siehe Beispielcode unten):
Alterntivley, wenn Sie möchten, dass die temporäre Ebene in eine tatsächliche temporäre Datei konvertiert wird, können Sie Feature Class zu Feature Class verwenden .
In beiden Fällen können Sie dann die Ebenenausdehnung mit der Methode getExtent () abrufen :
quelle
Sie können die DWG-Datei in eine Feature-Class konvertieren und dann die Ausdehnung des Polygons mithilfe des folgenden Codes ermitteln:
quelle