# Python: module fabmetheus_utilities.fabmetheus_tools.interpret_plugins.xml_plugins.artofillusion

fabmetheus_utilities.fabmetheus_tools.interpret_plugins.xml_plugins.artofillusion ($Date: 2008/21/04 $) | index /home/enrique/Desktop/backup/babbleold/script/reprap/fabmetheus/fabmetheus_utilities/fabmetheus_tools/interpret_plugins/xml_plugins/artofillusion.py

Previous / Next / Contents

`
The xml.py script is an import translator plugin to get a carving from an Art of Illusion xml file.
An import plugin is a script in the interpret_plugins folder which has the function getCarving. It is meant to be run from the interpret tool. To ensure that the plugin works on platforms which do not handle file capitalization properly, give the plugin a lower case name.
The getCarving function takes the file name of an xml file and returns the carving.
This example gets a triangle mesh for the xml file boolean.xml. This example is run in a terminal in the folder which contains boolean.xml and xml.py.
> python
Python 2.5.1 (r251:54863, Sep 22 2007, 01:43:31)
[GCC 4.2.1 (SUSE Linux)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import xml
>>> xml.getCarving().getCarveRotatedBoundaryLayers()
[-1.159765625, None, [[(-18.925000000000001-2.4550000000000001j), (-18.754999999999981-2.4550000000000001j)
..
many more lines of the carving
..
An xml file can be exported from Art of Illusion by going to the "File" menu, then going into the "Export" menu item, then picking the XML choice. This will bring up the XML file chooser window, choose a place to save the file then click "OK". Leave the "compressFile" checkbox unchecked. All the objects from the scene will be exported, this plugin will ignore the light and camera. If you want to fabricate more than one object at a time, you can have multiple objects in the Art of Illusion scene and they will all be carved, then fabricated together.`

Previous / Next / Contents

Modules

``

__init__
fabmetheus_utilities.geometry.geometry_utilities.boolean_geometry
fabmetheus_utilities.geometry.geometry_utilities.booleansolid

fabmetheus_utilities.geometry.solids.cube
fabmetheus_utilities.geometry.solids.cylinder
fabmetheus_utilities.euclidean

fabmetheus_utilities.geometry.geometry_tools.face
fabmetheus_utilities.geometry.solids.group
fabmetheus_utilities.geometry.manipulation_evaluator.matrix

fabmetheus_utilities.geometry.solids.sphere
fabmetheus_utilities.geometry.solids.trianglemesh

Classes

``

fabmetheus_utilities.geometry.geometry_utilities.booleansolid.BooleanSolid(fabmetheus_utilities.geometry.solids.group.Group)
  BooleanSolid
fabmetheus_utilities.geometry.solids.cube.Cube(fabmetheus_utilities.geometry.solids.trianglemesh.TriangleMesh)
  Cube
fabmetheus_utilities.geometry.solids.cylinder.Cylinder(fabmetheus_utilities.geometry.solids.cube.Cube)
  Cylinder
fabmetheus_utilities.geometry.solids.group.Group(fabmetheus_utilities.geometry.geometry_tools.dictionary.Dictionary)
  Group
fabmetheus_utilities.geometry.solids.sphere.Sphere(fabmetheus_utilities.geometry.solids.cube.Cube)
  Sphere
fabmetheus_utilities.geometry.solids.trianglemesh.TriangleMesh(fabmetheus_utilities.geometry.solids.group.Group)
  TriangleMesh

class BooleanSolid(fabmetheus_utilities.geometry.geometry_utilities.booleansolid.BooleanSolid)
`` | `An Art of Illusion CSG object info.`

Method resolution order:
  BooleanSolid
  fabmetheus_utilities.geometry.geometry_utilities.booleansolid.BooleanSolid
  fabmetheus_utilities.geometry.solids.group.Group
  fabmetheus_utilities.geometry.geometry_tools.dictionary.Dictionary

Methods defined here:

setToObjectAttributeDictionary(self)
  `Set the shape of this carvable object info.`

