Knowledge Fusion例子
#! NX/KF 5.0
#
#*******************************************************************************************
# Design: GuiTu
# Date : 2017.9.8
# E_mall: 1714787391@qq.com
# QQ : 1714787391
# name : 批量层处理
#*********# 文件名与类名 #****************************************************************
Defclass: guitu_setlayer (%ui_comp) ; (string) title: "批量层处理";
(string) cue: "归途提示:选择要移动层对象";
############################ 定义组区 ###########################################
(list) DialogItems: {select_group:,fanyi_group:,set_group:}; # 对话框里组的 列表(list) ############################ 参数声名区 ##########################################
(any Parameter Modifiable) layer_value: 256;
(any Parameter Modifiable) str: "256";
(any Parameter Modifiable) str1: "";
(any Parameter Modifiable) b1: true;
(any Parameter Modifiable) b2: true;
(any Parameter Modifiable) b3: true;
(any Parameter Modifiable) b4: true;
(any Parameter Modifiable) b5: true; # 隐藏
(any Parameter Modifiable) b6: true; # 草图 (any Parameter Modifiable) int: 256; ############################ UI界面 区 ##########################################
(child) select_group:
{
class, %ui_comp_group;
title, "选择目标";
Members, {select_face: };
}; (Child) select_face:
{
Class, %ui_comp_selection;
Many, false; #是否多选
SnapPointOverlay, false;
SoUpdateOption, 3; Tooltip, "选择目标";
Scope, 1;
FilterTriple, {{2,0,0},{3,0,0},{5,0,0},{9,0,0},{197,0,0},{70,0,0},{19,0,0},{20,0,0},{43,0,0}}; #选择类型
SelectedObjects, {};
SelectedObject, SelectedObjects:; };
(child) fanyi_group:
{
class, %ui_comp_group;
title, "图层";
Members, {rh_label3:,rh_label4:,rh_label5:,rh_label6:, UI_button:,list_box:,integer:}; #####表示在shaft_group:组下有多少子规则
}; (child) rh_label3:
{
class, %ui_comp_label;
Title, "遍历目标体=" ;
topAttach, select_face: ;
};
(child) rh_label4:
{
class, %ui_comp_label;
Title, str1: ;
leftAttach, rh_label3:;
topAttach, select_face: ;
};
(child) rh_label5:
{
class, %ui_comp_label;
Title, "" ;
topAttach, rh_label4: ;
};
(child) rh_label6:
{
class, %ui_comp_label;
Title, "提示: "+"~n" +"你的图层类别没有设置或设置格式与本工具有异"+"~n"+"你可通过设置图层类别来获得更多可选图层列表信息"+"~n"+"了解更多信息请点击下列图标按钮";
icon, "advwave_legend_icon_outofdate.bmp";
topAttach, rh_label5: ;
leftAttach, rh_label5:;
};
(Child) UI_button:
{
Class, %ui_comp_button;
Title, " ";
icon,"informational_symbol.bmp"; #
};
(Child) list_box:
{
Class, %ui_comp_list_box;
ListItems, Append_type_layer_string: ; # 列表内容
SelectedItems, {}; # 返回选择的列表内容
selected, SelectedItems:;
SingleSelect, false; # 单选多选
ShowMoveUpDownButtons, true; # true显示上下移动按钮
DisplayRows, 4; # 列表框的显示行数
};
(any) int_value: first ( SplitString(nth( if list_box:SelectedItems:={} then 1 else first(list_box:SelectedItems:)+1 ,Append_type_layer_string:)," ")); (Child) integer:
{
Title, " ";
Class, %ui_comp_integer;
value,int:;
MaximumValue, 2^30;
MinimumValue, -2^30;
Width, 0;
};
(child) set_group:
{
class, %ui_comp_group;
title, "设置";
Members, {toggle:,toggle1: ,toggle2:,toggle4:,toggle5:,toggle3: };
};
(Child) toggle: {
Class, %ui_comp_toggle;
title, "允许改动图层";
value, b1:;
};
(Child) toggle1: {
Class, %ui_comp_toggle;
title, "仅相同图层";
value, b2:;
};
(Child) toggle2: {
Class, %ui_comp_toggle;
title, "仅相同颜色";
value, b3:;
};
(Child) toggle4: {
Class, %ui_comp_toggle;
title, "仅显示对象";
value, b5:;
};
(Child) toggle5: {
Class, %ui_comp_toggle;
title, "不操作草图对象";
value, b6:;
}; (Child) toggle3: {
Class, %ui_comp_toggle;
title, "区分样条cntl和thru";
value, b4:;
}; ############################ 代码 区 ########################################## # ********************************* 技术 一 获得选择对象信息 #获得选择目标 Type (类型)
(String) a: ug_object_askType(first(select_face:SelectedObjects:));
(list) a1: askTypeSubtype(first(select_face:SelectedObjects:));
(String) a2: if a:!="" then a: else "" ; #( askcolor info)
(integer) color1: ug_vd_si_ask_color(first(select_face:SelectedObjects:));
#( asklayer info)
(integer) layer1: if a:="ug_body" then asklayer(first(select_face:SelectedObjects:)) else nth(5,mqc_askEntityDisplayData(ug_cam_askObjectTag(first(select_face:SelectedObjects:)))); #( 图层 信息 ) #给定遍历的的类型进行遍历
(Any) cycle: ug_cycleObjectsByType({MakeName(a2:)},"");
# 遍历处理(区分 "ug_spline_thru"和"ug_spline_cntl")
(Any) cycledeal_1: loop {
for $a from 0 to length(cycle:)-1;
for $b is $a +1;
if ug_object_askType(nth($b,cycle:))= a: append {nth($b,cycle:)}; } ; (Any) cycledeal: if a2:="ug_spline_thru"|a2:="ug_spline_cntl"& toggle3:value:=true then cycledeal_1: else cycle: ; #+
基准平面
ug_cycleObjectsByType({ug_datum_plane},"") #- #**********************************技术 二 扩展技术 获得对象类型所在图层 (list) Categoryinfor: mqc_askCategory();
(list) askEmptyLayers: mqc_askEmptyLayers();
(list) askEmptyLayersatCategory: findDuplicates( askEmptyLayers:+ Append_type_layer:); #收集类型所在的层
(any) select_layer: nth(5,mqc_askEntityDisplayData(ug_cam_askObjectTag(first(select_face:SelectedObjects:)))); (any) Append_type_layer: loop {
for $a from 0 to length(Categoryinfor:)-1;
for $b is $a +1;
for $m is last(SplitString(first(nth($b,Categoryinfor:)),"_"));
if last(SplitString(a:,"_"))=$m return {if ug_AskWorkLayer()=select_layer: then 256 else 256,ug_AskWorkLayer()}+nth(4,(nth($b,Categoryinfor:)));
return is {256};
}; # 1 .将int list 变为 str list 2.区分空层和非空层 mqc_ask_layer_entities({$m}, ALL,true)
(any) Append_type_layer_string: loop {
for $a from 0 to length(Append_type_layer:)-1;
for $b is $a +1;
for $m is nth($b,Append_type_layer:);
append { if mqc_findSublist( $m, { askEmptyLayersatCategory: } )={}&ug_AskWorkLayer()=$m then stringValue($m )+" "+stringValue(length(mqc_askObjectsInLayer({$m}, ALL,true)))+" "+"工作层" else if mqc_findSublist( $m, { askEmptyLayersatCategory: } )={} then stringValue($m )+" "+stringValue(length(mqc_askObjectsInLayer({$m}, ALL,true))) else stringValue($m ) } ;
}; #********************************* 技术三 过滤机制
# 收集颜色相同类型的object toggle2:
(list) sametypeColorobj: loop {
for $a from 0 to length(cycledeal:)-1;
for $b is $a +1;
for $m is ug_vd_si_ask_color(nth($b,cycledeal:));
if $m=color1: Append {nth($b,cycledeal:)} ;
};
(list) Colorobj: if toggle2:value:=true then sametypeColorobj: else cycledeal:;
# 收集图层相同类型的object toggle1:
(list) sametypelayerobj: loop {
for $a from 0 to length(cycledeal:)-1;
for $b is $a +1;
for $m is if a:="ug_body" then asklayer(first(select_face:SelectedObjects:)) else nth(5,mqc_askEntityDisplayData(ug_cam_askObjectTag(nth($b,cycledeal:))));
if $m=layer1: Append {nth($b,cycledeal:)} ;
};
(list) layerobj: if toggle1:value:=true then sametypelayerobj: else cycledeal:;
# 收集隐藏object toggle4:
(list) allblankobj: mqc_askBlankedObjects();
(list) selectobjblankobj: loop {
for $a from 0 to length(cycledeal:)-1;
for $b is $a +1;
for $m is nth($b,cycledeal:);
for $T is ug_cam_askObjectTag($m) ;
if mqc_findSublist( $T, { allblankobj: } )={} Append {nth($b,cycledeal:)} ; # 表示仅仅收集没有隐藏对象
};
(list) blankobj: if toggle4:value:=false then cycledeal: else selectobjblankobj:; #****技术(一)------1 (过滤处理)
# 判断是否选相同颜色
(list) setlayerobj: ug_findDuplicates(ug_findDuplicates(blankobj:+layerobj: )+ug_findDuplicates(layerobj:+Colorobj: )+ug_findDuplicates(blankobj:+Colorobj: ) ) ; # sket过滤 setlayerobj: (list) askFeat: mqc_askFeatures();
(any) sket: loop {
for $a from 0 to length(setlayerobj:)-1;
for $b is $a +1;
for $m is nth($b,setlayerobj:);
for $objtag is ug_cam_askObjectTag($m);
for $Featuretag is mqc_askFeatureOfObject ($objtag );
if $Featuretag!=-1 append{$m};
};
# collect is skect object
(any) sketFeat: loop {
for $a from 0 to length(sket:)-1;
for $b is $a +1;
for $m is nth($b,sket:);
for $objtag is ug_cam_askObjectTag($m);
for $Featuretag is mqc_askFeatureOfObject ($objtag );
if second(mqc_askFeatureNameAndType($Featuretag))="SKETCH" append{$m};
}; # decide whether or not to select an operation skect object through toggle5:value: is true or false (list) endsetlayer: if toggle5:value:=true then SetDifference(setlayerobj:,sketFeat:) else setlayerobj:; #********************************** 技术 四 设置图层
(any) setlayer: loop {
for $a from 0 to length( endsetlayer:)-1;
for $b is $a +1;
if toggle:value:=False return 0;
do ug_setObjectLayer(nth($b, endsetlayer:), makenumber(int_value:));
}; (list) demandValue: {setlayer:}; # 对话框的初始化 1 (Method integer) OnInitialize:(Instance $instance)
@{ %ui_comp_setCacheValue(self(), int:,integer:,value);
%ui_comp_setCacheValue(self(), b1:,toggle:,value);
%ui_comp_setCacheValue(self(), b2:,toggle1:,value);
%ui_comp_setCacheValue(self(), b3:,toggle2:,value);
%ui_comp_setCacheValue(self(), b4:,toggle3:,value);
%ui_comp_setCacheValue(self(), b5:,toggle4:,value);
%ui_comp_setCacheValue(self(), b6:,toggle5:,value);
# if (string3:value:="guitu_information") then {%ui_comp_setCacheValue(self(), true,UI_button:,Visibility);} else {%ui_comp_setCacheValue(self(), false ,UI_button:,Visibility);}; if (last(SplitString(a:,"_"))="point"&length(Append_type_layer_string:)=1) then
{
%ui_comp_setCacheValue(self(), true, rh_label6: ,Visibility);
%ui_comp_setCacheValue(self(), true,UI_button:,Visibility);
}
else
{
%ui_comp_setCacheValue(self(), false , rh_label6: ,Visibility);
%ui_comp_setCacheValue(self(), false ,UI_button:,Visibility);
}; if (a2:="ug_spline_thru"|a2:="ug_spline_cntl")
then
{
%ui_comp_setCacheValue(self(), true,toggle3: ,Visibility); }
else
{
%ui_comp_setCacheValue(self(), false , toggle3: ,Visibility); }; 0;
}; #更新机制 2
(Method integer ) Update:(Instance $instance)
@{ %ui_comp_setCacheValue(self(),Append_type_layer_string:,list_box: ,ListItems);
%ui_comp_setCacheValue(self(),makenumber(int_value:),integer:,value); %ui_comp_setCacheValue(self(), if a2:="" then "{"+format("%d",first(a1:))+","+format("%d",last(a1:)) +"}"+" : 可选图层列表" else a2: +" : 可选图层列表" ,rh_label5: ,Title);
%ui_comp_setCacheValue(self(), format("%d",length(endsetlayer:)),rh_label4: ,Title); if ($instance = UI_button:) then
@{
ug_printValues( {" 批量层处理帮助 "});
ug_printValues( {"======================"});
ug_printValues( {"信息列表创建者 : "+ug_askUserName()});
ug_printValues( {"日期 : "+dateTimeString(localTime? ,True)});
ug_printValues( {"当前工作部件 : "+ug_askScenarioDirectory()+".prt"});
ug_printValues( {"系统平台 : "+ug_askOSName()});
ug_printValues( {"======= 过滤对象==========="});
ug_printValues( {"颜色相同对象 : ",length(Colorobj:)});
ug_printValues( {"图层相同 : ",length(layerobj:)});
ug_printValues( {"隐藏对象 : ",length(blankobj:)});
ug_printValues( {"遍历目标体 : ", length(setlayerobj: )});
ug_printValues( {"sket: : ", sketFeat:});
ug_printValues( {"sket: : ",setlayerobj:}); ug_printValues({"草图对象 : ", length(setlayerobj: )-length(notsketFeat: )});
ug_printValues( {"&&&&&&&&&&&&&&&&&&& 设置 &&&&&&&&&&&&&&&&&&&&&&&&&&&"});
ug_printValues( {"***************允许移动图层 开关作用 *********************** : "+ "~n" });
ug_printValues({" 是否移动对象 " + "~n" } );
ug_printValues({ "***************仅相同图层 开关作用 *********************** : "+ "~n" });
ug_printValues({" 仅操作图层相同的类型对象 " + "~n" } );
ug_printValues({ "***************仅相同图层 开关作用 *********************** : "+ "~n" });
ug_printValues({ " 仅操作图层相同的类型对象 " + "~n" });
ug_printValues( {"***************仅相同颜色 开关作用 *********************** : "+ "~n" });
ug_printValues({" 仅操作颜色相同的类型对象 " + "~n" });
ug_printValues( {"**************仅显示对象 开关作用 *********************** : "+ "~n" });
ug_printValues( {"仅操作当前显示的的类型对象 " + "~n" } );
ug_printValues({ "*************区分样条cntl和thru 开关作用 *********************** : "+ "~n" +
"原本以为样条分为'通过点'和'根据极点' 那么thru 应为'通过点' 而cntl 应为'根据极点' " + "~n" +
"但是经过后来测试发现并不是那回事 但也相似 "+"~n" +
"做逆向造型常用到截面线 这个命令截出的类型即为 cntl 型,还有就是使用'根据极点'创建得到的以及使用'通过点'当你选择的(次数=创建的点数)" + "~n" }); } else
doNothing; if (last(SplitString(a:,"_"))="ug_spline_thru"|length(Append_type_layer_string:)=1) then
{
%ui_comp_setCacheValue(self(), true, rh_label6: ,Visibility);
%ui_comp_setCacheValue(self(), true,UI_button:,Visibility);
}
else
{
%ui_comp_setCacheValue(self(), false , rh_label6: ,Visibility);
%ui_comp_setCacheValue(self(), false ,UI_button:,Visibility);
}; if (a2:="ug_spline_thru"|a2:="ug_spline_cntl")
then
{
%ui_comp_setCacheValue(self(), true,toggle3: ,Visibility); }
else
{
%ui_comp_setCacheValue(self(), false , toggle3: ,Visibility); }; 0;
};
Knowledge Fusion例子的更多相关文章
- pro-engineer&UG
Pro/Engineer操作软件是美国参数技术公司(PTC)旗下的CAD/CAM/CAE一体化的三维软件.Pro/Engineer软件以参数化著称,是参数化技术的最早应用者,在目前的三维造型软件领域中 ...
- Bert不完全手册7. 为Bert注入知识的力量 Baidu-ERNIE & THU-ERNIE & KBert
借着ACL2022一篇知识增强Tutorial的东风,我们来聊聊如何在预训练模型中融入知识.Tutorial分别针对NLU和NLG方向对一些经典方案进行了分类汇总,感兴趣的可以去细看下.这一章我们只针 ...
- Feature Fusion for Online Mutual Knowledge Distillation (CVPR 2019)
一.解决问题 如何将特征融合与知识蒸馏结合起来,提高模型性能 二.创新点 支持多子网络分支的在线互学习 子网络可以是相同结构也可以是不同结构 应用特征拼接.depthwise+pointwise,将特 ...
- Sensor fusion(传感器融合)
From Wikipedia, the free encyclopedia 来自维基百科,免费的百科Sensor fusion is combining of sensory data or data ...
- 不用搭环境的10分钟AngularJS指令简易入门01(含例子)
不用搭环境的10分钟AngularJS指令简易入门01(含例子) `#不用搭环境系列AngularJS教程01,前端新手也可以轻松入坑~阅读本文大概需要10分钟~` AngularJS的指令是一大特色 ...
- 关于Knowledge Transfer的一点想法
维基百科中对于Knowledge Transfer(知识转移)的定义是: 知识转移是指分享或传播知识并为解决问题提供投入.在组织理论中,知识转移是将知识从组织的一个部分转移到另一个部分的实践问题. 与 ...
- [knowledge][perl][pcre][sed] sed / PCRE 语法/正则表达式
一直用sed一直没有正经的学过语法,一直一知半解的用着. 因为,它用来perl的语法,要想搞懂,首先要搞懂perl,系统的入个门... 之前,man sed,man了好多次,总是没找到关键内容,今天在 ...
- 1. 通俗易懂解释知识图谱(Knowledge Graph)
1. 通俗易懂解释知识图谱(Knowledge Graph) 2. 知识图谱-命名实体识别(NER)详解 3. 哈工大LTP解析 1. 前言 从一开始的Google搜索,到现在的聊天机器人.大数据风控 ...
- 论文笔记:蒸馏网络(Distilling the Knowledge in Neural Network)
Distilling the Knowledge in Neural Network Geoffrey Hinton, Oriol Vinyals, Jeff Dean preprint arXiv: ...
- Drools简单例子
转自:http://www.blogjava.net/diggbag/articles/359347.html 1.Drools简单例子 首先是搭建一个可供进行Drools开发的框架.Jboss官方推 ...
随机推荐
- Selinux讲解
手动开启/关闭/查询 SELINUX状态的方法在Limx操作系统运行过程中无法使用命令停用 SELINUX,可以在内核启动参数或使用修改配置文件的方式去关闭 SELINUX安全机制.若只是要将 SEL ...
- shell 脚本请求接口报错
2023-01-18 22:07:07.984 WARN 11700 --- [io-9044-exec-10] .w.s.m.s.DefaultHandlerExceptionResolver : ...
- HCIP-进阶实验04-多运营商BGP协议部署
HCIP-进阶实验04-多运营商BGP协议部署 1 实验拓扑 2 实验环境说明 2.1 IP地址规划表 设备 接口 IP地址 备注 R1 G0/0/0 12.12.12.1/30 Loopback0 ...
- for循环axios套axios调用,同步调取
1.function getsdd(){}事件 async/await把异步进行设置成同步进行 var url = '/api/runtime/form/save'; function checkAd ...
- docker+gunicorn+fastapi部署
一.准备工作 1.先确保项目可以正常运行 2.使用pip freeze导出第三方库 3.在项目根目录新建pip.conf文件,写入一下内容 [global] index-url=http://pypi ...
- 反射 1 加载指定的DLL
我们通常 都是用反射来操作指定的程序集(dll,exe). 需要引用 System.Reflection 有三种加载方式 Assembly assembly = Assembly.Load(" ...
- Linux_CMD_FOR_OS_INFO
1,系统版本 : lsb_release -a 2,系统信息(86/64): uname -a 3,键盘信息:localectl status 4,系统支持的键盘:localectl list-ke ...
- OTP: gen_server的简单应用
1.确定回调模块名 2.编写接口函数 3.在回调模块里编写六个必需的回调函数 1.确定回调模块名 my_bank 2.编写接口方法 start() 打开银行 stop() 关闭银行 new_accou ...
- Android Studio 生成Jar包以及是否混淆打包等ZengYuanFinn博客等你来查看
1,Android studio生成jar包的前提是要确保生成的代码是引用的module工程: 2,在需要生成jar包的build.gradle(上图倒数第三行)中添加如下代码: //生成jar包 t ...
- 新建zabbix数据库
1.安装mysqldnf install -y @mysqlsystemctl start mysqld.servicesystemctl enable mysqld.service初始化mysqlm ...