How to convert this .net code to arx?

How to convert this .net code to arx?

D_D_K
Advocate Advocate
912 Views
1 Reply
Message 1 of 2

How to convert this .net code to arx?

D_D_K
Advocate
Advocate

Hi,

I'm trying to convert this code to arx, however at the end I can't get the dimstyletablerecord (it always returns NULL),

I don't know what I missed? 

 

 

 

 

ID dimid;
DST* dst; //dimstyletable
...
DSTBR* dstr = new DSTBR; //dimstyletablerecord
dstr->setName(L"Test");
ErrorStatus e= dst->add(dimid,dstr);
dst->close();
DSTBR* dimtab = nullptr; 
acdbOpenObject(dimtab, dimid, fR); <---dimtab return NULL.

 

 

 

 

0 Likes
Accepted solutions (1)
913 Views
1 Reply
Reply (1)
Message 2 of 2

Alexander.Rivilis
Mentor
Mentor
Accepted solution
//-----------------------------------------------------------------------------
//----- acrxEntryPoint.cpp
//-----------------------------------------------------------------------------
#include "StdAfx.h"
#include "resource.h"

//-----------------------------------------------------------------------------
#define szRDS _RXST("")

//-----------------------------------------------------------------------------
//----- ObjectARX EntryPoint
class CCreateDimStyleApp : public AcRxArxApp {

public:
  CCreateDimStyleApp() : AcRxArxApp() {}

  virtual AcRx::AppRetCode On_kInitAppMsg(void* pkt) {
    AcRx::AppRetCode retCode = AcRxArxApp::On_kInitAppMsg(pkt);
    return (retCode);
  }

  virtual AcRx::AppRetCode On_kUnloadAppMsg(void* pkt) {
    AcRx::AppRetCode retCode = AcRxArxApp::On_kUnloadAppMsg(pkt);
    return (retCode);
  }

  virtual void RegisterServerComponents() {  }

  static void RivilisCreateDimStyle()
  {
    AcDbDatabase* curDb = acdbCurDwg();
    AcDbObjectPointer<AcDbDimStyleTable> pTab(curDb->dimStyleTableId(), AcDb::kForRead);
    if (pTab.openStatus() != Acad::eOk) return;
    AcDbObjectId idDimStyle;
    if (pTab->has(L"Test"))
    {
      pTab->getAt(L"Test", idDimStyle);
    }
    else
    {
      if (pTab->upgradeOpen() == Acad::eOk)
      {
        AcDbDimStyleTableRecordPointer pDimStyle;
        pDimStyle.create(); pDimStyle->setName(L"Test");
        pTab->add(idDimStyle, pDimStyle);
      }
    }

    if (idDimStyle.isValid())
    {
      AcDbDimStyleTableRecordPointer pDimStyle(idDimStyle, AcDb::kForRead);
      if (pDimStyle.openStatus() == Acad::eOk)
      {
        curDb->setDimstyle(idDimStyle);
        curDb->setDimstyleData(pDimStyle);
      }
    }
  }
};

//-----------------------------------------------------------------------------
IMPLEMENT_ARX_ENTRYPOINT(CCreateDimStyleApp)

ACED_ARXCOMMAND_ENTRY_AUTO(CCreateDimStyleApp, Rivilis, CreateDimStyle, CreateDimStyle, ACRX_CMD_MODAL, NULL)

Відповідь корисна? Клікніть на "ВПОДОБАЙКУ" цім повідомленням! | Do you find the posts helpful? "LIKE" these posts!
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям!
На ваше запитання відповіли? Натисніть кнопку "ПРИЙНЯТИ РІШЕННЯ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ"


Alexander Rivilis / Александр Ривилис / Олександр Рівіліс
Programmer & Teacher & Helper / Программист - Учитель - Помощник / Програміст - вчитель - помічник
Facebook | Twitter | LinkedIn
Expert Elite Member

0 Likes