Methods inherited from fabmetheus_utilities.geometry.geometry_utilities.booleansolid.BooleanSolid:

getDifference(self, importRadius, visibleObjectLoopsList)
  `Get subtracted loops sliced through shape.`

getIntersection(self, importRadius, visibleObjectLoopsList)
  `Get intersected loops sliced through shape.`

getLoops(self, importRadius, z)
  `Get loops sliced through shape.`

getLoopsFromObjectLoopsList(self, importRadius, visibleObjectLoopsList)
  `Get loops from visible object loops list.`

getTransformedPaths(self)
  `Get all transformed paths.`

getUnion(self, importRadius, visibleObjectLoopsList)
  `Get joined loops sliced through shape.`

getXMLClassName(self)
  `Get xml class name.`

Methods inherited from fabmetheus_utilities.geometry.solids.group.Group:

__init__(self)
  `Add empty lists.`

addXMLInnerSection(self, depth, output)
  `Add xml inner section for this object.`

addXMLSection(self, depth, output)
  `Add the xml section for this object.`

getMatrixChainTetragrid(self)
  `Get the matrix chain tetragrid.`

getVisible(self)
  `Get visible.`

Methods inherited from fabmetheus_utilities.geometry.geometry_tools.dictionary.Dictionary:

__repr__(self)
  `Get the string representation of this object info.`

addXML(self, depth, output)
  `Add xml for this object.`

addXMLArchivableObjects(self, depth, output)
  `Add xml for this object.`

createShape(self)
  `Create the shape.`

getAttributeDictionary(self)
  `Get attribute table.`

getComplexTransformedPathLists(self)
  `Get complex transformed path lists.`

getFabricationExtension(self)
  `Get fabrication extension.`

getFabricationText(self)
  `Get fabrication text.`

getPaths(self)
  `Get all paths.`

getTransformedVertexes(self)
  `Get all transformed vertexes.`

getTriangleMeshes(self)
  `Get all triangleMeshes.`

getType(self)
  `Get type.`

getVertexes(self)
  `Get all vertexes.`

class Cube(fabmetheus_utilities.geometry.solids.cube.Cube)
`` | `An Art of Illusion Cube object.`

Method resolution order:
  Cube
  fabmetheus_utilities.geometry.solids.cube.Cube
  fabmetheus_utilities.geometry.solids.trianglemesh.TriangleMesh
  fabmetheus_utilities.geometry.solids.group.Group
  fabmetheus_utilities.geometry.geometry_tools.dictionary.Dictionary

Methods defined here:

setToObjectAttributeDictionary(self)
  `Set the shape of this carvable object info.`

Methods inherited from fabmetheus_utilities.geometry.solids.cube.Cube:

addXMLSection(self, depth, output)
  `Add the xml section for this object.`

createShape(self)
  `Create the shape.`

Methods inherited from fabmetheus_utilities.geometry.solids.trianglemesh.TriangleMesh:

__init__(self)
  `Add empty lists.`

getCarveCornerMaximum(self)
  `Get the corner maximum of the vertexes.`

getCarveCornerMinimum(self)
  `Get the corner minimum of the vertexes.`

getCarveLayerThickness(self)
  `Get the layer thickness.`

getCarveRotatedBoundaryLayers(self)
  `Get the rotated boundary layers.`

getFabmetheusXML(self)
  `Return the fabmetheus XML.`

getInterpretationSuffix(self)
  `Return the suffix for a triangle mesh.`

getLoops(self, importRadius, z)
  `Get loops sliced through shape.`

getLoopsFromMesh(self, z)
  `Get loops from a carve of a mesh.`

getTransformedVertexes(self)
  `Get all transformed vertexes.`

getTriangleMeshes(self)
  `Get all triangleMeshes.`

getVertexes(self)
  `Get all vertexes.`

getZAddExtruderPaths(self, z)
  `Get next z and add extruder loops.`

setCarveBridgeLayerThickness(self, bridgeLayerThickness)
  `Set the bridge layer thickness. If the infill is not in the direction of the bridge, the bridge layer thickness should be given as None or not set at all.`

