KWA Catia R24 - 通过脚本激活/停用组件(拉伸问题)

KWA Catia R24 - Activate / Deactivate components by script (Problem with Extrude)

我已经为 GS 中的 Activate/Deactivate 组件创建了简单的代码(通过简单的修改,您也可以 Hide/Show 组件)在 99% 的情况下它可以工作,但我注意到 EXTRUDE 有问题该脚本能够停用所有 EXTRUDE 功能,但是当我想激活它们时出现问题。我注意到脚本无法找到并添加到停用的 EXTRUDE 函数列表中,我不知道为什么。 预先感谢您的帮助

下面你可以找到我的代码:

A​​CTION中的主要代码:

GeometricalSet :  OpenBodyFeature,visState :  Boolean 

let AxisSystems_List (List)
let Wireframe_List (List)
let Sketch_List (List)
let Wireframe_List (List)
let Surfaces_List (List)

let AxisSystem_GEO (AxisSystem)
let Wireframe_GEO (Wireframe)
let Sketch_GEO (Sketch)
let Surfaces_GEO (Surface)

AxisSystems_List  = GeometricalSet ->Query("AxisSystem","")
Wireframe_List = GeometricalSet ->Query("Wireframe","")
Sketch_List = GeometricalSet ->Query("Sketch","")
Surfaces_List = GeometricalSet ->Query("Surface","")

for AxisSystem_GEO inside AxisSystems_List 
{
    AxisSystem_GEO.Activity = visState

}

for Wireframe_GEO inside Wireframe_List 
{
    Wireframe_GEO.Activity = visState

}

for Sketch_GEO inside Sketch_List 
{
    Sketch_GEO.Activity = visState

}

for Surfaces_GEO inside Surfaces_List
{
    Surfaces_GEO.Activity = visState

}

对 运行 脚本的反应:

if String.1 =="YES"
{

    `Relations\Rules\Action deactivate`  ->Run(`Geometrical Set.109`,true)

}

else if String.1=="NO"
{

    `Relations\Rules\Action deactivate`  ->Run(`Geometrical Set.109`,false)
}

Extrude 不一定是曲面。例如,您可以将一个点拉伸成一条线。

我认为正在发生的事情是,当该功能被停用时,没有表面,因此在查询期间不会返回任何内容。 CATIA 似乎只关心生成的形状而不关心对象类型 - 当您查询 "Surface".

如果您查询和处理 "GSMExtrude" 而不是 "Surface",您会发现它有效。

所以当收集要重新激活的对象时,也许你可以这样做:

lObjects = geoset->Query("Surface","") + geoset->Query("GSMExtrude","")

这应该能让你得到一切。肯定会在重新激活时使事情变得复杂。

同样的事情也可能适用于其他类型,也许是 Split 功能。 Split 也可以是曲面,也可以是曲线。