DXF and IFC pref pages can now be set to show on each import/export
This commit is contained in:
parent
5ef5a8ec3c
commit
79a615f222
|
@ -7,7 +7,7 @@
|
|||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>456</width>
|
||||
<height>486</height>
|
||||
<height>542</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
|
@ -20,6 +20,19 @@
|
|||
<property name="margin">
|
||||
<number>9</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="Gui::PrefCheckBox" name="checkBox_7">
|
||||
<property name="text">
|
||||
<string>Show this dialog when importing and exporting</string>
|
||||
</property>
|
||||
<property name="prefEntry" stdset="0">
|
||||
<cstring>ifcShowDialog</cstring>
|
||||
</property>
|
||||
<property name="prefPath" stdset="0">
|
||||
<cstring>Mod/Arch</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_3">
|
||||
<property name="title">
|
||||
|
|
|
@ -96,6 +96,7 @@ ENDSEC;
|
|||
END-ISO-10303-21;
|
||||
"""
|
||||
|
||||
|
||||
def decode(filename,utf=False):
|
||||
if isinstance(filename,unicode):
|
||||
# workaround since ifcopenshell currently can't handle unicode filenames
|
||||
|
@ -107,6 +108,7 @@ def decode(filename,utf=False):
|
|||
filename = filename.encode(encoding)
|
||||
return filename
|
||||
|
||||
|
||||
def doubleClickTree(item,column):
|
||||
txt = item.text(column)
|
||||
if "Entity #" in txt:
|
||||
|
@ -116,13 +118,41 @@ def doubleClickTree(item,column):
|
|||
tree.scrollToItem(addr[0])
|
||||
addr[0].setSelected(True)
|
||||
|
||||
|
||||
def getPreferences():
|
||||
"""retrieves IFC preferences"""
|
||||
global DEBUG, PREFIX_NUMBERS, SKIP, SEPARATE_OPENINGS,
|
||||
ROOT_ELEMENT, GET_EXTRUSIONS, MERGE_MATERIALS,
|
||||
MERGE_MODE_ARCH, MERGE_MODE_STRUCT, CREATE_CLONES,
|
||||
FORCE_BREP
|
||||
p = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Arch")
|
||||
if FreeCAD.GuiUp and p.GetBool("ifcShowDialog",False):
|
||||
import FreeCADGui
|
||||
FreeCADGui.showPreferences("Import-Export",0)
|
||||
DEBUG = p.GetBool("ifcDebug",False)
|
||||
PREFIX_NUMBERS = p.GetBool("ifcPrefixNumbers",False)
|
||||
SKIP = p.GetString("ifcSkip","").split(",")
|
||||
SEPARATE_OPENINGS = p.GetBool("ifcSeparateOpenings",False)
|
||||
ROOT_ELEMENT = p.GetString("ifcRootElement","IfcProduct")
|
||||
GET_EXTRUSIONS = p.GetBool("ifcGetExtrusions",False)
|
||||
MERGE_MATERIALS = p.GetBool("ifcMergeMaterials",False)
|
||||
MERGE_MODE_ARCH = p.GetInt("ifcImportModeArch",0)
|
||||
MERGE_MODE_STRUCT = p.GetInt("ifcImportModeStruct",1)
|
||||
if MERGE_MODE_ARCH > 0:
|
||||
SEPARATE_OPENINGS = False
|
||||
GET_EXTRUSIONS = False
|
||||
if not SEPARATE_OPENINGS:
|
||||
SKIP.append("IfcOpeningElement")
|
||||
CREATE_CLONES = p.GetBool("ifcCreateClones",True)
|
||||
FORCEBREP = p.GetBool("ifcExportAsBrep",False)
|
||||
|
||||
|
||||
def explore(filename=None):
|
||||
"""explore([filename]): opens a dialog showing
|
||||
the contents of an IFC file. If no filename is given, a dialog will
|
||||
pop up to choose a file."""
|
||||
|
||||
p = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Arch")
|
||||
DEBUG = p.GetBool("ifcDebug",False)
|
||||
|
||||
getPreferences()
|
||||
|
||||
try:
|
||||
import ifcopenshell
|
||||
|
@ -287,24 +317,7 @@ def insert(filename,docname,skip=[],only=[],root=None):
|
|||
certain object ids (will also get their children) and root can be used to
|
||||
import only the derivates of a certain element type (default = ifcProduct)."""
|
||||
|
||||
p = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Arch")
|
||||
DEBUG = p.GetBool("ifcDebug",False)
|
||||
PREFIX_NUMBERS = p.GetBool("ifcPrefixNumbers",False)
|
||||
SKIP = p.GetString("ifcSkip","").split(",")
|
||||
SEPARATE_OPENINGS = p.GetBool("ifcSeparateOpenings",False)
|
||||
ROOT_ELEMENT = p.GetString("ifcRootElement","IfcProduct")
|
||||
GET_EXTRUSIONS = p.GetBool("ifcGetExtrusions",False)
|
||||
MERGE_MATERIALS = p.GetBool("ifcMergeMaterials",False)
|
||||
if root:
|
||||
ROOT_ELEMENT = root
|
||||
MERGE_MODE_ARCH = p.GetInt("ifcImportModeArch",0)
|
||||
MERGE_MODE_STRUCT = p.GetInt("ifcImportModeStruct",1)
|
||||
if MERGE_MODE_ARCH > 0:
|
||||
SEPARATE_OPENINGS = False
|
||||
GET_EXTRUSIONS = False
|
||||
if not SEPARATE_OPENINGS:
|
||||
SKIP.append("IfcOpeningElement")
|
||||
CREATE_CLONES = p.GetBool("ifcCreateClones",True)
|
||||
getPreferences()
|
||||
|
||||
try:
|
||||
import ifcopenshell
|
||||
|
@ -320,6 +333,9 @@ def insert(filename,docname,skip=[],only=[],root=None):
|
|||
FreeCAD.ActiveDocument = doc
|
||||
|
||||
if DEBUG: print "done."
|
||||
|
||||
if root:
|
||||
ROOT_ELEMENT = root
|
||||
|
||||
#global ifcfile # keeping global for debugging purposes
|
||||
filename = decode(filename,utf=True)
|
||||
|
@ -789,9 +805,7 @@ def insert(filename,docname,skip=[],only=[],root=None):
|
|||
def export(exportList,filename):
|
||||
"exports FreeCAD contents to an IFC file"
|
||||
|
||||
p = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Arch")
|
||||
FORCEBREP = p.GetBool("ifcExportAsBrep",False)
|
||||
DEBUG = p.GetBool("ifcDebug",False)
|
||||
getPreferences()
|
||||
|
||||
try:
|
||||
global ifcopenshell
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>506</width>
|
||||
<height>564</height>
|
||||
<height>611</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
|
@ -20,10 +20,42 @@
|
|||
<property name="margin">
|
||||
<number>9</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="Gui::PrefCheckBox" name="checkBox_6">
|
||||
<property name="text">
|
||||
<string>Show this dialog when importing and exporting</string>
|
||||
</property>
|
||||
<property name="prefEntry" stdset="0">
|
||||
<cstring>dxfShowDialog</cstring>
|
||||
</property>
|
||||
<property name="prefPath" stdset="0">
|
||||
<cstring>Mod/Draft</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="Gui::PrefCheckBox" name="checkBox_4">
|
||||
<property name="toolTip">
|
||||
<string>If this is checked, the old python importer is used, otherwise the new C++ one (faster, but not as many features yet)</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Use legacy python importer</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="prefEntry" stdset="0">
|
||||
<cstring>dxfUseLegacyImporter</cstring>
|
||||
</property>
|
||||
<property name="prefPath" stdset="0">
|
||||
<cstring>Mod/Draft</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_2">
|
||||
<property name="title">
|
||||
<string>Automatic update</string>
|
||||
<string>Automatic update (legacy importer only)</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<item>
|
||||
|
@ -61,29 +93,6 @@
|
|||
<property name="margin">
|
||||
<number>9</number>
|
||||
</property>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_6">
|
||||
<item>
|
||||
<widget class="Gui::PrefCheckBox" name="checkBox_4">
|
||||
<property name="toolTip">
|
||||
<string>If this is checked, the old python importer is used, otherwise the new C++ one (faster, but not as many features yet)</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Use legacy python importer</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="prefEntry" stdset="0">
|
||||
<cstring>dxfUseLegacyImporter</cstring>
|
||||
</property>
|
||||
<property name="prefPath" stdset="0">
|
||||
<cstring>Mod/Draft</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
|
|
|
@ -2010,6 +2010,9 @@ def exportPageLegacy(page,filename):
|
|||
def readPreferences():
|
||||
# reading parameters
|
||||
p = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Draft")
|
||||
if FreeCAD.GuiUp and p.GetBool("dxfShowDialog",False):
|
||||
import FreeCADGui
|
||||
FreeCADGui.showPreferences("Import-Export",2)
|
||||
global dxfCreatePart, dxfCreateDraft, dxfCreateSketch, dxfDiscretizeCurves, dxfStarBlocks
|
||||
global dxfMakeBlocks, dxfJoin, dxfRenderPolylineWidth, dxfImportTexts, dxfImportLayouts
|
||||
global dxfImportPoints, dxfImportHatches, dxfUseStandardSize, dxfGetColors, dxfUseDraftVisGroups
|
||||
|
|
Loading…
Reference in New Issue
Block a user