setCarveImportRadius(self, importRadius)
  `Set the import radius.`

setCarveIsCorrectMesh(self, isCorrectMesh)
  `Set the is correct mesh flag.`

setCarveLayerThickness(self, layerThickness)
  `Set the layer thickness.`

setEdgesForAllFaces(self)
  `Set the face edges of all the faces.`

Methods inherited from fabmetheus_utilities.geometry.solids.group.Group:

addXMLInnerSection(self, depth, output)
  `Add xml inner section for this object.`

getMatrixChainTetragrid(self)
  `Get the matrix chain tetragrid.`

getVisible(self)
  `Get visible.`

Methods inherited from fabmetheus_utilities.geometry.geometry_tools.dictionary.Dictionary:

__repr__(self)
  `Get the string representation of this object info.`

addXML(self, depth, output)
  `Add xml for this object.`

addXMLArchivableObjects(self, depth, output)
  `Add xml for this object.`

getAttributeDictionary(self)
  `Get attribute table.`

getComplexTransformedPathLists(self)
  `Get complex transformed path lists.`

getFabricationExtension(self)
  `Get fabrication extension.`

getFabricationText(self)
  `Get fabrication text.`

getPaths(self)
  `Get all paths.`

getTransformedPaths(self)
  `Get all transformed paths.`

getType(self)
  `Get type.`

getXMLClassName(self)
  `Get xml class name.`

class Cylinder(fabmetheus_utilities.geometry.solids.cylinder.Cylinder)
`` | `An Art of Illusion Cylinder object.`

Method resolution order:
  Cylinder
  fabmetheus_utilities.geometry.solids.cylinder.Cylinder
  fabmetheus_utilities.geometry.solids.cube.Cube
  fabmetheus_utilities.geometry.solids.trianglemesh.TriangleMesh
  fabmetheus_utilities.geometry.solids.group.Group
  fabmetheus_utilities.geometry.geometry_tools.dictionary.Dictionary

Methods defined here:

setToObjectAttributeDictionary(self)
  `Set the shape of this carvable object info.`

Methods inherited from fabmetheus_utilities.geometry.solids.cylinder.Cylinder:

__init__(self)
  `Add empty lists.`

createShape(self)
  `Create the shape.`

Methods inherited from fabmetheus_utilities.geometry.solids.cube.Cube:

addXMLSection(self, depth, output)
  `Add the xml section for this object.`

Methods inherited from fabmetheus_utilities.geometry.solids.trianglemesh.TriangleMesh:

getCarveCornerMaximum(self)
  `Get the corner maximum of the vertexes.`

getCarveCornerMinimum(self)
  `Get the corner minimum of the vertexes.`

getCarveLayerThickness(self)
  `Get the layer thickness.`

getCarveRotatedBoundaryLayers(self)
  `Get the rotated boundary layers.`

getFabmetheusXML(self)
  `Return the fabmetheus XML.`

getInterpretationSuffix(self)
  `Return the suffix for a triangle mesh.`

getLoops(self, importRadius, z)
  `Get loops sliced through shape.`

getLoopsFromMesh(self, z)
  `Get loops from a carve of a mesh.`

getTransformedVertexes(self)
  `Get all transformed vertexes.`

getTriangleMeshes(self)
  `Get all triangleMeshes.`

getVertexes(self)
  `Get all vertexes.`

getZAddExtruderPaths(self, z)
  `Get next z and add extruder loops.`

setCarveBridgeLayerThickness(self, bridgeLayerThickness)
  `Set the bridge layer thickness. If the infill is not in the direction of the bridge, the bridge layer thickness should be given as None or not set at all.`

setCarveImportRadius(self, importRadius)
  `Set the import radius.`

setCarveIsCorrectMesh(self, isCorrectMesh)
  `Set the is correct mesh flag.`

setCarveLayerThickness(self, layerThickness)
  `Set the layer thickness.`

setEdgesForAllFaces(self)
  `Set the face edges of all the faces.`

