2017-06-05 71 views
0

我使用python包DXFwrite来构建太阳能电池网格。不幸的是,我的模拟程序被DXFwrite引入的附加层所困扰。他们的名字是:从DXFwrite中删除超级层数

  • 尺寸
  • TABLECONTENT
  • TABLEGRID
  • TABLEBACKGROUND

有一个简单的办法来防止DXFwrite从创建这些层?我还没有找到任何命令来删除图层。

最好的问候,

托尔斯滕Rissom

回答

0

通过source略读之后 - 有一种可能性。

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,但是,仍然显示了一个名为“0”除了层“JUSTASINGLELAYER”层。

最良好的祝愿, 马丁

+0

这工作也是如此。但它不会删除“VIEWPORTS”图层。最后,我在@mozman的回答中跟随了第二个选择。谢谢回复! – rissom

3

没有没有删除层的方法,你不能阻止dxfwrite从创建此层。

选择1:

使用ezdxf(https://pypi.python.org/pypi/ezdxf/),但也有一些预定义的图层(DEFPOINTS,VIEW_PORT),但你可以删除 层表项:dwg.layers.remove('layername'),这仅去除层表项,如果没有实体引用此图层,则只会删除一个图层。也许有一些意想不到的副作用。

备选方案2:

使用ezdxf.r12writer:该模块可在不ezdxf包中使用,只需复制r12writer.py到您的项目。该模块编写非常基本的DXF12文件,请参阅文档:http://pythonhosted.org/ezdxf/r12writer.html

  • 支持实体:直线,圆,弧,文本,点,SOLID,3DFACE和折线
  • 块参考,不支持!
  • 额外的好处:r12writer是非常快的