2017-06-05 18 views
0

j'utiliser le paquet python DXFwrite pour construire des réseaux de cellules solaires. Malheureusement, mon programme de simulation est confus par des couches supplémentaires introduites par DXFwrite. Leurs noms sont:enlever les couches de superfluos de DXFwrite

  • DIMENSIONS
  • TABLECONTENT
  • TABLEGRID
  • TABLEBACKGROUND
  • FENETRES

Y at-il un moyen simple d'éviter DXFwrite de créer ces couches? Je n'ai trouvé aucune commande pour supprimer des calques.

Cordialement,

Thorsten Rissom

Répondre

0

après écrémage par l'source - il y a une possibilité. DXFEngine.layers est une structure interne _Table, qui a une fonction clear(). avons pas testé pour des effets secondaires indésirables, mais vous pouvez effectuer les opérations suivantes:

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, cependant, montre encore une couche appelée « 0 » en dehors de la couche « JUSTASINGLELAYER ».

Meilleurs voeux, Martin

+0

qui fonctionne aussi bien. Il ne supprime cependant pas la couche "VIEWPORTS". À la fin j'ai suivi la deuxième alternative dans la réponse de @mozman. Merci pour la réponse! – rissom

3

Non il n'y a pas de méthode pour supprimer des couches et vous ne pouvez pas empêcher dxfwrite de créer ces couches.

Alternative 1:

utilisation ezdxf (https://pypi.python.org/pypi/ezdxf/), mais il y a aussi des couches prédéfinies (DEFPOINTS, VIEW_PORT), mais vous pouvez supprimer des entrées de la table de la couche : dwg.layers.remove('layername'), cela supprime uniquement l'entrée de table de couche , une couche n'est supprimée que si l'entité ne fait pas référence à cette couche. Et peut-être qu'il y a des effets secondaires inattendus.

Alternative 2:

utilisation ezdxf.r12writer: ce module peut être utilisé sans le paquet ezdxf, il suffit de copier r12writer.py dans votre projet. Le module écrit des fichiers DXF12 très basiques, voir docs: http://pythonhosted.org/ezdxf/r12writer.html.

  • entités prises en charge: EN LIGNE, CERCLE, ARC, TEXTE, POINT, SOLIDE, 3DFACE et POLYLINE
  • références de bloc ne sont pas pris en charge!
  • avantage supplémentaire: r12writer est très rapide