示例 1. 创建创成式外形设计直线。 2. 在“标准 (standard)”工具栏单击 图标以创建第一条法则曲线。 3. 在“法则曲线编辑器 (Law Editor)”中,创建两个实型形参。 4. 将下面的法则曲线 (Law.1) 输入到编辑器中: FormalReal.1 = 5*sin(5*PI*1rad*FormalReal.2)+ 10 5. 单击“确定 (OK)”按钮将此法则曲线添加到文档中。 6. 重复同样的操作,并输入下面的法则曲线 (Law.2): FormalReal.1 = 3* FormalReal.2*Relations
Law.1.Evaluate(FormalReal.2) 7. 在“创成式外形设计 (Generative Shape Design)”工作台中,创建一条直线,使其平 行于在步骤 1 中创建的直线。在“偏移 (Offset)”字段中指定上面定义的法则曲线。
9、列表
列表方法用于管理参数、凸台等的列表它们允许您创建列表、将项添加到列表、从列表中移除项、 从列表中检索值、将列表中的元素移动到其它位置、过滤以及将列表的内容复制到其它列表中。
下面描述的函数可在公式、规则和“动作 (Action)”编辑器中使用。 List->Size () :Integer
26
用于返回列表中包含的项数的方法。
List->GetItem (Index:Integer) :ObjectType
用于从列表中检索值/项的方法。(索引从 1 开始)。
Copy (List:List):List
用于将列表内容复制并粘贴到另一个列表的方法。
List (Next:ObjectType, ...):List 用于创建列表的方法。 List(Item1, Item2, Item3)
List->Sum ():Real
计算包含在列表中的项的总和。仅适用于整数和实数。
List->IndexOf (Element:ObjectType, StartIndex:Integer):Integer 返回列表项的第一个索引。从“开始索引”开始搜索项。
下面描述的函数仅在“动作 (Action)”编辑器中可用。
List->AddItem (Object:Objecttype, Index:Integer):VoidType 用于向列表中添加项的方法。如果索引等于 0,则在列表末端添加新项。如果索引等于 1, 则新项插入到索引指示的列表位置,表示现有项被新项替换,从而从列表中被移除。建议使 用 InsertItem 方法。
let list (List) list->AddItem(PartBody
Hole.2 ,1) Hole.3 ,2)
list->AddItem(PartBody
Message(\List->InsertItem (Object:ObjectType, Index:Integer):VoidType 用于将项插入到列表中的方法。其中:
Object 是要插入到列表中的对象。 Index 是对象插入到列表中的位置。
List->Append (Object:ObjectType)
27
用于将项添加到列表末端的方法。其中:
Object 是要插入到列表中的对象。
List->SetItem (Object:ObjectType, Index:Integer):VoidType 用于替换列表中项的方法。其中:
Object 是要插入到列表中的对象。 Index 是列表中要替换对象的位置。在这种情况下,将删除要被替换的对象。
List->RemoveItem (Index:Integer) :VoidType
用于移除列表中项的方法。 List->RemoveAll():VoidType 清空列表。
List->ReorderItem (Current:Integer, Target:Integer ) :ObjectType 用于将列表中由其位置所引用的元素移动到新位置的方法。
List->Compute(Operation:String, Type:String, Expression:String,
Result:out UndefinedType):VoidType
该函数用于计算在列表中特征所支持的属性上执行的运算的结果。 示例: List.1 .Compute(\ 其中:
List.1 是将执行计算的列表的名称。
+ 是使用的运算符。(支持的运算符有:+、min 和 max。)
Hole 是用于计算的列表项的类型(要计算直径,需指定 Hole 类型;要计
算体积,需指定 Solid 类型)
x 代表列表项。注意,列表中包含的项的类型应该相同。 Length.1 是输出参数。
注意,该方法可在动作、反应和知识工程专家中使用。 List->Apply (Type:String, Expression:String):VoidType 将给定的表达式应用到列表中具有给定类型的对象上。
示例:
//Finds all rule bases and executes them Expression1 (P:#In PartFeature) 28
{ /* Finding a value */ let L (List) L = P->Query( Rulebase , ) L->Apply ( RuleBase , x->Update() ) } List->Filter(Type:String, Condition:String):List 该方法通过提取满足布尔表达式的对象,来过滤对象列表。 该方法具有以下签名:
List.Filter(String TypeName,String Expression) :List
TypeName 是用户要提取的对象类型(内容可以为
。在这种情况下,将不过滤类型)
第二个字符串表达式对应于必须满足此给定类型对象的布尔表达式。在该表达式中, x 用作类型 TypeName 的变量名。该字符串可以等于
。在这种情况下,将不选中任何表达式。
示例:
I = (List->Filter(
Hole ,
x.Diameter > 3mm )).Size()
I = (List->Filter( Hole
,
)).Size()
10、消息
Message 函数 Question 函数 Trace Message 函数
在信息框中显示消息。消息可以包含一个或多个参数值。
语法
29
Message(String [# String1 # String2 ..., Param1Name, Param2Name, ...]) : Void
Message 函数有一个必选参数和多个可选参数,可选参数取决于是否在消息中显示参数值。
参数 String # String1 描述 必选。将在信息框中显示的字符串(应括在引号内)。 , 可选。要在消息中显示参数值时,应按以下方式指定参数: 任何将显示参数值的位置都有一个带引号的字符串,包括 符号 # Param1Name... [, parameter name] 语句的数量和消息中以“#”声明的 参数值的数量相同。
使用“|”符号在消息中插入回车。
示例 1
Message(\PartBody PartBody
Sketch.1 Hole.1
Radius.3 Diameter)
Radius,
示例 2
请注意,该函数可以和 buildMessageNLS 函数一起使用
Message
(BuildMessageNLS(\
请注意,可以将 Message 函数和 BuildMessageNLS 函数一起使用,以便使用您的语 言显示问题。若要使用此功能,请使用下面的语法:
Message(BuildMessageNLS (\
x 对应于 CATXXX.CATNls 文件名,将在该文件中找到 NLS 消息(它是没有 CATNls 扩展名的 CATXXX 名称)。
xx 对应于该目录中的关键名称。 a 和 b 是参数(将在消息中替换的值)
30