41
ObjectARX / Alignment Point для AttributeDefinition. Разница между ObjectArx и .NET
« Последний ответ от exilerus 21-12-2025, 21:39:38 »Здравствуйте.
Перевожу своё приложение из .NET API для автокада в ObjectArx на Mac OS. Столкнулся с определенным вопросом, связанным с расположением AttributeDefinition
Данный кусок у меня создает AcDbAttribute
Данный код размещает все, как нужно, но Alignment Point сдвинут влево. То есть, если я надумаю руками поменять значение атрибута потом, он у меня сдвинется. Пример на картинке.

Подскажите, пожалуйста, есть ли возможность, чтобы при изменении значения атрибута текст был центрирован?
Второй вопрос, это почему у меня так много grip points? для сравнения этот же блокреференс из .NET? (На ширину внимания не обращайте).
Заранее спасибо и буду очень благодарен за любой пинок в правильном направлении.

Перевожу своё приложение из .NET API для автокада в ObjectArx на Mac OS. Столкнулся с определенным вопросом, связанным с расположением AttributeDefinition
Код - C++ [Выбрать]
- pAttDef->setTag(wtag.c_str());
- pAttDef->setLayer(wlayer.c_str());
- pAttDef->setTextString(wtext.c_str());
- pAttDef->setHeight(height);
- pAttDef->setVisibility(invisible ? AcDb::kInvisible : AcDb::kVisible);
- pAttDef->setLockPositionInBlock(true);
- pAttDef->setHorizontalMode(AcDb::kTextCenter);
- pAttDef->setAlignmentPoint(position);
Данный кусок у меня создает AcDbAttribute
Код - C++ [Выбрать]
- AcDbAttribute* pAtt = new AcDbAttribute();
- pAtt->setPropertiesFrom(pAttDef);
- AcGePoint3d attPos = pAttDef->position();
- attPos += pBlkRef->position().asVector();
- pAtt->setPosition(attPos);
- pAtt->setHeight(pAttDef->height());
- pAtt->setTag(pAttDef->tag());
- pAtt->setTextString(pAttDef->textString());
- Acad::ErrorStatus es = pBlkRef->appendAttribute(pAtt);
- if (es != Acad::eOk) {
- pAtt->erase();
- }
- pAtt->close();
Данный код размещает все, как нужно, но Alignment Point сдвинут влево. То есть, если я надумаю руками поменять значение атрибута потом, он у меня сдвинется. Пример на картинке.

Подскажите, пожалуйста, есть ли возможность, чтобы при изменении значения атрибута текст был центрирован?
Второй вопрос, это почему у меня так много grip points? для сравнения этот же блокреференс из .NET? (На ширину внимания не обращайте).
Заранее спасибо и буду очень благодарен за любой пинок в правильном направлении.

Последние сообщения