Methods inherited from fabmetheus_utilities.geometry.solids.group.Group:

addXMLInnerSection(self, depth, output)
  `Add xml inner section for this object.`

getMatrixChainTetragrid(self)
  `Get the matrix chain tetragrid.`

getVisible(self)
  `Get visible.`

Methods inherited from fabmetheus_utilities.geometry.geometry_tools.dictionary.Dictionary:

__repr__(self)
  `Get the string representation of this object info.`

addXML(self, depth, output)
  `Add xml for this object.`

addXMLArchivableObjects(self, depth, output)
  `Add xml for this object.`

getAttributeDictionary(self)
  `Get attribute table.`

getComplexTransformedPathLists(self)
  `Get complex transformed path lists.`

getFabricationExtension(self)
  `Get fabrication extension.`

getFabricationText(self)
  `Get fabrication text.`

getPaths(self)
  `Get all paths.`

getTransformedPaths(self)
  `Get all transformed paths.`

getType(self)
  `Get type.`

getXMLClassName(self)
  `Get xml class name.`

class Group(fabmetheus_utilities.geometry.solids.group.Group)
`` | `An Art of Illusion Group object.`

Method resolution order:
  Group
  fabmetheus_utilities.geometry.solids.group.Group
  fabmetheus_utilities.geometry.geometry_tools.dictionary.Dictionary

Methods defined here:

setToObjectAttributeDictionary(self)
  `Set the shape of this group.`

Methods inherited from fabmetheus_utilities.geometry.solids.group.Group:

__init__(self)
  `Add empty lists.`

addXMLInnerSection(self, depth, output)
  `Add xml inner section for this object.`

addXMLSection(self, depth, output)
  `Add the xml section for this object.`

getLoops(self, importRadius, z)
  `Get loops sliced through shape.`

getMatrixChainTetragrid(self)
  `Get the matrix chain tetragrid.`

getVisible(self)
  `Get visible.`

Methods inherited from fabmetheus_utilities.geometry.geometry_tools.dictionary.Dictionary:

__repr__(self)
  `Get the string representation of this object info.`

addXML(self, depth, output)
  `Add xml for this object.`

addXMLArchivableObjects(self, depth, output)
  `Add xml for this object.`

createShape(self)
  `Create the shape.`

getAttributeDictionary(self)
  `Get attribute table.`

getComplexTransformedPathLists(self)
  `Get complex transformed path lists.`

getFabricationExtension(self)
  `Get fabrication extension.`

getFabricationText(self)
  `Get fabrication text.`

getPaths(self)
  `Get all paths.`

getTransformedPaths(self)
  `Get all transformed paths.`

getTransformedVertexes(self)
  `Get all transformed vertexes.`

getTriangleMeshes(self)
  `Get all triangleMeshes.`

getType(self)
  `Get type.`

getVertexes(self)
  `Get all vertexes.`

getXMLClassName(self)
  `Get xml class name.`

class Sphere(fabmetheus_utilities.geometry.solids.sphere.Sphere)
`` | `An Art of Illusion Sphere object.`

Method resolution order:
  Sphere
  fabmetheus_utilities.geometry.solids.sphere.Sphere
  fabmetheus_utilities.geometry.solids.cube.Cube
  fabmetheus_utilities.geometry.solids.trianglemesh.TriangleMesh
  fabmetheus_utilities.geometry.solids.group.Group
  fabmetheus_utilities.geometry.geometry_tools.dictionary.Dictionary

Methods defined here:

setToObjectAttributeDictionary(self)
  `Set the shape of this carvable object.`

Methods inherited from fabmetheus_utilities.geometry.solids.sphere.Sphere:

createShape(self)
  `Create the shape.`

Methods inherited from fabmetheus_utilities.geometry.solids.cube.Cube:

addXMLSection(self, depth, output)
  `Add the xml section for this object.`

Methods inherited from fabmetheus_utilities.geometry.solids.trianglemesh.TriangleMesh:

__init__(self)
  `Add empty lists.`

