只是一个用Bricscad和Drx 3.05(后来改名为Tx)快速否决样本。
display cords图层上的点被否决以显示它们的坐标。
请参阅代码、图片和附件
appload DrxOverrule.tx以运行
- bool OverRuleSample::onFilteredLayer(const OdDbPoint *point) const
- {
- if(point)
- {
- OdDbLayerTableRecordPtr pLayer = point->layerId().safeOpenObject();
- return _tcsicmp(pLayer->getName(),_T("DisplayCords")) == 0;
- }
- return false;
- }
- double OverRuleSample::getTextHeight(const OdDbPoint *point) const
- {
- if(point)
- {
- const OdDbDatabase * pDatabase = point->database();
- OdDbTextStyleTableRecordPtr pStyle = pDatabase->getTextStyleStandardId().safeOpenObject();
- return pStyle->textSize();
- }
- return 0.0;
- }
- bool OverRuleSample::worldDraw( const OdGiDrawable *drawable, OdGiWorldDraw *wd )
- {
- OdDbPoint *point = OdDbPoint::cast(drawable);
- if(point && onFilteredLayer(point))
- {
- const double tsize = getTextHeight(point);
- const OdGePoint3d pnt = point->position();
- m_text.format(_T("X=%f Y=%f Z=%f"),pnt.x,pnt.y,pnt.z);
- wd->geometry().text(pnt,point->normal(),point->normal().perpVector(),tsize,tsize*m_text.getLength(),0.0,m_text);
- }
- return OdGiDrawableOverrule::worldDraw(drawable,wd);
- }
- bool OverRuleSample::isApplicable( const OdRxObject* pOverruledSubject ) const
- {
- return true;
- }
hd1tme02qaz.PNG
本帖以下内容被隐藏保护;需要你回复后,才能看到! 游客,如果您要查看本帖隐藏内容请 回复 |