没有合适的资源?快使用搜索试试~ 我知道了~
NX二次开发 CustomFeature测试记录和问题处理
需积分: 5 9 下载量 62 浏览量
2023-08-23
13:51:06
上传
评论 1
收藏 18KB DOCX 举报
温馨提示
试读
13页
NX二次开发 基于C++ CustomFeature测试记录和问题处理
资源推荐
资源详情
资源评论
1、需要将两个 dll 和 xml 文件拷到 application 文件夹中
2、CustomFeatureConfiguration.xml 文件名必须为这个名字,内部格式如
下:
<?xml version="1.0" encoding="utf-8"?>
<!-- -->
<CustomFeatureLib
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="CustomFeatureConfiguration_sche
ma.xsd">
<CustomFeature
FeatureClass="NXOpen::CustomFeature::BlockAndCylinder"
FeatureName="Block And Cylinder"
FeatureIcon="block_and_cylinder"
FeatureLibrary="BlockAndCylinderCore"
FeatureUILibrary="BlockAndCylinderUI"
IsWithoutBody="false"/>
<CustomFeature
FeatureClass="NXOpen::CustomFeature::SamplePolygonalHole"
FeatureName="Polygonal Hole"
FeatureIcon="polygonal_hole"
FeatureLibrary="PolygonalHoleCore"
FeatureUILibrary="PolygonalHoleUI"
IsWithoutBody="true"/>
</CustomFeatureLib>
FeatureClass:和代码里的类名需要一致。
FeatureName:UG 历史模型记录中的名字
FeatureIcon:UG 历史模型记录中显示的图标
FeatureLibrary:实现特征创建的代码
FeatureUILibrary:UI 逻辑代码
IsWithoutBody:如果创建的特征不含实体,只含有曲线,则
IsWithoutBody="true",这样的话双击曲线就可以直接编辑。如果创建的对
象不含体,但是 IsWithoutBody="false",则会引发异常,提示不能创建体或
者没有目标体。
头文件:
##include <NXOpen/Features_Feature.hxx>
#include <NXOpen/Features_FeatureCollection.hxx>
#include <NXOpen/Features_CustomAttribute.hxx>
#include <NXOpen/Features_CustomAttributeCollection.hxx>
#include <NXOpen/Features_CustomExpressionAttribute.hxx>
#include <NXOpen/Features_CustomIntegerAttribute.hxx>
#include <NXOpen/Features_CustomLogicalAttribute.hxx>
#include <NXOpen/Features_CustomTagAttribute.hxx>
#include <NXOpen/Features_CustomFeature.hxx>
#include <NXOpen/Features_CustomFeatureBuilder.hxx>
#include <NXOpen/Features_CustomFeatureClass.hxx>
#include <NXOpen/Features_CustomFeatureClassManager.hxx>
#include <NXOpen/Features_CustomFeaturePreUpdateEvent.hxx>
#include <NXOpen/Features_CustomFeatureData.hxx>
#include <NXOpen/Features_CustomFeatureDataCollection.hxx>
#include
<NXOpen/Features_CustomFeatureCreateFeatureGeometryEvent.hxx>
#include
<NXOpen/Features_CustomFeatureModifyFeatureGeometryEvent.hxx>
#include <NXOpen/Features_CustomFeaturePostUpdateEvent.hxx>
#include <NXOpen/Features_CustomFeatureInformationEvent.hxx>
3、**UI.DLL
a 、在对话框构造类中添加以下代码,注意是类成员变量,添加时去掉前
面的类型定义。
// Get custom feature manager from session.
NXOpen::Features::CustomFeatureClassManager * m_CusFeatManager =
theSession->CustomFeatureClassManager();
NXOpen::Features::CustomFeatureClass *m_CusFeatClass =
mgr->GetClassFromName("NXOpen::CustomFeature::SamplePolygonalHole");
b 、在对话框 show 添加以下代码:来区分是编辑还是创建,编辑不含有
apply 按钮。
NXOpen::Features::CustomFeature* editedFeature =
m_CusFeatManager ->GetEditedCustomFeature();
BlockDialog::DialogMode mode = editedFeature != NULL ?
BlockDialog::DialogModeEdit : BlockDialog::DialogModeCreate;
theDialog->Show(mode);
c、在初始化中添加以下代码:第一次创建特征则初始化默认参数,重新
编辑特征则根据属性名称在特征数据中读取,并设置界面控件值。
NXOpen::Part *workPart(theSession->Parts()->Work());
NXOpen::Features::CustomFeature* editedFeature =
mgr->GetEditedCustomFeature();
if (editedFeature == NULL)
{
UF_UI_open_listing_window();
UF_UI_write_listing_window("初始化中:第一次创建
\n");
}
else
{
NXOpen::Features::CustomFeature *cfFeature =
(NXOpen::Features::CustomFeature *)editedFeature;
NXOpen::Features::CustomFeatureData* cfData =
cfFeature->FeatureData();
PopulateUIFromCustomFeatureData(cfData);
UF_UI_open_listing_window();
UF_UI_write_listing_window("初始化中:二次编辑\n");
}
读取表达式的值:
Features::CustomExpressionAttribute *m_polygonSidesAttrib =
cfData->CustomExpressionAttributeByName("m_polygonSides");
剩余12页未读,继续阅读
资源评论
恩·艾克斯·红
- 粉丝: 1606
- 资源: 23
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功