primera subida

This commit is contained in:
2025-01-28 00:04:13 +01:00
commit a91237c3e1
577 changed files with 457418 additions and 0 deletions

143
Importer/importDXF.py Normal file
View File

@@ -0,0 +1,143 @@
import FreeCAD
if FreeCAD.GuiUp:
import FreeCADGui
from PySide import QtGui
from PySide.QtCore import QT_TRANSLATE_NOOP
import os
else:
# \cond
def translate(ctxt, txt):
return txt
def QT_TRANSLATE_NOOP(ctxt, txt):
return txt
# \endcond
__title__ = "PVPlant Export to DXF"
__author__ = "Javier Braña"
__url__ = "http://www.sogos-solar.com"
import PVPlantResources
from PVPlantResources import DirIcons as DirIcons
def importDXF(filename):
print("---------- import to dxf ----------")
if filename == "":
return
import sys
import ezdxf
doc = None
try:
doc = ezdxf.readfile(filename)
except IOError:
print(f"Not a DXF file or a generic I/O error.")
sys.exit(1)
except ezdxf.DXFStructureError:
print(f"Invalid or corrupted DXF file.")
sys.exit(2)
# iteration
for layer in doc.layers:
print(layer.dxf.name)
#if layer.dxf.name != "0":
# layer.off() # switch all layers off except layer "0"
# check for existing layer definition
if "MyLines" in doc.layers:
layer = doc.layers.get("MyLines")
layer_count = len(doc.layers) # total count of layer definitions
class _PVPlantImportDXF:
'''The editmode TaskPanel to select what you want to export'''
def __init__(self):
self.doc = None
# self.form:
self.form = FreeCADGui.PySideUic.loadUi(os.path.join(PVPlantResources.__dir__, "importDXF.ui"))
self.form.setWindowIcon(QtGui.QIcon(os.path.join(PVPlantResources.DirIcons, "dxf.svg")))
self.form.buttonOpen.clicked.connect(self.openFile)
self.form.listLayer.currentItemChanged.connect(self.onLayerSelect)
def openFile(self):
''' '''
"getOpenFileName(parent: typing.Union[PySide2.QtWidgets.QWidget, NoneType] = None," \
"caption: str = ''," \
"dir: str = ''," \
"filter: str = ''," \
"options: PySide2.QtWidgets.QFileDialog.Options = Default(QFileDialog.Options)) -> typing.Tuple[str, str]"
filename, trash = QtGui.QFileDialog().getOpenFileName(None, 'Select File', os.getcwd(), 'Autocad dxf (*.dxf)')
if filename == "":
return
import sys
import ezdxf
try:
self.doc = ezdxf.readfile(filename)
except IOError:
print(f"Not a DXF file or a generic I/O error.")
sys.exit(1)
except ezdxf.DXFStructureError:
print(f"Invalid or corrupted DXF file.")
sys.exit(2)
# iteration
self.form.listLayer.clear()
for layer in self.doc.layers:
self.form.listLayer.addItem(layer.dxf.name)
msp = self.doc.modelspace()
for e in msp:
print(e.dxftype())
#self.form.listObjects.addItem(e.dxftype())
def onLayerSelect(self, item):
''' '''
print(item.text())
self.form.listLayer.clear()
if self.doc:
msp = self.doc.modelspace()
'''
layer = self.doc.layers.get(item.text())
for obj in layer.entities_in_redraw_order(reverse=False):
self.form.listObjects.addItem(obj)
'''
for obj in msp.query('*[layer=="'+item.text()+'"]'):
#self.form.listObjects.addItem(obj)
print(obj)
def accept(self):
''' '''
class CommandImportDXF:
def GetResources(self):
return {'Pixmap': str(os.path.join(DirIcons, "dxf.svg")),
'Accel': "E, X",
'MenuText': "Importer to DXF",
'ToolTip': QT_TRANSLATE_NOOP("Placement", "Importer choosed layers to dxf")}
def Activated(self):
taskd = _PVPlantImportDXF()
FreeCADGui.Control.showDialog(taskd)
def IsActive(self):
if FreeCAD.ActiveDocument:
return True
else:
return False
if FreeCAD.GuiUp:
FreeCADGui.addCommand('importDXF', CommandImportDXF())

75
Importer/importDXF.ui Normal file
View File

@@ -0,0 +1,75 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>formPVSyst</class>
<widget class="QDialog" name="formPVSyst">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>421</width>
<height>471</height>
</rect>
</property>
<property name="windowTitle">
<string>Export to PVSyst</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="leftMargin">
<number>5</number>
</property>
<property name="topMargin">
<number>5</number>
</property>
<property name="rightMargin">
<number>5</number>
</property>
<property name="bottomMargin">
<number>5</number>
</property>
<item>
<widget class="QWidget" name="widget" native="true">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLineEdit" name="lineEdit"/>
</item>
<item>
<widget class="QPushButton" name="buttonOpen">
<property name="maximumSize">
<size>
<width>24</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>...</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QListWidget" name="listLayer"/>
</item>
<item>
<widget class="QListWidget" name="listObjects"/>
</item>
<item>
<widget class="QPushButton" name="pushOpenFile">
<property name="text">
<string>Aceptar</string>
</property>
<property name="icon">
<iconset theme="Accept">
<normaloff>.</normaloff>.</iconset>
</property>
<property name="default">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>