簡體   English   中英

從DXFwrite刪除超級流層

[英]Removing superfluos layers from DXFwrite

我使用python包DXFwrite構建太陽能電池網格。 不幸的是,我的仿真程序被DXFwrite引入的其他層所迷惑。 他們的名字是:

  • 尺寸圖
  • 表格內容
  • 桌面網格
  • 桌面背景
  • 視口

有沒有一種簡單的方法可以防止DXFwrite創建這些層? 我尚未找到任何刪除圖層的命令。

最好的祝福,

托斯滕·里索姆

沒有沒有刪除層的方法,您不能阻止dxfwrite創建此層。

選擇1:

使用ezdxf( https://pypi.python.org/pypi/ezdxf/ ),但是也有一些預定義的圖層(DEFPOINTS,VIEW_PORT),但是您可以從圖層表中刪除條目: dwg.layers.remove('layername') ,這只會刪除圖層表條目,如果沒有實體引用該圖層,則僅刪除該圖層。 也許還有一些意想不到的副作用。

選擇2:

使用ezdxf.r12writer:此模塊無需ezdxf包即可使用,只需將r12writer.py復制到您的項目中即可。 該模塊可編寫非常基本的DXF12文件,請參見docs: http ://pythonhosted.org/ezdxf/r12writer.html。

  • 支持的實體:LINE,CIRCLE,ARC,TEXT,POINT,SOLID,3DFACE和POLYLINE
  • 不支持塊引用!
  • 額外的優勢:r12writer非常快

瀏覽源代碼后 -有可能。

DXFEngine.layers是一個內部_Table結構,它具有clear()函數。 尚未測試有害副作用,但是您可以執行以下操作:

from dxfwrite import DXFEngine as mydxfwrite
mydxfdrawing = mydxfwrite.drawing('Filename.dxf')
mydxfdrawing.layers.clear() #clears the layers
mydxfdrawing.add_layer("JUSTASINGLELAYER",color=1) #add your layer with for example a specific color
mydxfdrawing.save()

但是, LibreCad仍然顯示“ JUSTASINGLELAYER”層之外的“ 0”層。

馬丁的祝福

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM