Пример #1
0
def FindSyflexMeshes(model=None):
    all_syflex = XSI.FindObjects(None,
                                 '{513A555C-13F2-4D77-82E7-C35D14B789C1}')
    if model:
        return [
            syflex.OutputPorts(0).Target2.Parent for syflex in all_syflex
            if (model.Name == syflex.OutputPorts(0).Target2.Parent.Model.Name)
        ]
    else:
        return [syflex.OutputPorts(0).Target2.Parent for syflex in all_syflex]
Пример #2
0
def CollectGuideElements(model):
    """ Collect guide element property page under model
	:param Model model: SDK Model object
	:return list: SDK PPG list
	"""
    return [
        prop for prop in XSI.FindObjects(
            None, '{76332571-D242-11d0-B69C-00AA003B3EA6}')
        if prop.Type == 'RigElement'
        and prop.Parent3DObject.Model.IsEqualTo(model)
    ]
Пример #3
0
def GetProperties(_type, model=None):
	""" Get all custom properties of propType name under model (or scene)
	:param str _type: property type name
	:param Model model: SDK Model object
	:return XSI.Collection: SDK PPG collection
	"""
	filtered = XSIFactory.CreateActiveXObject('XSI.Collection')
	all_properties = XSI.FindObjects(None, '{76332571-D242-11d0-B69C-00AA003B3EA6}')
	for _property in all_properties:
		if _property.Type == _type:
			if model:
				if _property.Parent3DObject.Model.IsEqualTo(model):
					filtered.Add(_property)
			else:
				filtered.Add(_property)
	return filtered
Пример #4
0
def GetSymmetryMap(inObject):
    symmetrymaps = XSI.FindObjects(None,
                                   "{2EBA6DE4-B7EA-4877-80FE-FC768F32729F}")

    for symap in symmetrymaps:
        if symap.Parent3DObject.IsEqualTo(inObject):
            return symap

    # create cluster if not exist
    cluster = inObject.ActivePrimitive.Geometry.Clusters("SymmetryMapCls")
    if not cluster:
        cluster = inObject.ActivePrimitive.Geometry.AddCluster(
            constants.siVertexCluster, "SymmetryMapCls")

    symap = XSI.CreateSymmetryMap("SymmetryMap", cluster, "SymmetryMap")(0)
    return symap