许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  Creo二次开发:自动标注球标功能实现

Creo二次开发:自动标注球标功能实现

阅读数 23
点赞 0
article_banner

基本思路

  1. 检索所有模型尺寸
  2. 按照位置对尺寸进行排序
  3. 检索球标模型
  4. 遍历尺寸,根据尺寸类型和占位宽度计算球标和尺寸的相对位置
  5. 创建顺序球标

程序实现

  1. 检索尺寸前先判断当前环境是否为绘图环境,如果不是则直接退出。下面函数可以判断当前环境。
int CheckEnv(int count, ...)
{
    pfcSession_ptr session = pfcGetProESession();
    pfcModels_ptr Models = session->ListModels();
    pfcModel_ptr Model = session->GetCurrentModel();
    pfcModelType ModelType;
    int EnvFlag = 0;
    if (Models->getarraysize() == 0 || Model == NULL)
    {
        session->UIDisplayLocalizedMessage(MSGFILE, "Model is not found in current session!", NULL);
    }
    else if (count == 0)
    {
        if (Model->GetType() == pfcMDL_DRAWING)
        {
            EnvFlag = 1;
        }
    }
    else
    {
        va_list ap;
        va_start(ap, count);
        for (int i = 0; i < count; i++)
        {
            if (Model->GetType() == va_arg(ap, pfcModelType))
            {
                EnvFlag = 1;
                break;
            }
        }
        va_end(ap);
    }
    if (EnvFlag == 0)
    {
        LOG(LOG_WARNING) << "ModelType is error!";
        session->UIDisplayLocalizedMessage(MSGFILE, "ModelType is error!", NULL);
    }
    return EnvFlag;
}
  1. 当图纸为零件图时,可以直接检索尺寸。
    pfcModelItems_ptr mdlitems = mdl->ListItems(pfcITEM_DIMENSION);

        当图纸为组件图时,需要先获取当前图纸中的所有零件,再获取零件的相应尺寸
pfcModels_ptr Models = drawing->ListModels();
//获取组件图中的尺寸
for (xint i = 0; i < Models->getarraysize(); i++)
{
    Dimensions->insertseq(0, drawing->ListShownDimensions(Models->get(i), pfcModelItemType_nil));
}
  1. 检索到的尺寸可以存放在 pfcDimension2Ds_ptr 对象中,为方便后续计算,这里创建 DimensionStruct 类。检索到的尺寸初始化为 DimensionStruct 类的对象,并存放在
    免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删


相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空