各位老师好:我现在有个问题想请教大家
问题场景:我想实现在PS里创建的墙梁板柱等基础构件可以通过选择实体、然后选择面的操作
起初我在ABD CE里使用的是LocateSubEntityTool方法,可以拾取CE里的墙 柱等,但是程序放到PS里就不可以了,但是在PS里创建的拉伸体可以实现操作,
请问这块有什么办法可以解决吗,或者有什么例子可供参考吗?提前先谢谢各位老师了,新手,还望不吝赐教~
请提供一个测试DGN供分析。Bentley各专业软件生成的虽然都是DGN,但都做了一些自己的定制,需要分析后才能答复您的问题。
psTest.dgn符老师,你好!附件是我上传的dgn,请查收,里面的墙和柱子都不能拾取,使用Ribbon自带的提取工具也不可以,提示是Element not valid for tool 与使用LocateSubEntityTool时提示的一样,谢谢符老师!
您提供的模型,墙和柱子用MS看都是106类型,这样是没办法识别该元素是solid的,就相当于您这个模型是在专业软件(类似OBD、OPM等)创建的,如果用别的专业软件打开就是106类型 是没办法识别的。
那是不是说这类的就没办法处理了呢?
您可以试试用Drop Element工具,仅勾选Application Elements选项对106元素打散一下即可。
那张老师 代码这块要实现的话有什么方法吗
试试使用DraftingElementSchema::ToDroppedElement进行Drop。
好的 谢谢张老师,非常感谢,还有一个问题,就是我使用LocateSubEntityTool时,我可以得到选择某一个面的点吗,我看SDK里有一个_GetAnchorPoint但是通过这个得到的点再去求出面上的最近点时SolidUtil::ClosestPointToFace总是失败,后来我看这个锚点好像是第一次选择solid时的点,如果我想得到最近点击的面上的点的话 这块我该怎么处理?