getCarveCornerMaximum(self)
  `Get the corner maximum of the vertexes.`

getCarveCornerMinimum(self)
  `Get the corner minimum of the vertexes.`

getCarveLayerThickness(self)
  `Get the layer thickness.`

getCarveRotatedBoundaryLayers(self)
  `Get the rotated boundary layers.`

getFabmetheusXML(self)
  `Return the fabmetheus XML.`

getInterpretationSuffix(self)
  `Return the suffix for a triangle mesh.`

getLoops(self, importRadius, z)
  `Get loops sliced through shape.`

getLoopsFromMesh(self, z)
  `Get loops from a carve of a mesh.`

getTransformedVertexes(self)
  `Get all transformed vertexes.`

getTriangleMeshes(self)
  `Get all triangleMeshes.`

getVertexes(self)
  `Get all vertexes.`

getZAddExtruderPaths(self, z)
  `Get next z and add extruder loops.`

setCarveBridgeLayerThickness(self, bridgeLayerThickness)
  `Set the bridge layer thickness. If the infill is not in the direction of the bridge, the bridge layer thickness should be given as None or not set at all.`

setCarveImportRadius(self, importRadius)
  `Set the import radius.`

setCarveIsCorrectMesh(self, isCorrectMesh)
  `Set the is correct mesh flag.`

setCarveLayerThickness(self, layerThickness)
  `Set the layer thickness.`

setEdgesForAllFaces(self)
  `Set the face edges of all the faces.`

Methods inherited from fabmetheus_utilities.geometry.solids.group.Group:

addXMLInnerSection(self, depth, output)
  `Add xml inner section for this object.`

getMatrixChainTetragrid(self)
  `Get the matrix chain tetragrid.`

getVisible(self)
  `Get visible.`

Methods inherited from fabmetheus_utilities.geometry.geometry_tools.dictionary.Dictionary:

__repr__(self)
  `Get the string representation of this object info.`

addXML(self, depth, output)
  `Add xml for this object.`

addXMLArchivableObjects(self, depth, output)
  `Add xml for this object.`

getAttributeDictionary(self)
  `Get attribute table.`

getComplexTransformedPathLists(self)
  `Get complex transformed path lists.`

getFabricationExtension(self)
  `Get fabrication extension.`

getFabricationText(self)
  `Get fabrication text.`

getPaths(self)
  `Get all paths.`

getTransformedPaths(self)
  `Get all transformed paths.`

getType(self)
  `Get type.`

getXMLClassName(self)
  `Get xml class name.`

class TriangleMesh(fabmetheus_utilities.geometry.solids.trianglemesh.TriangleMesh)
`` | `An Art of Illusion triangle mesh object.`

Method resolution order:
  TriangleMesh
  fabmetheus_utilities.geometry.solids.trianglemesh.TriangleMesh
  fabmetheus_utilities.geometry.solids.group.Group
  fabmetheus_utilities.geometry.geometry_tools.dictionary.Dictionary

Methods defined here:

setToObjectAttributeDictionary(self)
  `Set the shape of this carvable object info.`

Methods inherited from fabmetheus_utilities.geometry.solids.trianglemesh.TriangleMesh:

__init__(self)
  `Add empty lists.`

addXMLSection(self, depth, output)
  `Add the xml section for this object.`

getCarveCornerMaximum(self)
  `Get the corner maximum of the vertexes.`

getCarveCornerMinimum(self)
  `Get the corner minimum of the vertexes.`

getCarveLayerThickness(self)
  `Get the layer thickness.`

getCarveRotatedBoundaryLayers(self)
  `Get the rotated boundary layers.`

getFabmetheusXML(self)
  `Return the fabmetheus XML.`

getInterpretationSuffix(self)
  `Return the suffix for a triangle mesh.`

getLoops(self, importRadius, z)
  `Get loops sliced through shape.`

getLoopsFromMesh(self, z)
  `Get loops from a carve of a mesh.`

getTransformedVertexes(self)
  `Get all transformed vertexes.`

