cube_test.py 874 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import ezdxf
  2. # 创建一个新的DXF文档
  3. doc = ezdxf.new(dxfversion='R2010') # 或者使用更高的版本,如 'R2020'
  4. msp = doc.modelspace() # 获取模型空间
  5. # 定义六面体的顶点
  6. vertices = [
  7. (0, 0, 0), # 0
  8. (2, 0, 0), # 1
  9. (2, 2, 0), # 2
  10. (0, 2, 0), # 3
  11. (0, 0, 2), # 4
  12. (2, 0, 2), # 5
  13. (2, 2, 2), # 6
  14. (0, 2, 2), # 7
  15. ]
  16. # 定义六面体的面(四边形),注意面是顺时针或逆时针定义的,这会影响其法线的方向
  17. faces = [
  18. [0, 1, 2, 3], # 底面
  19. [4, 5, 6, 7], # 顶面
  20. [0, 1, 5, 4], # 前面
  21. [1, 2, 6, 5], # 右面
  22. [2, 3, 7, 6], # 后面
  23. [3, 0, 4, 7], # 左面
  24. ]
  25. # 使用MeshBuilder创建六面体
  26. mesh = msp.add_mesh()
  27. with mesh.edit_data() as mesh_data:
  28. mesh_data.vertices = vertices
  29. mesh_data.faces = faces
  30. # 保存DXF文件
  31. doc.saveas("cube.dxf")