PolyNURBS (hwx.inspire.core)¶
Create free-form solid geometry that is smooth and continuous.
A PolyNURBS object represents geometry as a NURBS surface surrounded by a transparent polymesh cage. The shape of the PolyNURBS object is the result of the modifications made to the cage, which can be manipulated using the cage’s faces, edges, and vertices.
Attributes¶
active: Bool
autoCalculateCG: Bool
autoCalculateMass: Bool
autoCalculateMeshSize: Bool
autoCalculateMoment: Bool
autoCalculateThickness: Bool
cg: Location
color: Color
designSpace: Bool
detectCollisions: Bool
flexible: Bool
ground: Bool
ignoreFlexibility: Bool
ip: Inertia
mass: Double
material: Attribute
maxFreq: Double
maxMeshSize: Double
maxThickness: Double
minGap: Double
minMeshSize: Double
minThickness: Double
modeType: Enum
modifiable: Bool
morphable: Bool
motionContactResolution: Enum
movable: Bool
name: Attribute
numModes: Int
orderType: Enum
position: Attribute
rigidGroup: Attribute
sheetThickness: Double
strainCalculation: Bool
stressCalculation: Bool
transparency: Double
visible: Bool
volume: Double
Public Methods¶
classmethod create2DSurface (cls, numberRowsOfFaces=1, numberColumnOfFaces=1, cornerVertices=[[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0]], parent=None)
classmethod createBrick (cls, x=1, y=1, z=1, position=None, parent=None)
classmethod createCustomPolygon (cls, vertices, indices, edgeWeights=None, parent=None)
classmethod createPolygonMesh (cls, vertices, indices, edgeWeights=None, parent=None)
classmethod createSurfaceGrid (cls, numberRowsOfFaces=1, numberColumnOfFaces=1, cornerVertices=[[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0]], parent=None)
classmethod fit (cls, parts, numberOfFaces=500, curvature=0.5, autoCrease=False, system=None, symmetry=(0, 0, 0), parent=None)
classmethod fitSynthesis (cls, synthesis, curvature=50, numberOfFaces=2500, shrinkWrapSize=0.0019, autoCrease=False, intersect=True, symmetry=True, density=None)
bridge (self, faces)
closeHolesInSolid (self)
edit (self)
findAndFixBadFaces (self)
getFeatures (self, type=None, rep=’PolymeshRep’, **kwds)
mirror (self, areas, origin, normal, keepOriginal=True)
moveEdge (self, edge, direction, distance)
moveFace (self, face, direction, distance)
movePoints (self, deltaLocations)
setPointLocations (self, locations)
sharpen (self, edge, weight)
shell (self, areas, thickness=0)
splitArea (self, area, point1, point2)
Attribute Details¶
active : Bool¶
Returns or sets the object activeness.
Setting this on or off sets all children. Setting to True sets all the parents active too.
autoCalcMotionContactResolution : Bool¶
Returns or sets the motion contact fidelity properties from the part.
autoCalculateCG : Bool¶
Determines whether the center of gravity is auto calculated.
autoCalculateMass : Bool¶
Determines whether the mass value is automatically calculated based upon volume and material density.
autoCalculateMeshSize : Bool¶
Indicates whether the minimum and average element sizes used for the solution are automatically calculated.
Set to False to enter these values manually.
Decreasing the minimum element size will increase the detail of your results in areas that use a number of small elements. The average element size controls the overall detail of your results.
autoCalculateMoment : Bool¶
Determines whether the mass moment of inertia is automatically calculated.
autoCalculateThickness : Bool¶
Determines whether the minimum and maximum thickness values are automatically calculated.
All parts are taken into account during the calculation.
cg : Location (units=”length”)¶
Returns the object’s global center of gravity as a point.
color : Color¶
Determines the color assigned to the object when it is displayed in the modeling window.
The default color for parts is gray, but a different color can be assigned.
designSpace : Bool¶
Determines whether the part is a design space.
A part must be designated as a design space if we intend to optimize it.
detectCollisions : Bool¶
Determines whether to detect collision.
It prevents parts in the model from overlapping and has been enabled by default.
flexible : Bool¶
Makes the part flexible, if set to True.
ground : Bool¶
Returns or sets the object to be ground or immovable.
ignoreFlexibility : Bool¶
Allows the part to ignore flexibility.
ip : Inertia (units=”massMI”)¶
Specifies the inertial properties of this object.
Resistance to change in motion (ixx, iyy, izz, ixy, izy, ixz).
mass : Double (units=”m”)¶
The mass of the object.
material : Attribute¶
The material of the object.
Every part in the model has a material assigned to it. The default material is steel, but a different material can be assigned.
maxFreq : Double (units=”frequency”)¶
Upper bound frequency for the eigenvalue analysis of the flexible part.
maxMeshSize : Double (units=”length”)¶
Returns or sets the maximum mesh size of the part.
maxThickness : Double (units=”length”)¶
The maximum thickness value.
minGap : Double (units=”length”)¶
minMeshSize : Double (units=”length”)¶
Returns or sets the minimum mesh size of the part.
minThickness : Double (units=”length”)¶
The minimum thickness value.
modeType : Enum¶
How normal modes are defined.
modifiable : Bool¶
Determines whether the selected object can be edited.
morphable : Bool¶
Determines whether the selected object shape can be changed.
motionContactResolution : Enum (verylow, low, medium, high, veryhigh)¶
The resolution of the motion contact. It can be:
“verylow”
“low”
“medium”
“high”
“veryhigh”
movable : Bool¶
Determines whether the selected object can be translated in the modeling window or has been locked in place.
name : Attribute¶
Returns or sets the name of the object.
It can be any text string, including spaces, although it’s best to avoid using the following characters: ” ‘ * ? and $.
While these characters are allowed, they could create difficulties when you export the model to other applications.
numModes : Int¶
Specifies the number of modes of the part.
orderType : Enum¶
Order of elements for flexbody mesh.
position : Attribute¶
Specifies the global transform as a Matrix44.
rigidGroup : Attribute¶
The rigid group this object belongs to.
sheetThickness : Double (units=”length”)¶
Thickness of the 2D part used in volume calculation.
strainCalculation : Bool¶
Determines whether to calculate the strain or not.
stressCalculation : Bool¶
Determines whether to calculate stress or not.
transparency : Double¶
Specifies the transparency of the object.
Allows you to change the transparency, according to a percentage. By default, objects are 0% transparent(opaque).
visible : Bool¶
Determines whether the object is visible in the graphics window.
Setting this on or off sets all children. Setting to True sets all the parents visible too.
volume : Double (units=”volume”)¶
The volume of the object in the assembly.
Method Details¶
- classmethod create2DSurface(cls, numberRowsOfFaces=1, numberColumnOfFaces=1, cornerVertices=[[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0]], parent=None)¶
Creates a PolyNURBS surface in space.
- param numberRowsOfFaces
Number of faces to be shown vertically for the surface.
- type numberRowsOfFaces
int
- param numberColumnOfFaces
Number of faces to be shown horizontally for the surface.
- type numberColumnOfFaces
int
- param cornerVertices
The four corner vertices location in global space.
- type cornerVertices
list[math.Point, math.Point, math.Point, math.Point]
- param parent
The parent of the new part created.
- type parent
Assembly
- returns
PolyNURBS
- classmethod createBrick(cls, x=1, y=1, z=1, position=None, parent=None)¶
Creates a PolyNURBS block in space.
- param x
Length of the block.
- type x
float
- param y
Width of the block.
- type y
float
- param z
Depth of the block.
- type z
float
- param position
Transformation matrix of the block.
- type position
math.Matrix44
- param parent
The parent of the new part created.
- type parent
Assembly
- returns
PolyNURBS
- classmethod createCustomPolygon(cls, vertices, indices, edgeWeights=None, parent=None)¶
Creates a custom PolyNURBs polygon.
- param vertices
List of each vertex location in global space.
- type vertices
list[math.Point]
- param indices
List of vertex indices forming each polygon.
- type indices
list[list[int]]
- param edgeWeights
A list of list containing vertex 1 index, vertex 2 index and the weight. The weight should be in [0, 10], with 10 being perfect crease with the cage. Edge weights pull the smooth surface closer to the cage’s edge.
- type edgeWeights
list[list[int, int, float]]
- param parent
The parent of the new part created.
- type parent
Assembly
- returns
PolyNURBS
- classmethod createPolygonMesh(cls, vertices, indices, edgeWeights=None, parent=None)¶
Creates a custom PolyNURBs polygon.
- param vertices
List of each vertex location in global space.
- type vertices
list[math.Point]
- param indices
List of vertex indices forming each polygon.
- type indices
list[list[int]]
- param edgeWeights
A list of list containing vertex 1 index, vertex 2 index and the weight. The weight should be in [0, 10], with 10 being perfect crease with the cage. Edge weights pull the smooth surface closer to the cage’s edge.
- type edgeWeights
list[list[int, int, float]]
- param parent
The parent of the new part created.
- type parent
Assembly
- returns
PolyNURBS
- classmethod createSurfaceGrid(cls, numberRowsOfFaces=1, numberColumnOfFaces=1, cornerVertices=[[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0]], parent=None)¶
Creates a PolyNURBS surface in space.
- param numberRowsOfFaces
Number of faces to be shown vertically for the surface.
- type numberRowsOfFaces
int
- param numberColumnOfFaces
Number of faces to be shown horizontally for the surface.
- type numberColumnOfFaces
int
- param cornerVertices
The four corner vertices location in global space.
- type cornerVertices
list[math.Point, math.Point, math.Point, math.Point]
- param parent
The parent of the new part created.
- type parent
Assembly
- returns
PolyNURBS
- classmethod fit(cls, parts, numberOfFaces=500, curvature=0.5, autoCrease=False, system=None, symmetry=(0, 0, 0), parent=None)¶
Creates a new PolyNURBS part, on top of an existing mesh geometry.
- param parts
The parts to be fitted. If you pass more than one part, they will be combined into a single part.
- type parts
list[Part]
- param numberOfFaces
The number of PolyNURBS cage faces to be created for each part.
- type numberOfFaces
int
- param curvature
The amount of curvature detail to be captured. The value should range between 0 and 1. Higher values will capture more features.
- type curvature
float
- param autoCrease
If True, the Fit operation will attempt to retain sharp edges from the original model, so you can create fillets at a later time.
- type autoCrease
bool
- param system
Reference system which symmetry should occur about.
- type system
System
- param symmetry
Specifies the direction of the symmetry along which axis of the system. The value can be (0,1,0) specifying the symmetry along Y axis of the reference system.
- type symmetry
math.Vector
- param parent
The parent of the new part created.
- type parent
Assembly
- returns
PolyNURBS
- classmethod fitSynthesis(cls, synthesis, curvature=50, numberOfFaces=2500, shrinkWrapSize=0.0019, autoCrease=False, intersect=True, symmetry=True, density=None)¶
Fits an optimized part with PolyNURBS
- param synthesis
Synthesis object to get the synthesized part
- type synthesis
Synthesis
- param curvature
The amount of curvature detail to be captured. The value must be between 0 and 100. Higher values capture more features.
- type curvature
float
- param numberOfFaces
The number of PolyNURBs cage faces to be created for each optimized part.
- type numberOfFaces
int
- param shrinkWrapSize
The Voxel dimension size for each PolyNURB cage.
- type shrinkWrapSize
float
- param autoCrease
If True, the Fit operation will attempt to retain sharp edges from the original model, so you can create fillets at a later time.
- type autoCrease
bool
- param intersect
If True, intersects the optimized part with the new PolyNURBS part.
- type intersect
bool
- param symmetry
If True, align the optimized part with symmetric constraints.
- type symmetry
bool
- param density
Density Threshold Value.Value can range from 0 to 1.0.
- type density
float
- bridge(self, faces)¶
Bridge tool to create a bridge between two or more faces of either the same PolyNURBS cage or different cages.
- param faces
The faces to create bridge.
- type faces
list[FeatureArea]
- closeHolesInSolid(self)¶
Closes holes of the given part.
- edit(self)¶
Contextmanager to group multiple updates for performance.
- findAndFixBadFaces(self)¶
Finds and fixes any bad faces of the given part.
- getFeatures(self, type=None, rep='PolymeshRep', **kwds)¶
Returns a list of features based on specified filters.
- mirror(self, areas, origin, normal, keepOriginal=True)¶
Tool to mirror PolyNURBS bodies across a symmetry plane.
- param areas
The faces to create mirror.
- type areas
list[FeatureArea]
- param origin
The origin of the mirror.
- type origin
math.Point
- param normal
The normal of the mirror.
- type normal
math.Vector
- param keepOriginal
If True, both the original and the mirrored bodies will be retained in the model.
- type keepOriginal
bool
- moveEdge(self, edge, direction, distance)¶
Move the edge according to direction and distance.
- param edge
Face to be moved.
- type edge
FeatureLinear
- param direction
Direction in which face to be moved.
- type direction
math.Vector
- param distance
The distance by which face need to be moved.
- type distance
float
- moveFace(self, face, direction, distance)¶
Move the face according to direction and distance.
- param face
Face to be moved.
- type face
FeatureArea
- param direction
Direction in which face to be moved.
- type direction
math.Vector
- param distance
The distance by which face need to be moved.
- type distance
float
- movePoints(self, deltaLocations)¶
Translates the points according to translation deltas given.
- param deltaLocations
A mapping of points to their corresponding (dx, dy, dz) translation.
- type deltaLocations
dict[FeaturePoint, math.Point]
- setPointLocations(self, locations)¶
Moves points to an exact location.
- param locations
A mapping of points to the corresponding new location.
- type locations
dict[FeaturePoint, math.Point]
- sharpen(self, edge, weight)¶
Controls sharpness along an edge of the part.
- param edge
Edge to sharpen.
- type edge
FeatureCurve
- param weight
Weight to sharpen edge with.
- type weight
float
- shell(self, areas, thickness=0)¶
Removes the cage face and creates thin walls to generate a shelled PolyNURBS part.
- param areas
The cage faces to remove.
- type areas
list[FeatureArea]
- param thickness
The wall thickness of the shelled PolyNURBS part. If invalid thickness, is passed in, it will be computed.
- type thickness
float
- splitArea(self, area, point1, point2)¶
Splits a single PolyNURBS cage face.
Divides the area into two, including the original face, with a new edge between the original and new face. The order of points determines which resulting face is the original and which is new.
- param area
The area to divide.
- type area
FeatureArea
- param point1
The first point of the edge.
- type point1
FeaturePoint
- param point2
The second point of the edge.
- type point2
FeaturePoint