1.什么是配置表?
中望3D中配置表可以表示所有方程式拥有特定的值的状态,方程式除了可以使用方程式管理器修改还可以通过配置表修改。配置表中的一种配置可以同时设置全部的方程式,配置表中可包含多个配置,可以达到切换配置即修改方程式的效果。
2.配置表在ZW3D中的位置
工具-》配置表
3.ZW3D中配置表的代码操作
//添加配置
int idConfiguration = 0;
char configurationName[] = "配置_New";//配置名称
char configurationDescription[] = "配置_New的描述";//配置描述
ZF_CALL(cvxPartCfgTblAdd(configurationName, configurationDescription, &idConfiguration));
WriteMessage("已添加配置: 配置名称[%s] 配置描述[%s]", configurationName, configurationDescription);
//删除配置
暂无
//获取当前激活的配置
int idActiveConfiguration = 0;
ZF_CALL(cvxPartInqActiveCfg(&idActiveConfiguration));
char nameActiveConfiguration[128];
ZF_CALL(cvxEntName(idActiveConfiguration, nameActiveConfiguration, sizeof(nameActiveConfiguration)));
WriteMessage("当前激活的配置为【%s】", nameActiveConfiguration);
//激活配置
ZF_CALL(cvxPartCfgActivate(idConfiguration));
WriteMessage("激活配置【%s】", configurationName);
//为所有配置添加标准属性_颜色
/*svxColor color = {0,0,255};
ZF_CALL(cvxPartCfgTblColorSet(-1, idActiveConfiguration, color));
ZF_CALL(cvxPartCfgTblColorSet(0, idActiveConfiguration, color));*/
//获取配置信息
svxPartCfgInfo* partCfgInfo = NULL;
ZF_CALL(cvxPartInqCfgTblInfos(idConfiguration, &partCfgInfo));
//cvxPartInqCfgTblInfosByName
WriteMessage("配置【%d】的名称 = %s", idConfiguration, partCfgInfo->ConfigName);
WriteMessage("配置【%d】的序号 = %d", idConfiguration, partCfgInfo->ConfigId);
WriteMessage("配置【%d】中表达式的数量 = %d", idConfiguration, partCfgInfo->CntVar);
//设置配置信息
ZF_CALL(cvxCfgTblInfosSet(idConfiguration, partCfgInfo));
ZF_VOID(cvxPartFreeCfgTbl(&partCfgInfo));//释放内存
//设置配置中的属性
const int attrNumber = 2;
evxAtItemId items[attrNumber] = { evxAtItemId::VX_AT_DESCRIPT,evxAtItemId::VX_AT_DESIGNER};//要修改的标准属性
svxAttribute attrs[attrNumber] = {};
strcpy_s(attrs[0].data,"描述");//属性值
strcpy_s(attrs[1].data,"设计者");//属性值
ZF_CALL(cvxPartCfgTblAttrSet(0, idConfiguration, attrNumber, items, attrs));
//设置配置中的变量
svxVariable var = { 0 };
strcpy_s(var.Name, "L");//变量名
ZF_CALL(cvxPartVarGet(&var));//获取变量信息
strcpy_s(var.Expression, "19");//修改值
ZF_CALL(cvxPartCfgTblVarsSet(0/*标记-修改*/, idConfiguration, 1, &var));//设置配置中的变量
WriteMessage("设置配置表中的变量");
WriteMessage("--Name = %s", var.Name);
WriteMessage("--Expression = %s", var.Expression);
//获取所有配置
int configNumber = 0;
int* pConfigIds = NULL;
ZF_CALL(cvxPartInqCfgList(&configNumber, &pConfigIds));
WriteMessage("当前零件共有【%d】个配置", configNumber);
//cvxPartInqCfgListByName
ZF_VOID(cvxMemFree((void**)&pConfigIds));