请问一下,通过ElementPropertiesSetterPtr 如何设置 linestyle?
ElementPropertiesSetterPtr pPropsSetter = ElementPropertiesSetter::Create(); pPropsSetter->SetLinestyle
线型分系统线型(0~7)和自定义线型。如果是前者,直接用整数设置即可。
如果是后者,需要调用LineStyleManager::GetNumberFromName从自定义线型名得到这个对应的UInt32整数,然后再传入pPropsSetter->SetLinestyle中
Answer Verified By: T-kind
请问符工,使用LineStyleManager::GetNumberFromName如何获取自定义的线型;我用这种方法获取的线型的number结果值为-59,结果不对;我测试center线型,得到的结果是23452345,也是不对的;可否提供一段案例代码?
Work smart, not just work hard!
ElementPropertiesSetterPtr pPropsSetter = ElementPropertiesSetter::Create(); pPropsSetter->SetColor(COLOR_BYLEVEL); pPropsSetter->SetWeight(4); DgnFileP dgnFile = ISessionMgr::GetActiveDgnFile(); Int32 style = LineStyleManager::GetNumberFromName(L"{ -E- }", *dgnFile, true); if (style != STYLE_Invalid) pPropsSetter->SetLinestyle(style, NULL); pPropsSetter->Apply(eeh);
符工,我这边测试输出的线型结果是-9,也没有赋上属性
EditElementHandle ehRD; LineStringHandler::CreateLineStringElement(ehRD, NULL, pts, 5, false, *destModelP); ElementPropertiesSetterPtr pSetterRD = ElementPropertiesSetter::Create(); pSetterRD->SetColor(COLOR_BYLEVEL); pSetterRD->SetWeight(4); DgnFileP dgnFile = ISessionMgr::GetActiveDgnFile(); Int32 lineStyle = LineStyleManager::GetNumberFromName(L"{ -E- }", *dgnFile, true); printf("lineStyle is %d\n", lineStyle); if (lineStyle != STYLE_Invalid) { pSetterRD->SetLinestyle(lineStyle, NULL); } pSetterRD->Apply(shpEh); ehRD.AddToModel();
不好意思,是我是我写错了。。。。
pSetterRD->Apply(shpEh); ehRD.AddToModel();
应该改为
pSetterRD->Apply(ehRD); ehRD.AddToModel();
抱歉抱歉。。。。