Python API Changelog
Important
Pixyz Studio 2024 continues to feature a Python API interface to enhance its out-of-the-box capabilities. However, Pixyz Studio plugins will not be compatible out-of-the-box with Pixyz SDK (see plugins). Also, the PyQt native support has been discontinued, so plugins are limited to what the XML structure can offer. Users wishing to create advanced interfaces should use the full power of Pixyz SDK.
In Pixyz Studio 2024, a lot of changes have been made to the Python API (functions signatures, behavior,...). Take a close look below to help you migrate your old Pixyz Studio scripts and plugins.
Contact Pixyz support or reach out to the community on the Pixyz Forum for support.
Release 2024.1 beta (2024.1.0.28)
Release date: July 24, 2024
💡 BEHAVIOR CHANGE
algo.automaticUVMapping
: Now have two new optional parameters allowing to set up the resolution and the paddingalgo.createVisibilityInformationAdvanced
: Now has alevel
parameter, likealgo.createVisibilityInformation
algo.decimateTarget
: Now takes an optional experimental parameter for hybrid memoryless approachalgo.explodeConnectedMeshes
: Now has an optional parameter allowing to split connected components along non-manifold edgesalgo.getFittingCylinder
,algo.mapUvOnFittingCylinder
: Theses function now take an optional forced direction vectoralgo.remeshSurfacicHoles
: Algorithm was improved, new parameters were addedalgo.removeOccludedGeometries
,algo.findOccludedPartOccurrences
andalgo.createVisibilityInformation
: Now can create viewpoints on an hemispherealgo.removeOccludedGeometries
,algo.findOccludedPartOccurrences
andalgo.removeOccludedGeometriesFromPoints
: Viewpoints generation no longer creates a uv mapping of a grid ofsphereCount
×sphereCount
on a sphere (density is higher on the poles than on the hemisphere) but creates a uniform distribution ofsphereCount
viewpoints on a sphere.algo.removeOccludedGeometries
,algo.removeOccludedGeometriesAdvanced
,algo.removeOccludedGeometriesFromPoints
andalgo.removeOccludedGeometriesFromViewPoints
: These functions now take an optional list of occludersalgo.unwrapUV
: Now has two new parameters to control solver's behaviorcad.createLoop
: Now has a parameter allowing to merge isolated vertices in the loopcad.createRevolutionSurface
: Now parameters defining the starting and ending angles are renamed and used as if they were in radianscad.invertFaces
: Now has a parameter to invert loop orientationcore.endUndoRedoStep
: Now has an optionaldeleteIfEmpty
parametergeom.fromTRS
: Rotation vector should be passed in degrees instead of radiansgeom.toTRS
: Rotation vector values are now returned in degreesmaterial.createMaterialsFromMaps
: Now returns info on the created materialscene.createTorus
: Now has agenerateUV
parameter like otherscene.create___
functionsscene.getAABB
: Now takes an optional parameter allowing to compute more precise AABBscene.mergePartOccurrencesByFinalAssemblies
:MergeHiddenPartsMode
default value is nowDestroy
view.refreshViewer
: Removed the parametersframeCount
andforceUpdate
that were unused
❌ REMOVED FUNCTIONS
algo.combineMeshes
: Usealgo.combineMaterials
andscene.mergePartOccurrences
to achieve the same resultalgo.deletePolygonalWeightAttribute
algo.destroyElements
algo.flattenUV
algo.getEdgePolygons
algo.getEdgeVertices
algo.getEdges
algo.getFreeEdges
algo.getFreeVertices
algo.getNormal
algo.getPatches
algo.getPolygonEdges
algo.getPolygonVertices
algo.getPolygons
algo.getTessellationBoundaries
algo.getTextureCoordinates
algo.getVertexCoordinates
algo.getVertexEdges
algo.getVertexPolygons
algo.getVertices
algo.getVisiblePolygons
algo.invertElements
algo.relaxUV
algo.retessellate
: Usealgo.tessellate
insteadalgo.smoothUV
algo.stitchUV
algo.toEditableMesh
algo.toStaticMesh
cad.addToModel
cad.createBoundedCurve
cad.getBoundedCurveDefinition
cad.getClosedShellOrientedDomains
cad.getModelDomains
cad.getOpenShellOrientedDomains
cad.setPrecision
core.addPreset
core.executeCommand
core.exportFunctionDialogScreen
core.exportPresets
core.generateHTMLDocumentation
core.getEntityTypeFromString
core.importPresets
core.isFloatingLicense
core.removeAllPresets
core.removePreset
core.savePreset
core.updateDocumentation
io.exportSceneToDTPlatform
io.exportSceneToReflect
io.importSceneFromDTPlatform
scene.selectPartsFromNoShow
❌ REMOVED TYPES
algo.EdgeListList
algo.EdgeList
algo.ElementList
algo.PatchList
algo.Patch
algo.PolygonListList
algo.PolygonList
algo.UVCoordList
algo.UVCoord
algo.VertexListList
algo.VertexList
core.Regex
: Changed from struct tocore.String
➕ ADDED FUNCTIONS
algo.crackMeshEdges
: Crack polygonal edges according to given criteriaalgo.dualContouring
: Replace the tessellations of the selected parts by a retopology based on a dual-contouringalgo.filletMesh
: Fillet a mesh according to its Lines of Interestalgo.getAllAxisFromCADModel
: Return all the main axis contained in the CAD models givenalgo.getUVQualityMetrics
: Compute UV mapping qualitative metrics.algo.getVisualComparisonFootprint
: Compute the visual footprint of the difference between two sets of occurrencesalgo.identifySharpEdges
: Mark as Lines Of Interest the sharp edgesalgo.mergeUVIslandsRelaxed
: Minimizes the number of seams in the UV mapping by merging UV islandsalgo.meshBooleanOperation
: Computes the boolean operation between the meshes of two occurrence listsalgo.segmentMesh
: Segment Mesh into clusters guided by edge sharpnessescad.addBodyToModel
: Add a body to the modelcad.addEdgeToModel
: Add an edge to the modelcad.addOpenShellToModel
: Add an open shell to the modelcad.addPrecisionArea
: Define a working area on the 2D projection of the surface to define a parametric precisioncad.addVertexToModel
: Add a vertex to the modelcad.createBoundedLinearExtrusionBody
: Create a linear extrusion bodycad.createCurveExtrusionBody
: Create a curve extrusion bodycad.createLinearExtrusionBody
: Create a linear extrusion bodycad.createLoopFromCurve
: Create a loop from a finite curvecad.createMultiExtrusionBody
: Create a linear extrusion bodycad.createRevolveExtrusionBody
: Create a revolved extrusion bodycad.endThreadBrepSession
: Ends BrepSession on current threadcad.getClosedShellOrientedFaces
: Get all orienteFaces contain in the closedShellcad.getCurveLength
: Returns the length of the curvecad.getEdgeLength
: Returns the length of the edgecad.getEdgeMaterial
: Get the material of the edge, if anycad.getModelOpenShells
: Get the list of open shells contained in a modelcad.getModelPrecision
: Get the precision used in a modelcad.getOpenShellOrientedFaces
: Get all orienteFaces contain in the openShellcad.getParametricPrecisionOnSurface
: Returns the parametric precision of a surface from the input precisioncad.getPrecision
: Get the CAD precisioncad.invertCoEdge
: Invert a coedgecad.invertFaces
: Invert facescad.invertLoop
: Invert a loopcad.isCurveFinite
: If the curve is finite return true, return false otherwisecad.isSurfaceFinite
: Return if the surface is finitecad.needPrecisionArea
: Tells if it needs a working area on the surfacecad.needTorusShapeCheck
: Returns true if the torus has a shape (lemon or apple) corresponding to the provided pointscad.setCoEdgeCurve2D
: Set the curve 2D value of a coEdgecad.setCoEdgeSurface
: Set the surface value of a coEdgecad.setCurveLimits
: set the parametric space limits of a curvecad.setEdgeMaterial
: Define an edge's materialcad.setUnitLength
: Set the CAD unity length propertycad.startThreadBrepSession
: Create a new BrepSession on current threadcore.getLogFile
: Get the path of the log filecore.hasCustomProperty
: Return true if the custom property was found on the occurrencecore.lockEntityRegistration
: Lock Entity registration, use with Caution. All entities created after this call will not be saved on .pxz file and will not be listed as existing entities on the Database. Be careful to not references these entities with other registered entitiescore.log
: Log a message to Pixyz outputcore.parallelAddJob
: Add a job to a parallel sessioncore.parallelFinish
: Ends a parallel session after waiting for all jobs to finishcore.parallelStart
: Starts a new parallel sessioncore.removeModule
: Remove a module added via getModuleDescFromXMLcore.unlockEntityRegistration
: Unlock Entity registrationgeom.fromAffine
: Create a Matrix from an Affinegeom.getMaxScale
: Get maximum matrix scaleio.addAssetPaths
: add directory paths to search assets inio.applyAutoTessellate
: Handle auto tessellate options on given part, need to be completeio.clearAssetPaths
: clear all asset pathsio.findInDirectories
: find the final path. This will search for the file in asset pathsio.getAssetPaths
: get user defined paths to find assetsio.getExtensionPriority
: get the priority of an extension from the pixyz importerio.importRemote3mxFile
: Import a remote 3mx fileio.listVariants
: List all variants if fileio.registerIOCallbacks
: Register import and export callbacksio.setAssetPaths
: replace paths to find assetsmaterial.convertFloat32To8BitsImage
: Returns a new image from the given converter from 32bits float to a 8Bits (e.g. depth render map)material.createImageFromData
: Import an Image from only its datamaterial.fillUnusedPixels
: Fill unused pixels by propagating and averaging used pixelsmaterial.filterAO
: Filter an AO map using ATrous methodmaterial.getImagePixelColor
: Returns the color of a given pixel in an imagematerial.getImagesSizes
: Returns the sizes of multiple imagesmaterial.getMaterialPattern
: Gets the MaterialPattern name of the materialmaterial.getPointsAndMaterialFromText
: Returns list of 3D Points and a material from a string and fontnamematerial.setCoeffOrTextureProperty
: Set a CoeffOrTexture propertymaterial.setColorAlphaProperty
: Set a ColorAlpha propertymaterial.setColorOrTextureProperty
: Set a ColorOrTexture propertypolygonal.createMeshFromDefinitions
: Create a new mesh from multiple MeshDefinitionpolygonal.createMeshFromText
: Creates an occurrence from stringpolygonal.usePointGapFillerNormal
: This triangulates a set of points and normalsscene.addAnnotationGroup
: Add a Annotation Group to the pmi componentscene.addInParentInstances
: Add an instance of prototype's child as child in current occurrence recursivelyscene.addMeshToAnnotation
: Add a mesh and its material to a annotationscene.createAnnotationFromDefinition
: Create Annotation from definitionscene.createCapsule
: Create a new capsulescene.createOccurrenceFromAnnotation
: Convert a single annotation on an occurrence into an occurrence with mesh geometryscene.endModifyAllVariants
: Call this function to disable the modifications of all variants at the same timescene.getBrepShape
: Returns the Brep shape of a partscene.getHiddenPartOccurrences
: Get hidden part occurrencesscene.getPartialLoadingStatus
: Get the current status of a partial loading componentscene.getTessellationParameters
: Get tessellation parametersscene.getVolume
: Return the volume of the occurrencescene.getVolumes
: Return the volume of a set of root occurrencesscene.invertSelect
: Invert occurrences to selectionscene.setAnnotationToGroup
: set Annotation to a Annotation Groupscene.setReferencedDataComponentParent
: Defines which referenced data is parent to the given componentscene.setReferencedDataComponentPath
: Defines which path the referenced data is atscene.startModifyAllVariants
: Call this function to to enable the modifications of all variants at the same timescene.updateChildrenPrototypes
: Update children prototypes of the given occurrenceview.drawCappingPlane
: Create an occurrence that holds the mesh of the surfaces that have been cut by the cutting planeview.getCameraFrontAxis
: Get the front axis of the nth view matrix of a given viewerview.getCameraPosition
: Get the position of the nth view matrix of a given viewerview.getCameraRightAxis
: Get the right axis of the nth view matrix of a given viewerview.getCameraUpAxis
: Get the up axis of the nth view matrix of a given viewerview.selectPrimitives
: Select the primitives (polygons, surfaces) contained in the given rectangleview.setDefaultViewerId
: Set default viewer id. This viewer will be used in other functions taking a Viewer as a parameter. Useful if a viewer needs to be shared across different contexts.view.startRecording
: Record viewer in a fileview.stopRecording
: Stop recording video
⚠️ RENAMED FUNCTIONS
⚠️ RENAMED TYPES
Previous | New |
---|---|
polygonal.DressedPolyList |
polygonal.SubmeshList |
polygonal.DressedPoly |
polygonal.Submesh |
algo.SmartHiddenType |
algo.InnerOuterOption |