如题,
无法使用ABD系统的工具,请问怎么解决啊?
你的这个门是如何生成的?
请问您的工具是如何放置的?都调用了哪些ABD API函数?
用PCS建模生成PAZ,然后用ABD的SDK读取参数化PAZ文件放置的
m_cell = mdlTFAdfCellList_constructFromAdxFile3(pPazFile); TFAdfCell *pCell = mdlTFAdfCellList_getAdfCell(m_cell); mdlTFAdfCell_setModelRef(pCell, m_model); mdlTFAdfCell_initScaleAdf2UOR(pCell); mdlTFAdfCell_synchronize(pCell); mdlTFModelRef_saveAdfCell(m_model, pCell) //然后设置数据组
关键代码如上所示,放置之后无法使用ABD系统的门窗工具,之后发现用ABD的门窗工具放置的模型的Linkage属性个数比我的要多1个,不知道是不是这个不同
观察正确,就是因为直接放置这种cell,缺少DataGroup,ABD不能识别为组件。
正确流程应该是,建立DataGroup item,自定义组件,在门窗哪一类别中增加一个item,这个过程不需要写代码,参考帮助文件进行workspace的配置即可。但是用户使用你的组件,也要带这个配置。
然后通过调用一下一些函数来放置这个组件:
1 mdlTFCatalog_getCatalogItemByNames,通过名字得到catalogitem,也就是你自定义的那个组件的定义。
2 mdlTFLoadable_initFromCatalogItem,通过catalog item, 得到一个Loadable对象。
3 mdlTFLoadable_getElmDscr, 使用这个函数得到对应的element descr
4 mdlElmdscr_add, 将上一步得到的element加入到文件中。
以上是简单的流程,Loadable系列的函数封装了DataGroup的操作。