Material: Created material editor
Materal editor is now funcional, abeit not complete. Can be used to create and save new cards. Lauch from within FreeCAD with import MaterialEditor; MaterialEditor.openEditor()
This commit is contained in:
parent
c01306440a
commit
f4da53bd1d
|
@ -4,6 +4,7 @@ SET(Material_SRCS
|
||||||
InitGui.py
|
InitGui.py
|
||||||
Material.py
|
Material.py
|
||||||
importFCMat.py
|
importFCMat.py
|
||||||
|
MaterialEditor.py
|
||||||
)
|
)
|
||||||
SOURCE_GROUP("" FILES ${Material_SRCS})
|
SOURCE_GROUP("" FILES ${Material_SRCS})
|
||||||
|
|
||||||
|
@ -34,3 +35,11 @@ INSTALL(
|
||||||
FILES ${Material_SRCS}
|
FILES ${Material_SRCS}
|
||||||
DESTINATION Mod/Material
|
DESTINATION Mod/Material
|
||||||
)
|
)
|
||||||
|
|
||||||
|
INSTALL(
|
||||||
|
DIRECTORY
|
||||||
|
StandardMaterial
|
||||||
|
DESTINATION
|
||||||
|
${CMAKE_INSTALL_DATADIR}/Mod/Material
|
||||||
|
FILES_MATCHING PATTERN "*.FCMat*"
|
||||||
|
)
|
||||||
|
|
239
src/Mod/Material/MaterialEditor.py
Normal file
239
src/Mod/Material/MaterialEditor.py
Normal file
|
@ -0,0 +1,239 @@
|
||||||
|
#***************************************************************************
|
||||||
|
#* *
|
||||||
|
#* Copyright (c) 2013 - Yorik van Havre <yorik@uncreated.net> *
|
||||||
|
#* *
|
||||||
|
#* This program is free software; you can redistribute it and/or modify *
|
||||||
|
#* it under the terms of the GNU Lesser General Public License (LGPL) *
|
||||||
|
#* as published by the Free Software Foundation; either version 2 of *
|
||||||
|
#* the License, or (at your option) any later version. *
|
||||||
|
#* for detail see the LICENCE text file. *
|
||||||
|
#* *
|
||||||
|
#* This program is distributed in the hope that it will be useful, *
|
||||||
|
#* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||||
|
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||||
|
#* GNU Library General Public License for more details. *
|
||||||
|
#* *
|
||||||
|
#* You should have received a copy of the GNU Library General Public *
|
||||||
|
#* License along with this program; if not, write to the Free Software *
|
||||||
|
#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
|
||||||
|
#* USA *
|
||||||
|
#* *
|
||||||
|
#***************************************************************************
|
||||||
|
|
||||||
|
import FreeCAD, os
|
||||||
|
from PyQt4 import QtCore, QtGui, uic
|
||||||
|
|
||||||
|
__title__="FreeCAD material editor"
|
||||||
|
__author__ = "Yorik van Havre"
|
||||||
|
__url__ = "http://www.freecadweb.org"
|
||||||
|
|
||||||
|
class MaterialEditor(QtGui.QDialog):
|
||||||
|
|
||||||
|
def __init__(self, obj = None, prop = None):
|
||||||
|
"Initializes, optionally with an object name and a material property name to edit"
|
||||||
|
QtGui.QDialog.__init__(self)
|
||||||
|
self.obj = obj
|
||||||
|
self.prop = prop
|
||||||
|
self.customprops = []
|
||||||
|
# load the UI file from the same directory as this script
|
||||||
|
uic.loadUi(os.path.dirname(__file__)+os.sep+"materials-editor.ui",self)
|
||||||
|
self.ui = self
|
||||||
|
# additional UI fixes and tweaks
|
||||||
|
self.ButtonURL.setIcon(QtGui.QIcon(":/icons/internet-web-browser.svg"))
|
||||||
|
self.ButtonDeleteProperty.setEnabled(False)
|
||||||
|
self.standardButtons.button(QtGui.QDialogButtonBox.Ok).setAutoDefault(False)
|
||||||
|
self.standardButtons.button(QtGui.QDialogButtonBox.Cancel).setAutoDefault(False)
|
||||||
|
self.updateCards()
|
||||||
|
self.Editor.header().resizeSection(0,200)
|
||||||
|
self.Editor.expandAll()
|
||||||
|
self.Editor.setFocus()
|
||||||
|
# TODO allow to enter a custom property by pressing Enter in the lineedit (currently closes the dialog)
|
||||||
|
self.Editor.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers)
|
||||||
|
QtCore.QObject.connect(self.ComboMaterial, QtCore.SIGNAL("currentIndexChanged(QString)"), self.updateContents)
|
||||||
|
QtCore.QObject.connect(self.ButtonURL, QtCore.SIGNAL("clicked()"), self.openProductURL)
|
||||||
|
QtCore.QObject.connect(self.standardButtons, QtCore.SIGNAL("accepted()"), self.accept)
|
||||||
|
QtCore.QObject.connect(self.standardButtons, QtCore.SIGNAL("rejected()"), self.reject)
|
||||||
|
QtCore.QObject.connect(self.ButtonAddProperty, QtCore.SIGNAL("clicked()"), self.addCustomProperty)
|
||||||
|
QtCore.QObject.connect(self.EditProperty, QtCore.SIGNAL("returnPressed()"), self.addCustomProperty)
|
||||||
|
QtCore.QObject.connect(self.ButtonDeleteProperty, QtCore.SIGNAL("clicked()"), self.deleteCustomProperty)
|
||||||
|
QtCore.QObject.connect(self.Editor, QtCore.SIGNAL("itemDoubleClicked(QTreeWidgetItem*,int)"), self.itemClicked)
|
||||||
|
QtCore.QObject.connect(self.Editor, QtCore.SIGNAL("currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)"), self.checkDeletable)
|
||||||
|
QtCore.QObject.connect(self.ButtonOpen, QtCore.SIGNAL("clicked()"), self.openfile)
|
||||||
|
QtCore.QObject.connect(self.ButtonSave, QtCore.SIGNAL("clicked()"), self.savefile)
|
||||||
|
# update the editor with the contents of the property, if we have one
|
||||||
|
if self.prop and self.obj:
|
||||||
|
d = FreeCAD.ActiveDocument.getObject(self.obj).getPropertyByName(self.prop)
|
||||||
|
self.updateContents(d)
|
||||||
|
|
||||||
|
def updateCards(self):
|
||||||
|
"updates the contents of the materials combo with existing material cards"
|
||||||
|
# look for cards in both resources dir and user folder.
|
||||||
|
# User cards with same name will override system cards
|
||||||
|
paths = [FreeCAD.getResourceDir() + os.sep + "Mod" + os.sep + "Material" + os.sep + "StandardMaterial"]
|
||||||
|
paths.append(FreeCAD.ConfigGet("UserAppData"))
|
||||||
|
self.cards = {}
|
||||||
|
for p in paths:
|
||||||
|
for f in os.listdir(p):
|
||||||
|
b,e = os.path.splitext(f)
|
||||||
|
if e.upper() == ".FCMAT":
|
||||||
|
self.cards[b] = p + os.sep + f
|
||||||
|
if self.cards:
|
||||||
|
self.ComboMaterial.clear()
|
||||||
|
self.ComboMaterial.addItem("") # add a blank item first
|
||||||
|
for k,i in self.cards.iteritems():
|
||||||
|
self.ComboMaterial.addItem(k)
|
||||||
|
|
||||||
|
def updateContents(self,data):
|
||||||
|
"updates the contents of the editor with the given data (can be the name of a card or a dictionary)"
|
||||||
|
if isinstance(data,dict):
|
||||||
|
self.clearEditor()
|
||||||
|
for k,i in data.iteritems():
|
||||||
|
k = self.expandKey(k)
|
||||||
|
slot = self.Editor.findItems(k,QtCore.Qt.MatchRecursive,0)
|
||||||
|
if len(slot) == 1:
|
||||||
|
slot = slot[0]
|
||||||
|
slot.setText(1,i)
|
||||||
|
else:
|
||||||
|
self.addCustomProperty(k,i)
|
||||||
|
elif isinstance(data,QtCore.QString):
|
||||||
|
k = str(data)
|
||||||
|
if k:
|
||||||
|
if k in self.cards:
|
||||||
|
import importFCMat
|
||||||
|
d = importFCMat.read(self.cards[k])
|
||||||
|
if d:
|
||||||
|
self.updateContents(d)
|
||||||
|
|
||||||
|
def openProductURL(self):
|
||||||
|
"opens the contents of the ProductURL field in an external browser"
|
||||||
|
url = str(self.Editor.findItems(translate("Material","Product URL"),QtCore.Qt.MatchRecursive,0)[0].text(1))
|
||||||
|
if url:
|
||||||
|
QtGui.QDesktopServices.openUrl(QtCore.QUrl(url, QtCore.QUrl.TolerantMode))
|
||||||
|
|
||||||
|
def accept(self):
|
||||||
|
"if we are editing a property, set the property values"
|
||||||
|
if self.prop and self.obj:
|
||||||
|
d = self.getDict()
|
||||||
|
o = FreeCAD.ActiveDocument.getObject(self.obj)
|
||||||
|
setattr(o,self.prop,d)
|
||||||
|
QtGui.QDialog.accept(self)
|
||||||
|
|
||||||
|
def expandKey(self, key):
|
||||||
|
"adds spaces before caps in a KeyName"
|
||||||
|
nk = ""
|
||||||
|
for l in key:
|
||||||
|
if l.isupper():
|
||||||
|
if nk:
|
||||||
|
# this allows for series of caps, such as ProductURL
|
||||||
|
if not nk[-1].isupper():
|
||||||
|
nk += " "
|
||||||
|
nk += l
|
||||||
|
return nk
|
||||||
|
|
||||||
|
def collapseKey(self, key):
|
||||||
|
"removes the spaces in a Key Name"
|
||||||
|
nk = ""
|
||||||
|
for l in key:
|
||||||
|
if l != " ":
|
||||||
|
nk += l
|
||||||
|
return nk
|
||||||
|
|
||||||
|
def clearEditor(self):
|
||||||
|
"Clears the contents of the editor"
|
||||||
|
for i1 in range(self.Editor.topLevelItemCount()):
|
||||||
|
w = self.Editor.topLevelItem(i1)
|
||||||
|
for i2 in range(w.childCount()):
|
||||||
|
c = w.child(i2)
|
||||||
|
c.setText(1,"")
|
||||||
|
for k in self.customprops:
|
||||||
|
self.deleteCustomProperty(k)
|
||||||
|
|
||||||
|
def addCustomProperty(self, key = None, value = None):
|
||||||
|
"Adds a custom property to the editor, optionally with a value"
|
||||||
|
if not key:
|
||||||
|
key = str(self.EditProperty.text())
|
||||||
|
if key:
|
||||||
|
if not key in self.customprops:
|
||||||
|
if not self.Editor.findItems(key,QtCore.Qt.MatchRecursive,0):
|
||||||
|
top = self.Editor.findItems(translate("Material","User defined"),QtCore.Qt.MatchExactly,0)
|
||||||
|
if top:
|
||||||
|
i = QtGui.QTreeWidgetItem(top[0])
|
||||||
|
i.setFlags(QtCore.Qt.ItemIsSelectable|QtCore.Qt.ItemIsEditable|QtCore.Qt.ItemIsDragEnabled|QtCore.Qt.ItemIsUserCheckable|QtCore.Qt.ItemIsEnabled)
|
||||||
|
i.setText(0,key)
|
||||||
|
self.customprops.append(key)
|
||||||
|
self.EditProperty.setText("")
|
||||||
|
if value:
|
||||||
|
i.setText(1,value)
|
||||||
|
|
||||||
|
def deleteCustomProperty(self, key = None):
|
||||||
|
"Deletes a custom property from the editor"
|
||||||
|
if not key:
|
||||||
|
key = str(self.Editor.currentItem().text(0))
|
||||||
|
if key:
|
||||||
|
if key in self.customprops:
|
||||||
|
i = self.Editor.findItems(key,QtCore.Qt.MatchRecursive,0)
|
||||||
|
if i:
|
||||||
|
top = self.Editor.findItems(translate("Material","User defined"),QtCore.Qt.MatchExactly,0)
|
||||||
|
if top:
|
||||||
|
top = top[0]
|
||||||
|
ii = top.indexOfChild(i[0])
|
||||||
|
if ii >= 0:
|
||||||
|
top.takeChild(ii)
|
||||||
|
self.customprops.remove(key)
|
||||||
|
|
||||||
|
def itemClicked(self, item, column):
|
||||||
|
"Edits an item if it is not in the first column"
|
||||||
|
if column > 0:
|
||||||
|
self.Editor.editItem(item, column)
|
||||||
|
|
||||||
|
def checkDeletable(self,current,previous):
|
||||||
|
"Checks if the current item is a custom property, if yes enable the delete button"
|
||||||
|
if str(current.text(0)) in self.customprops:
|
||||||
|
self.ButtonDeleteProperty.setEnabled(True)
|
||||||
|
else:
|
||||||
|
self.ButtonDeleteProperty.setEnabled(False)
|
||||||
|
|
||||||
|
def getDict(self):
|
||||||
|
"returns a dictionnary from the contents of the editor"
|
||||||
|
d = {}
|
||||||
|
for i1 in range(self.Editor.topLevelItemCount()):
|
||||||
|
w = self.Editor.topLevelItem(i1)
|
||||||
|
for i2 in range(w.childCount()):
|
||||||
|
c = w.child(i2)
|
||||||
|
# TODO the following should be translated back to english,since text(0) could be translated
|
||||||
|
d[self.collapseKey(str(c.text(0)))] = unicode(c.text(1))
|
||||||
|
return d
|
||||||
|
|
||||||
|
def openfile(self):
|
||||||
|
"Opens a FCMat file"
|
||||||
|
filename = QtGui.QFileDialog.getOpenFileName(QtGui.qApp.activeWindow(),'Open FreeCAD Material file','*.FCMat')
|
||||||
|
if filename:
|
||||||
|
self.clearEditor()
|
||||||
|
import importFCMat
|
||||||
|
d = importFCMat.read(filename)
|
||||||
|
if d:
|
||||||
|
self.updateContents(d)
|
||||||
|
|
||||||
|
def savefile(self):
|
||||||
|
"Saves a FCMat file"
|
||||||
|
name = str(self.Editor.findItems(translate("Material","Name"),QtCore.Qt.MatchRecursive,0)[0].text(1))
|
||||||
|
if not name:
|
||||||
|
name = "Material"
|
||||||
|
filename = QtGui.QFileDialog.getSaveFileName(QtGui.qApp.activeWindow(),'Save FreeCAD Material file',name+'.FCMat')
|
||||||
|
if filename:
|
||||||
|
d = self.getDict()
|
||||||
|
if d:
|
||||||
|
import importFCMat
|
||||||
|
importFCMat.write(filename,d)
|
||||||
|
|
||||||
|
|
||||||
|
def translate(context,text):
|
||||||
|
"translates text"
|
||||||
|
return text #TODO use Qt translation mechanism here
|
||||||
|
|
||||||
|
def openEditor(obj = None, prop = None):
|
||||||
|
"""openEditor([obj,prop]): opens the editor, optionally with
|
||||||
|
an object name and material property name to edit"""
|
||||||
|
editor = MaterialEditor(obj,prop)
|
||||||
|
editor.show()
|
||||||
|
|
99
src/Mod/Material/Resources/icons/preview-rendered.svg
Normal file
99
src/Mod/Material/Resources/icons/preview-rendered.svg
Normal file
|
@ -0,0 +1,99 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="96"
|
||||||
|
height="96"
|
||||||
|
id="svg2"
|
||||||
|
version="1.1"
|
||||||
|
inkscape:version="0.48.4 r9939"
|
||||||
|
sodipodi:docname="New document 1">
|
||||||
|
<defs
|
||||||
|
id="defs4">
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3755">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#424242;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop3757" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#9f9f9f;stop-opacity:1;"
|
||||||
|
offset="1"
|
||||||
|
id="stop3759" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3755"
|
||||||
|
id="linearGradient3761"
|
||||||
|
x1="75.724594"
|
||||||
|
y1="85.023956"
|
||||||
|
x2="41.895164"
|
||||||
|
y2="13.334851"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="7.9195959"
|
||||||
|
inkscape:cx="45.182954"
|
||||||
|
inkscape:cy="48.588533"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="false"
|
||||||
|
showborder="true"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="1053"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1" />
|
||||||
|
<metadata
|
||||||
|
id="metadata7">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(0,-956.36218)">
|
||||||
|
<path
|
||||||
|
sodipodi:type="arc"
|
||||||
|
style="color:#000000;fill:url(#linearGradient3761);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.29399991000000014;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||||
|
id="path2985"
|
||||||
|
sodipodi:cx="56.785713"
|
||||||
|
sodipodi:cy="50.107143"
|
||||||
|
sodipodi:rx="39.464287"
|
||||||
|
sodipodi:ry="39.464287"
|
||||||
|
d="m 96.25,50.107143 a 39.464287,39.464287 0 1 1 -78.928574,0 39.464287,39.464287 0 1 1 78.928574,0 z"
|
||||||
|
transform="matrix(1.0586387,0,0,1.0586387,-13.061986,951.19181)" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="arc"
|
||||||
|
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.29399991;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||||
|
id="path3771"
|
||||||
|
sodipodi:cx="41.42857"
|
||||||
|
sodipodi:cy="41.625"
|
||||||
|
sodipodi:rx="20.892857"
|
||||||
|
sodipodi:ry="8.8392859"
|
||||||
|
d="m 62.321426,41.625 a 20.892857,8.8392859 0 1 1 -41.785713,0 20.892857,8.8392859 0 1 1 41.785713,0 z"
|
||||||
|
transform="matrix(0.78576781,-0.61852158,0.61852158,0.78576781,-27.227771,976.08263)" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.4 KiB |
107
src/Mod/Material/Resources/icons/preview-vector.svg
Normal file
107
src/Mod/Material/Resources/icons/preview-vector.svg
Normal file
|
@ -0,0 +1,107 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="96"
|
||||||
|
height="96"
|
||||||
|
id="svg2"
|
||||||
|
version="1.1"
|
||||||
|
inkscape:version="0.48.4 r9939"
|
||||||
|
sodipodi:docname="preview-rendered.svg">
|
||||||
|
<defs
|
||||||
|
id="defs4">
|
||||||
|
<inkscape:perspective
|
||||||
|
sodipodi:type="inkscape:persp3d"
|
||||||
|
inkscape:vp_x="-206.25075 : 119.68854 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_z="183.50001 : 140.32143 : 1"
|
||||||
|
inkscape:persp3d-origin="48 : 32 : 1"
|
||||||
|
id="perspective3792" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3755">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#424242;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop3757" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#9f9f9f;stop-opacity:1;"
|
||||||
|
offset="1"
|
||||||
|
id="stop3759" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3755"
|
||||||
|
id="linearGradient3761"
|
||||||
|
x1="75.724594"
|
||||||
|
y1="85.023956"
|
||||||
|
x2="41.895164"
|
||||||
|
y2="13.334851"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="3.959798"
|
||||||
|
inkscape:cx="40.368394"
|
||||||
|
inkscape:cy="37.766162"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="g3794"
|
||||||
|
showgrid="false"
|
||||||
|
showborder="true"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="1053"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1" />
|
||||||
|
<metadata
|
||||||
|
id="metadata7">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(0,-956.36218)">
|
||||||
|
<g
|
||||||
|
id="g3794"
|
||||||
|
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.29399991;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate">
|
||||||
|
<path
|
||||||
|
style="fill:#b7b7b7;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||||
|
d="M 45.375,3.65625 22.419643,13.732143 20.5,21.6875 58.71875,29.34375 93.40625,8.875 z"
|
||||||
|
transform="translate(0,956.36218)"
|
||||||
|
id="path3816"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="cccccc" />
|
||||||
|
<path
|
||||||
|
d="m 58.731647,985.71162 0,63.26968 34.683707,-38.0674 0,-45.68166 z"
|
||||||
|
style="fill:#b7b7b7;fill-rule:evenodd;stroke:#000000;fill-opacity:1;stroke-opacity:1;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-linejoin:round;stroke-linecap:round"
|
||||||
|
id="path3818" />
|
||||||
|
<path
|
||||||
|
d="m 22.535249,970.8073 50.212265,6.57056 -14.015867,71.60344 -52.910961,-13.4284 z"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||||
|
id="path3820"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="ccccc" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.8 KiB |
56
src/Mod/Material/StandardMaterial/Concrete.FCMat
Normal file
56
src/Mod/Material/StandardMaterial/Concrete.FCMat
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
; Standard Concrete Material
|
||||||
|
; (c) 2013 Yorik van Havre (CC-BY 3.0)
|
||||||
|
; file produced by FreeCAD 0.14 2756 (Git)
|
||||||
|
; information about the content of this card can be found here:
|
||||||
|
; http://www.freecadweb.org/wiki/index.php?title=Material
|
||||||
|
|
||||||
|
[General]
|
||||||
|
Vendor=
|
||||||
|
Name=Concrete
|
||||||
|
SpecificPrice=
|
||||||
|
Father=Aggregate
|
||||||
|
ProductURL=http://en.wikipedia.org/wiki/Concrete
|
||||||
|
SpecificWeight=2400 kg/m³
|
||||||
|
Description=A standard C-25 construction concrete
|
||||||
|
|
||||||
|
[Mechanical]
|
||||||
|
UltimateTensileStrength=
|
||||||
|
CompressiveStrength=25 Mpa
|
||||||
|
YoungsModulus=
|
||||||
|
Elasticity=
|
||||||
|
FractureToughness=
|
||||||
|
|
||||||
|
[FEM]
|
||||||
|
PoissonRatio=
|
||||||
|
|
||||||
|
[Architectural]
|
||||||
|
StandardCode=Masterformat 03 33 13
|
||||||
|
EnvironmentalEfficiencyClass=
|
||||||
|
FireResistanceClass=
|
||||||
|
Finish=
|
||||||
|
Color=
|
||||||
|
ExecutionInstructions=
|
||||||
|
SoundTransmissionClass=
|
||||||
|
UnitsPerQuantity=
|
||||||
|
ThermalConductivity=
|
||||||
|
Model=
|
||||||
|
|
||||||
|
[Rendering]
|
||||||
|
TextureScaling=
|
||||||
|
FragmentShader=
|
||||||
|
AmbientColor=
|
||||||
|
EmissiveColor=
|
||||||
|
DiffuseColor=
|
||||||
|
Shininess=
|
||||||
|
SpecularColor=
|
||||||
|
Transparency=
|
||||||
|
VertexShader=
|
||||||
|
TexturePath=
|
||||||
|
|
||||||
|
[Vector rendering]
|
||||||
|
ViewLinewidth=
|
||||||
|
ViewFillPattern=
|
||||||
|
SectionLinewidth=
|
||||||
|
SectionFillPattern=
|
||||||
|
ViewColor=
|
||||||
|
|
|
@ -26,6 +26,21 @@ __title__="FreeCAD material card importer"
|
||||||
__author__ = "Juergen Riegel"
|
__author__ = "Juergen Riegel"
|
||||||
__url__ = "http://www.freecadweb.org"
|
__url__ = "http://www.freecadweb.org"
|
||||||
|
|
||||||
|
# file structure - this affects how files are saved
|
||||||
|
FileStructure = [
|
||||||
|
[ "Meta", ["CardName","AuthorAndLicense","Source"] ],
|
||||||
|
[ "General", ["Name","Father","Description","SpecificWeight","Vendor","ProductURL","SpecificPrice"] ],
|
||||||
|
[ "Mechanical", ["YoungsModulus","UltimateTensileStrength","CompressiveStrength","Elasticity","FractureToughness"] ],
|
||||||
|
[ "FEM", ["PoissonRatio"] ],
|
||||||
|
[ "Architectural", ["Model","ExecutionInstructions","FireResistanceClass","StandardCode","ThermalConductivity","SoundTransmissionClass","Color","Finish","UnitsPerQuantity","EnvironmentalEfficiencyClass"] ],
|
||||||
|
[ "Rendering", ["DiffuseColor","AmbientColor","SpecularColor","Shininess","EmissiveColor","Transparency","VertexShader","FragmentShader","TexturePath","TextureScaling"] ],
|
||||||
|
[ "Vector rendering",["ViewColor","ViewFillPattern","SectionFillPattern","ViewLinewidth","SectionLinewidth"] ],
|
||||||
|
[ "User defined", [] ]
|
||||||
|
]
|
||||||
|
|
||||||
|
# to distinguish python built-in open function from the one declared below
|
||||||
|
if open.__module__ == '__builtin__':
|
||||||
|
pythonopen = open
|
||||||
|
|
||||||
def open(filename):
|
def open(filename):
|
||||||
"called when freecad wants to open a file"
|
"called when freecad wants to open a file"
|
||||||
|
@ -46,6 +61,10 @@ def insert(filename,docname):
|
||||||
read(filename)
|
read(filename)
|
||||||
return doc
|
return doc
|
||||||
|
|
||||||
|
def export(exportList,filename):
|
||||||
|
"called when freecad exports a file"
|
||||||
|
return
|
||||||
|
|
||||||
def decode(name):
|
def decode(name):
|
||||||
"decodes encoded strings"
|
"decodes encoded strings"
|
||||||
try:
|
try:
|
||||||
|
@ -59,8 +78,65 @@ def decode(name):
|
||||||
return decodedName
|
return decodedName
|
||||||
|
|
||||||
def read(filename):
|
def read(filename):
|
||||||
FreeCAD.Console.PrintError("Not implemented yet")
|
"reads a FCMat file and returns a dictionary from it"
|
||||||
|
f = pythonopen(filename)
|
||||||
|
d = {}
|
||||||
|
l = 0
|
||||||
|
for line in f:
|
||||||
|
if l == 0:
|
||||||
|
d["CardName"] = line.split(";")[1].strip()
|
||||||
|
elif l == 1:
|
||||||
|
d["AuthorAndLicense"] = line.split(";")[1].strip()
|
||||||
|
else:
|
||||||
|
if not line[0] in ";#[":
|
||||||
|
k = line.split("=")
|
||||||
|
if len(k) == 2:
|
||||||
|
d[k[0].strip()] = k[1].strip().decode('utf-8')
|
||||||
|
l += 1
|
||||||
|
return d
|
||||||
|
|
||||||
def export(exportList,filename):
|
def write(filename,dictionary):
|
||||||
"called when freecad exports a file"
|
"writes the given dictionary to the given file"
|
||||||
return
|
# sort the data into sections
|
||||||
|
contents = []
|
||||||
|
for key in FileStructure:
|
||||||
|
contents.append({"keyname":key[0]})
|
||||||
|
if key[0] == "Meta":
|
||||||
|
header = contents[-1]
|
||||||
|
elif key[0] == "User defined":
|
||||||
|
user = contents[-1]
|
||||||
|
for p in key[1]:
|
||||||
|
contents[-1][p] = ""
|
||||||
|
for k,i in dictionary.iteritems():
|
||||||
|
found = False
|
||||||
|
for group in contents:
|
||||||
|
if not found:
|
||||||
|
if k in group.keys():
|
||||||
|
group[k] = i
|
||||||
|
found = True
|
||||||
|
if not found:
|
||||||
|
user[k] = i
|
||||||
|
# write header
|
||||||
|
rev = FreeCAD.ConfigGet("BuildVersionMajor")+"."+FreeCAD.ConfigGet("BuildVersionMinor")+" "+FreeCAD.ConfigGet("BuildRevision")
|
||||||
|
f = pythonopen(filename,"wb")
|
||||||
|
f.write("; " + header["CardName"] + "\n")
|
||||||
|
f.write("; " + header["AuthorAndLicense"] + "\n")
|
||||||
|
f.write("; file produced by FreeCAD " + rev + "\n")
|
||||||
|
f.write("; information about the content of this card can be found here:\n")
|
||||||
|
f.write("; http://www.freecadweb.org/wiki/index.php?title=Material\n")
|
||||||
|
f.write("\n")
|
||||||
|
if header["Source"]:
|
||||||
|
f.write("; source of the data provided in this card:\n")
|
||||||
|
f.write("; " + header["Source"] + "\n")
|
||||||
|
f.write("\n")
|
||||||
|
# write sections
|
||||||
|
for s in contents:
|
||||||
|
if s["keyname"] != "Meta":
|
||||||
|
if len(s) > 1:
|
||||||
|
# if the section has no contents, we don't write it
|
||||||
|
f.write("[" + s["keyname"] + "]\n")
|
||||||
|
for k,i in s.iteritems():
|
||||||
|
if k != "keyname":
|
||||||
|
f.write(k + "=" + i.encode('utf-8') + "\n")
|
||||||
|
f.write("\n")
|
||||||
|
f.close()
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<ui version="4.0">
|
<ui version="4.0">
|
||||||
<class>Dialog</class>
|
<class>MaterialEditor</class>
|
||||||
<widget class="QDialog" name="Dialog">
|
<widget class="QDialog" name="MaterialEditor">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>422</width>
|
<width>450</width>
|
||||||
<height>470</height>
|
<height>599</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string>Dialog</string>
|
<string>Material Editor</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||||
<item>
|
<item>
|
||||||
|
@ -19,38 +19,39 @@
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="label">
|
<widget class="QPushButton" name="ButtonURL">
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>22</width>
|
||||||
|
<height>22</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Opens the Product URL of this material in an external browser</string>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Material</string>
|
<string/>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QComboBox" name="comboBox">
|
<widget class="QLabel" name="label">
|
||||||
|
<property name="text">
|
||||||
|
<string>Material card:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QComboBox" name="ComboMaterial">
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>0</width>
|
<width>120</width>
|
||||||
<height>0</height>
|
<height>0</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<item>
|
<property name="toolTip">
|
||||||
<property name="text">
|
<string>Existing material cards</string>
|
||||||
<string>Steel</string>
|
|
||||||
</property>
|
</property>
|
||||||
<property name="icon">
|
|
||||||
<iconset theme="gnome-dev-removable"/>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<property name="text">
|
|
||||||
<string>Wood</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<property name="text">
|
|
||||||
<string>Brick</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
|
@ -67,32 +68,100 @@
|
||||||
</spacer>
|
</spacer>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="pushButton_2">
|
<widget class="QPushButton" name="ButtonOpen">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Opens an existing material card</string>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Delete</string>
|
<string>Open...</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="pushButton">
|
<widget class="QPushButton" name="ButtonSave">
|
||||||
<property name="text">
|
<property name="toolTip">
|
||||||
<string>Import...</string>
|
<string>Saves this material as a card</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QPushButton" name="pushButton_5">
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Export...</string>
|
<string>Save as...</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
<widget class="QGroupBox" name="groupBox_3">
|
||||||
|
<property name="title">
|
||||||
|
<string>Preview</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QTreeWidget" name="treeWidget">
|
<spacer name="horizontalSpacer_3">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGraphicsView" name="PreviewRendered">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>96</width>
|
||||||
|
<height>96</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>96</width>
|
||||||
|
<height>96</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGraphicsView" name="PreviewVector">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>96</width>
|
||||||
|
<height>96</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>96</width>
|
||||||
|
<height>96</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||||
|
<property name="sizeConstraint">
|
||||||
|
<enum>QLayout::SetMaximumSize</enum>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="QTreeWidget" name="Editor">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>300</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
<property name="wordWrap">
|
<property name="wordWrap">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
|
@ -118,10 +187,66 @@
|
||||||
<string>Value</string>
|
<string>Value</string>
|
||||||
</property>
|
</property>
|
||||||
</column>
|
</column>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Meta information</string>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Additional information that will be written in the material card.</string>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<weight>75</weight>
|
||||||
|
<bold>true</bold>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Card Name</string>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>This is a description of your material, for ex. "Standard Steel Material"</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="flags">
|
||||||
|
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Author And License</string>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Your name and license info, for ex. "John Smith, CC-BY 3.0"</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="flags">
|
||||||
|
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Source</string>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>An optional description of where the informations included in this card come from</string>
|
||||||
|
</property>
|
||||||
|
<property name="flags">
|
||||||
|
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>General</string>
|
<string>General</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>General properties of this material</string>
|
||||||
|
</property>
|
||||||
<property name="font">
|
<property name="font">
|
||||||
<font>
|
<font>
|
||||||
<weight>75</weight>
|
<weight>75</weight>
|
||||||
|
@ -154,16 +279,92 @@
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Name</string>
|
<string>Name</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>A uniquely identificable name, for ex. "Steel". This should match the name of the card.</string>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Steel</string>
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="flags">
|
||||||
|
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Father</string>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>An optional father material. Missing properties here will be taken from the father. For ex. "Metal"</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="flags">
|
||||||
|
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
||||||
</property>
|
</property>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Description</string>
|
<string>Description</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>A longer and more precise description of your material</string>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>A long description of this steel material and its milagrous properties</string>
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="flags">
|
||||||
|
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Specific Weight</string>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Specific weight of this material, in kg/mm³. For ex. 7800.0e-12</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="flags">
|
||||||
|
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Vendor</string>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>The name of the vendor of this material</string>
|
||||||
|
</property>
|
||||||
|
<property name="flags">
|
||||||
|
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Product URL</string>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>A URL where information about this material can be found</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="flags">
|
||||||
|
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Specific Price</string>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>A price for this material, including the unit, for ex. 1.5 EUR/kg</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
</property>
|
</property>
|
||||||
<property name="flags">
|
<property name="flags">
|
||||||
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
||||||
|
@ -174,6 +375,9 @@
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Mechanical</string>
|
<string>Mechanical</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Mechanical properties of this material</string>
|
||||||
|
</property>
|
||||||
<property name="font">
|
<property name="font">
|
||||||
<font>
|
<font>
|
||||||
<weight>75</weight>
|
<weight>75</weight>
|
||||||
|
@ -203,10 +407,91 @@
|
||||||
</property>
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Young Module</string>
|
<string>Youngs Modulus</string>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Also called tensile modulus or elastic modulus, a measure of the stiffness of a material, in kPa</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>0.00001</string>
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="flags">
|
||||||
|
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Ultimate Tensile Strength</string>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>The maximum stress that a material can withstand while being stretched or pulled before failing or breaking, in MPa</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="flags">
|
||||||
|
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Compressive Strength</string>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>The capacity of a material or structure to withstand loads tending to reduce size</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="flags">
|
||||||
|
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Elasticity</string>
|
||||||
|
</property>
|
||||||
|
<property name="flags">
|
||||||
|
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Fracture Toughness</string>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>The ability of a material containing a crack to resist fracture</string>
|
||||||
|
</property>
|
||||||
|
<property name="flags">
|
||||||
|
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>FEM</string>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>FEM-related properties</string>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<weight>75</weight>
|
||||||
|
<bold>true</bold>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Poisson Ratio</string>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>The Poisson ratio is the negative ratio of transverse to axial strain.</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="flags">
|
||||||
|
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
||||||
</property>
|
</property>
|
||||||
</item>
|
</item>
|
||||||
</item>
|
</item>
|
||||||
|
@ -214,6 +499,9 @@
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Architectural</string>
|
<string>Architectural</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Architectural properties</string>
|
||||||
|
</property>
|
||||||
<property name="font">
|
<property name="font">
|
||||||
<font>
|
<font>
|
||||||
<weight>75</weight>
|
<weight>75</weight>
|
||||||
|
@ -243,26 +531,115 @@
|
||||||
</property>
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Vendor</string>
|
<string>Model</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="toolTip">
|
||||||
<string>Steel Prod. Co. Inc. Ltd. Pty.</string>
|
<string>The specific model of a certain product</string>
|
||||||
|
</property>
|
||||||
|
<property name="flags">
|
||||||
|
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
||||||
</property>
|
</property>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Product URL</string>
|
<string>Execution Instructions</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="toolTip">
|
||||||
<string>http://www.steel.com/steel1234</string>
|
<string>Specific execution or installation insstructions</string>
|
||||||
|
</property>
|
||||||
|
<property name="flags">
|
||||||
|
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
||||||
</property>
|
</property>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Other Property</string>
|
<string>Fire Resistance Class</string>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Fire resistance standard and class, for ex. RF 1h or UL 350-2</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Some absurd value</string>
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="flags">
|
||||||
|
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Standard Code</string>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>The standard and code this material is described in, for ex. MasterFormat 03-1113.310</string>
|
||||||
|
</property>
|
||||||
|
<property name="flags">
|
||||||
|
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Thermal Conductivity</string>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>The property of a material to conduct heat, in W/mK.</string>
|
||||||
|
</property>
|
||||||
|
<property name="flags">
|
||||||
|
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Sound Transmission Class</string>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>A standard and rating indicating how well a material attenuates airborne sound. For ex. STC 44</string>
|
||||||
|
</property>
|
||||||
|
<property name="flags">
|
||||||
|
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Color</string>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>A specific color for this product</string>
|
||||||
|
</property>
|
||||||
|
<property name="flags">
|
||||||
|
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Finish</string>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>A special finish specification for this product</string>
|
||||||
|
</property>
|
||||||
|
<property name="flags">
|
||||||
|
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Units Per Quantity</string>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>In case this product is made of small units, this property describes how many units fit into a certain volume or area, for ex. 50 units/m³</string>
|
||||||
|
</property>
|
||||||
|
<property name="flags">
|
||||||
|
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Environmental Efficiency Class</string>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>A standard and rating of this material regarding sustainability and environmental design</string>
|
||||||
|
</property>
|
||||||
|
<property name="flags">
|
||||||
|
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
||||||
</property>
|
</property>
|
||||||
</item>
|
</item>
|
||||||
</item>
|
</item>
|
||||||
|
@ -270,6 +647,9 @@
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Rendering</string>
|
<string>Rendering</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Properties used by the FreeCAD 3D view, but also by external renderers</string>
|
||||||
|
</property>
|
||||||
<property name="font">
|
<property name="font">
|
||||||
<font>
|
<font>
|
||||||
<weight>75</weight>
|
<weight>75</weight>
|
||||||
|
@ -310,24 +690,131 @@
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Diffuse Color</string>
|
<string>Diffuse Color</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>A diffuse color, expressed with 3 comma-separated float values, for ex. 0.5,0.5,0.5</string>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>rgb(255,0,0)</string>
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="flags">
|
||||||
|
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Ambient Color</string>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>An ambient color, expressed with 3 comma-separated float values, for ex. 0.5,0.5,0.5</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="flags">
|
||||||
|
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
||||||
</property>
|
</property>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Specular Color</string>
|
<string>Specular Color</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>A specular color, expressed with 3 comma-separated float values, for ex. 0.5,0.5,0.5</string>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>rgb(255,255,255)</string>
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="flags">
|
||||||
|
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
||||||
</property>
|
</property>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Specular Intensity Item</string>
|
<string>Shininess</string>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>An intensity value for shininess/specularity, expressed as a float value between 0 and 1.0</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>100</string>
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="flags">
|
||||||
|
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Emissive Color</string>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>An emission color, expressed with 3 comma-separated float values, for ex. 0.5,0.5,0.5</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="flags">
|
||||||
|
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Transparency</string>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>A transparency value, expressed as a float value between 0 (opaque) and 1.0 (fully transparent)</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="flags">
|
||||||
|
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Vertex Shader</string>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>An optional vertex shader to be used by renderers that support it</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="flags">
|
||||||
|
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Fragment Shader</string>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>An optional fragment shader to be used by renderers that support it</string>
|
||||||
|
</property>
|
||||||
|
<property name="flags">
|
||||||
|
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Texture Path</string>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>A path to a texture image, to be used by the renderers that support it</string>
|
||||||
|
</property>
|
||||||
|
<property name="flags">
|
||||||
|
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Texture Scaling</string>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>A scaling value for the texture, might be used differently by different renderes</string>
|
||||||
|
</property>
|
||||||
|
<property name="flags">
|
||||||
|
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
||||||
</property>
|
</property>
|
||||||
</item>
|
</item>
|
||||||
</item>
|
</item>
|
||||||
|
@ -335,6 +822,9 @@
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Vector rendering</string>
|
<string>Vector rendering</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Properties applicable in vector renderings</string>
|
||||||
|
</property>
|
||||||
<property name="font">
|
<property name="font">
|
||||||
<font>
|
<font>
|
||||||
<weight>75</weight>
|
<weight>75</weight>
|
||||||
|
@ -366,120 +856,128 @@
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>View Color</string>
|
<string>View Color</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>A base color for viewed faces, expressed with 3 comma-separated float values, for ex. 0.5,0.5,0.5</string>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>rgb(255,0,0)</string>
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="flags">
|
||||||
|
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
||||||
</property>
|
</property>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Section Fill</string>
|
<string>View Fill Pattern</string>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>An SVG pattern to apply on viewed faces, expressed as either a name of an existing pattern (such as "simple") or a complete <pattern>...</pattern> SVG element</string>
|
||||||
|
</property>
|
||||||
|
<property name="flags">
|
||||||
|
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Section Fill Pattern</string>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>An SVG pattern to apply on cut faces, expressed as either a name of an existing pattern (such as "simple") or a complete <pattern>...</pattern> SVG element</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>slant fill</string>
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="flags">
|
||||||
|
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
||||||
</property>
|
</property>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>View Linewidth</string>
|
<string>View Linewidth</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>An optional linewidth factor for viewed faces</string>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>1px</string>
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="flags">
|
||||||
|
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
||||||
</property>
|
</property>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Section Linewidth</string>
|
<string>Section Linewidth</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>An optional linewidth factor for cut faces</string>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>4px</string>
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="flags">
|
||||||
|
<set>ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled</set>
|
||||||
</property>
|
</property>
|
||||||
</item>
|
</item>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>User defined</string>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Additional properties defined by the user</string>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<weight>75</weight>
|
||||||
|
<bold>true</bold>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QGroupBox" name="groupBox">
|
<widget class="QGroupBox" name="groupBox_2">
|
||||||
<property name="title">
|
<property name="title">
|
||||||
<string>Add new property</string>
|
<string>Add / Remove</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_5">
|
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="label_2">
|
<layout class="QHBoxLayout" name="horizontalLayout_6">
|
||||||
|
<item>
|
||||||
|
<widget class="QLineEdit" name="EditProperty"/>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="ButtonAddProperty">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Group</string>
|
<string>Add property</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QComboBox" name="comboBox_2">
|
<widget class="QPushButton" name="ButtonDeleteProperty">
|
||||||
<item>
|
|
||||||
<property name="text">
|
|
||||||
<string>General</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<property name="text">
|
|
||||||
<string>Mechanical</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<property name="text">
|
|
||||||
<string>Architectural</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<property name="text">
|
|
||||||
<string>Rendering</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="label_3">
|
|
||||||
<property name="text">
|
|
||||||
<string>Name</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QLineEdit" name="lineEdit"/>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_7">
|
|
||||||
<item>
|
|
||||||
<widget class="QPushButton" name="pushButton_3">
|
|
||||||
<property name="text">
|
|
||||||
<string>Add new property...</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QPushButton" name="pushButton_4">
|
|
||||||
<property name="enabled">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Delete property</string>
|
<string>Delete property</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QDialogButtonBox" name="buttonBox">
|
<widget class="QDialogButtonBox" name="standardButtons">
|
||||||
<property name="standardButtons">
|
<property name="standardButtons">
|
||||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
</widget>
|
||||||
<resources/>
|
<resources/>
|
||||||
<connections/>
|
<connections/>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user