Source code for creopyson.dimension

"""Dimension module."""


[docs] def copy(client, name, to_name, file_=None, to_file=None): """Copy dimension to another in the same model or another model. Args: client (obj): creopyson Client. name (str): Dimension name to copy. to_name (str): Destination dimension; th dimension must already exist. `file_` (str, optional): Model name. Defaults is current active model. to_file (str, optional): Destination model. Defaults is the source model. Returns: None """ data = {"name": name, "to_name": to_name} if file_ is not None: data["file"] = file_ else: active_file = client.file_get_active() if active_file: data["file"] = active_file["file"] if to_file is not None: data["to_file"] = to_file return client._creoson_post("dimension", "copy", data)
[docs] def list_(client, name=None, file_=None, dim_type=None, encoded=None, select=False): """Get a list of dimensions from a model. If select is true, then the current selection in Creo will be cleared even if no items are found. Args: client (obj): creopyson Client. name (str|list:str, optional): Dimension name; if empty then all dimensions are listed. `file_` (str, optional): Model name. Defaults is current active model. dim_type (str, optional): Dimension type filter. Defaults is `no filter`. Valid values: linear, radial, diameter, angular. encoded (boolean, optional): Whether to return the values Base64-encoded. Defaults is False. select (boolean, optional): If true, the dimensions that are found will be selected in Creo. Defaults is False. Returns: (list:dict): List of dimension information. name (str): Dimension name value (str|float): Dimension value; if encoded is True it is a str, if encoded is False it is a float. encoded (boolean): Whether the returned value is Base64-encoded. dwg_dim (boolean): Whether dimension is a drawing dimension rather than a model dimension. """ data = {} if file_ is not None: data["file"] = file_ else: active_file = client.file_get_active() if active_file: data["file"] = active_file["file"] if name is not None: if isinstance(name, (str)): data["name"] = name elif isinstance(name, (list)): data["names"] = name if dim_type is not None: data["dim_type"] = dim_type if encoded is not None: data["encoded"] = encoded if select is not None: data["select"] = select return client._creoson_post("dimension", "list", data, "dimlist")
[docs] def list_detail( client, name=None, file_=None, dim_type=None, encoded=None, select=False ): """Get a list of dimension details from a model. Values will automatically be returned Base64-encoded if they are strings which contain Creo Symbols or other non-ASCII data. If select is true, then the current selection in Creo will be cleared even if no items are found. Args: client (obj): creopyson Client. name (str|list:str, optional): Dimension name; if empty then all dimensions are listed. `file_` (str, optional): Model name. Defaults is current active model. dim_type (str, optional): Dimension type filter. Defaults is `no filter`. Valid values: linear, radial, diameter, angular. encoded (boolean, optional): Whether to return the values Base64-encoded. Defaults is False. select (boolean, optional): If true, the dimensions that are found will be selected in Creo. Defaults is False. Returns: (list:dict): List of dimension information. name (str): Dimension name value (str|float): Dimension value; if encoded is True it is a str, if encoded is False it is a float. encoded (boolean): Whether the returned value is Base64-encoded. sheet (int): Sheet number. view_name (str): View name. dim_type (str): Dimension type. Valid values: linear, radial, diameter, angular. dwg_dim (boolean): Whether dimension is a drawing dimension rather than a model dimension. text (str): dimension text. location (dict): Coordonates location. x (float): X coordonate location. y (float): Y coordonate location. z (float): Z coordonate location. tolerance_type (str): Tolerance type, if not specified not returned. Valid values: plus_minus (TODO complete list). tol_plus (float): Plus tolerance value. if tolerance_type not specified not returned. tol_minus (float): Minus tolerance value. if tolerance_type not specified not returned. """ data = {} if file_ is not None: data["file"] = file_ else: active_file = client.file_get_active() if active_file: data["file"] = active_file["file"] if name is not None: if isinstance(name, (str)): data["name"] = name elif isinstance(name, (list)): data["names"] = name if dim_type is not None: data["dim_type"] = dim_type if encoded is not None: data["encoded"] = encoded if select is not None: data["select"] = select return client._creoson_post("dimension", "list_detail", data, "dimlist")
[docs] def set_(client, name, value, file_=None, encoded=None): r"""Set a dimension value. One reason to encode values is if the value contains special characters, such as Creo symbols. You may be able to avoid Base64-encoding symbols by using Unicode for the binary characters, for example including \\u0001#\\u0002 in the value to insert a plus/minus symbol. Args: client (obj): creopyson Client. name (str): Dimension name. value (str|float): Dimension value. `file_` (string, optional): file name, if not set, active model is used. encoded (boolean, optional): Whether the value is Base64-encoded. Defaults is False. Raises: Warning: error message from creoson. Returns: None """ data = { "name": name, "value": value, } if file_ is not None: data["file"] = file_ else: active_file = client.file_get_active() if active_file: data["file"] = active_file["file"] if encoded is not None: data["encoded"] = encoded return client._creoson_post("dimension", "set", data)
[docs] def set_text(client, name, file_=None, text=None, encoded=False): """Set dimension text. Args: client (obj): creopyson object. name (str): Dimension name. `file_` (string, optional): file name, if not set, active model is used. text ([type], optional): Dimension text. Defaults to None, sets the dimension's text to @D. encoded (bool, optional): Whether the text value is Base64-encoded. Defaults to False. Returns: None """ data = { "name": name, "encoded": encoded, } if file_ is not None: data["file"] = file_ else: active_file = client.file_get_active() if active_file: data["file"] = active_file["file"] if text is not None: data["text"] = text return client._creoson_post("dimension", "set_text", data)
[docs] def show(client, name, file_=None, assembly=None, path=None): """Display or hide a dimension in Creo. Args: client (obj): creopyson Client. name (str): Dimension name. `file_` (str, optional): Model name. Defaults is current active model. assembly (str, optional): Assembly name; only used if path is given. Defaults is the currently active model. path (list:int, optional): Path to occurrence of the model within the assembly; the dimension will only be shown for that occurrence. Defaults: all occurrences of the component are affected. Returns: None """ data = {"name": name} if file_ is not None: data["file"] = file_ else: active_file = client.file_get_active() if active_file: data["file"] = active_file["file"] if assembly is not None: data["assembly"] = assembly if path is not None: data["path"] = path return client._creoson_post("dimension", "show", data)
[docs] def user_select(client, file_=None, maxi=None): """Prompt user to select one or more dimensions, and return their selections. client (obj): creopyson Client. `file_` (str, optional): Model name. Defaults is current active model. maxi (int, optional): The maximum number of dimensions that the user can select. Defaults is `1`. Raises: Warning: error message from creoson. Returns: (list:dict): List of selected dimension information name (str): Dimension name value (str|float): Dimension value; if encoded is True it is a str, if encoded is False it is a float. encoded (boolean): Whether the returned value is Base64-encoded. file (str): File name. relation_id (int): Relation ID number. """ data = {"max": 1} if file_ is not None: data["file"] = file_ else: active_file = client.file_get_active() if active_file: data["file"] = active_file["file"] if maxi is not None: data["max"] = maxi return client._creoson_post("dimension", "user_select", data, "dimlist")