SelectionSetManager::GetManager().AddElement当同时加入参考模型元素和当前模型元素,再通过displayset set selection独立显示时,只能独立显示当前模型元素,要怎么解决?
您添加元素以后先不要通过displayset set selection设置独立显示,看参考中的元素是否正确添加到选择集中了。
老师你好,参考模型元素和当前模型元素加入选择集后都能高亮,但之后若加入以下代码,执行时第一次参考模型元素与当前模型元素都能独立显示,第二次只独立显示当前模型元素,第三次参考模型元素与当前模型元素都能独立显示,以此间隔出现。
mdlInput_sendSynchronizedKeyin(L"displayset set selection", 0, INPUTQ_HEAD, NULL); mdlInput_sendSynchronizedKeyin(L"rebar select singlerebar", 0, INPUTQ_HEAD, NULL); mdlView_turnOff(1); mdlView_turnOn(1); WString wname = L"view set model "; wname = wname + model2D->GetModelInfoCP()->GetName() + L" 2"; mdlInput_sendSynchronizedKeyin(wname.GetWCharCP(), 0, INPUTQ_HEAD, NULL); mdlInput_sendSynchronizedKeyin(L"window tile", 0, INPUTQ_HEAD, NULL);
还是不行,一开始进来我在2D模型操作,接着激活3D模型,再平铺两个视图显示(采取以下代码平铺),再将3D模型下的墙和钢筋元素加入到选择集中,最后代码键入命令来独立显示选择集中的钢筋和墙。最终的效果是平铺了两个视口,但3D模型模型没有变化,2D模型被独立显示了(由于加入到选择集的是3D的元素,所有独立显示后的2D模型没有任何元素)
mdlView_turnOff(1); mdlView_turnOn(1); WString wname = L"view set model "; wname = wname + model2D->GetModelInfoCP()->GetName() + L" 2"; mdlInput_sendSynchronizedKeyin(wname.GetWCharCP(), 0, INPUTQ_HEAD, NULL); mdlInput_sendSynchronizedKeyin(L"window tile", 0, INPUTQ_HEAD, NULL);
打开多个视图窗口时,只有一个是激活的,您发送的Displayset的keyin是针对active view的,您可以手动发送这个命令试试看,就明白其中的效果了。选择集也是设置的active view,如果两个视图窗口的model不是同一个,那么切换active view时,前一个active view中的选择集就被清空了。
Answer Verified By: 卫 成
如果当前active view中墙是参考进来的,在该墙上配置钢筋(钢筋配置在当前的active view中,不是像墙一样是参考进来的),同时加入选择集,请问他们都能够高亮吗
可以的。
请问命令view set model (model名称 视图号2) 这个命令会把视图2激活吗