一个正四棱锥(四面金字塔),
下面给你自动创建数据库、要素类、插入4个侧面三角面和底面正方形的完整代码(EPSG:3857,底面中心(0,0)):
import arcpy
import os
# 1. 路径参数
gdb_path = r"C:\Your\Workspace\Path" # 修改为你的文件夹
gdb_name = "pyramid.gdb"
fc_name = "PyramidPolyZ"
gdb_full = os.path.join(gdb_path, gdb_name)
fc_full = os.path.join(gdb_full, fc_name)
# 2. 新建数据库和带Z的Polygon要素类
if not arcpy.Exists(gdb_full):
arcpy.CreateFileGDB_management(gdb_path, gdb_name)
sr = arcpy.SpatialReference(3857)
if not arcpy.Exists(fc_full):
arcpy.CreateFeatureclass_management(
out_path=gdb_full, out_name=fc_name, geometry_type="POLYGON",
spatial_reference=sr, has_z="ENABLED"
)
# 3. 四棱锥参数
half = 400 / 2.0
h = 500
# 底面4点(顺时针)
A = arcpy.Point(-half, -half, 0)
B = arcpy.Point(half, -half, 0)
C = arcpy.Point(half, half, 0)
D = arcpy.Point(-half, half, 0)
# 顶点(z=500,x=0,y=0)
P = arcpy.Point(0, 0, h)
# 4. 插入四个侧面三角形和底面正方形
with arcpy.da.InsertCursor(fc_full, ["SHAPE@"]) as cursor:
# 侧面ABC, BCP, CDP, DAP
faces = [
[A, B, P, A],
[B, C, P, B],
[C, D, P, C],
[D, A, P, D]
]
for f in faces:
arr = arcpy.Array(f)
poly = arcpy.Polygon(arr, sr, has_z=True)
cursor.insertRow([poly])
# 底面ABCD
arr = arcpy.Array([A, B, C, D, A])
poly = arcpy.Polygon(arr, sr, has_z=True)
cursor.insertRow([poly])
print(f"已完成 {fc_full} 的四棱锥:4个侧面、1个底面Polygon(三维面)!")
用法说明
底面中心:(0,0)
底面边长
:400,顶点高程z=500
4个三角形侧面+1个底面正方形
可直接在ArcGIS Pro三维窗口查看
如需调整棱锥位置、底面方向、高度等,或要其它多面体结构,随时补充!