getTriangleMeshes(self)
  `Get all triangleMeshes.`

getVertexes(self)
  `Get all vertexes.`

getZAddExtruderPaths(self, z)
  `Get next z and add extruder loops.`

setCarveBridgeLayerThickness(self, bridgeLayerThickness)
  `Set the bridge layer thickness. If the infill is not in the direction of the bridge, the bridge layer thickness should be given as None or not set at all.`

setCarveImportRadius(self, importRadius)
  `Set the import radius.`

setCarveIsCorrectMesh(self, isCorrectMesh)
  `Set the is correct mesh flag.`

setCarveLayerThickness(self, layerThickness)
  `Set the layer thickness.`

setEdgesForAllFaces(self)
  `Set the face edges of all the faces.`

Methods inherited from fabmetheus_utilities.geometry.solids.group.Group:

addXMLInnerSection(self, depth, output)
  `Add xml inner section for this object.`

getMatrixChainTetragrid(self)
  `Get the matrix chain tetragrid.`

getVisible(self)
  `Get visible.`

Methods inherited from fabmetheus_utilities.geometry.geometry_tools.dictionary.Dictionary:

__repr__(self)
  `Get the string representation of this object info.`

addXML(self, depth, output)
  `Add xml for this object.`

addXMLArchivableObjects(self, depth, output)
  `Add xml for this object.`

createShape(self)
  `Create the shape.`

getAttributeDictionary(self)
  `Get attribute table.`

getComplexTransformedPathLists(self)
  `Get complex transformed path lists.`

getFabricationExtension(self)
  `Get fabrication extension.`

getFabricationText(self)
  `Get fabrication text.`

getPaths(self)
  `Get all paths.`

getTransformedPaths(self)
  `Get all transformed paths.`

getType(self)
  `Get type.`

getXMLClassName(self)
  `Get xml class name.`

Functions

``

getCarvableObject(globalObject, object, xmlElement)
  `Get new carvable object info.`

getCarvingFromParser(xmlParser)
  `Get the carving for the parser.`

getTransformXMLElement(coords, transformName)
  `Get the transform attributes.`

processXMLElement(archivableObjects, parent, xmlElement)
  `Add the object info if it is carvable.`

removeListArtOfIllusionFromDictionary(dictionary, scrubKeys)
  `Remove the list and art of illusion keys from the dictionary.`

Data

``

__author__ = 'Enrique Perez (perez_enrique@yahoo.com)'
__credits__ = 'Nophead <http://hydraraptor.blogspot.com/>\nArt of Illusion <http://www.artofillusion.org/>'
__date__ = '$Date: 2008/21/04 $'
__license__ = 'GPL 3.0'
absolute_import = _Feature((2, 5, 0, 'alpha', 1), (2, 7, 0, 'alpha', 0), 16384)
globalCarvableClassObjectTable = {'CSGObject': <class fabmetheus_utilities.fabmetheus_tools.int..._plugins.artofillusion.BooleanSolid at 0x83caddc>, 'Cube': <class fabmetheus_utilities.fabmetheus_tools.int...gins.xml_plugins.artofillusion.Cube at 0x83cae0c>, 'Cylinder': <class fabmetheus_utilities.fabmetheus_tools.int....xml_plugins.artofillusion.Cylinder at 0x83cae3c>, 'Sphere': <class fabmetheus_utilities.fabmetheus_tools.int...ns.xml_plugins.artofillusion.Sphere at 0x83cae9c>, 'TriangleMesh': <class fabmetheus_utilities.fabmetheus_tools.int..._plugins.artofillusion.TriangleMesh at 0x83caecc>, 'artofillusion.object.NullObject': <class fabmetheus_utilities.fabmetheus_tools.int...ins.xml_plugins.artofillusion.Group at 0x83cae6c>}

Author
`` |  | Enrique Perez (perez_enrique@yahoo.com)

Credits
`` |  | Nophead <http://hydraraptor.blogspot.com/> Art of Illusion <http://www.artofillusion.org/>