Как узнать текущие размеры динамического блока?

Автор Тема: Как узнать текущие размеры динамического блока?  (Прочитано 16459 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Если есть GeometricExtents, откуда тогда Exception в частности в случае с AttributeReference? Ошибка в чертеже?
Неплохо бы глянуть на чертеж, но подозреваю что проблема в том, что AttributeReference.TextString возвращает пустую строку, или строку состоящую из непечатаемых знаков, и соотвественно GeometricExtents не может вычислить габаритный контейнер и генерирует Exception.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн JohnJАвтор темы

  • ADN Club
  • **
  • Сообщений: 78
  • Карма: 1
  • c# autocad
  • Skype: johnj255work
Файл прикладываю.
Перехватил ошибку. Она возникает на элементе (не только на нём, но он попался первым):
- ent {Autodesk.AutoCAD.DatabaseServices.AttributeDefinition} Autodesk.AutoCAD.DatabaseServices.Entity {Autodesk.AutoCAD.DatabaseServices.AttributeDefinition}
- [Autodesk.AutoCAD.DatabaseServices.AttributeDefinition] {Autodesk.AutoCAD.DatabaseServices.AttributeDefinition} Autodesk.AutoCAD.DatabaseServices.AttributeDefinition
Constant false bool
FieldLength 0 int
Invisible false bool
IsMTextAttributeDefinition true bool
LockPositionInBlock true bool
- MTextAttributeDefinition {Autodesk.AutoCAD.DatabaseServices.MText} Autodesk.AutoCAD.DatabaseServices.MText
ActualHeight 8.9473684210526319 double
ActualWidth 27.467195385724587 double
Ascent 3.0 double
Attachment MiddleCenter Autodesk.AutoCAD.DatabaseServices.AttachmentPoint
BackgroundFill false bool
+ BackgroundFillColor "((Autodesk.AutoCAD.DatabaseServices.AttributeDefinition)(ent)).MTextAttributeDefinition.BackgroundFillColor" запустило исключение типа "Autodesk.AutoCAD.Runtime.Exception" Autodesk.AutoCAD.Colors.Color {Autodesk.AutoCAD.Runtime.Exception}
+ BackgroundScaleFactor "((Autodesk.AutoCAD.DatabaseServices.AttributeDefinition)(ent)).MTextAttributeDefinition.BackgroundScaleFactor" запустило исключение типа "Autodesk.AutoCAD.Runtime.Exception" double {Autodesk.AutoCAD.Runtime.Exception}
+ BackgroundTransparency "((Autodesk.AutoCAD.DatabaseServices.AttributeDefinition)(ent)).MTextAttributeDefinition.BackgroundTransparency" запустило исключение типа "Autodesk.AutoCAD.Runtime.Exception" Autodesk.AutoCAD.Colors.Transparency {Autodesk.AutoCAD.Runtime.Exception}
+ ColumnAutoHeight "((Autodesk.AutoCAD.DatabaseServices.AttributeDefinition)(ent)).MTextAttributeDefinition.ColumnAutoHeight" запустило исключение типа "Autodesk.AutoCAD.Runtime.Exception" bool {Autodesk.AutoCAD.Runtime.Exception}
+ ColumnCount "((Autodesk.AutoCAD.DatabaseServices.AttributeDefinition)(ent)).MTextAttributeDefinition.ColumnCount" запустило исключение типа "Autodesk.AutoCAD.Runtime.Exception" int {Autodesk.AutoCAD.Runtime.Exception}
+ ColumnFlowReversed "((Autodesk.AutoCAD.DatabaseServices.AttributeDefinition)(ent)).MTextAttributeDefinition.ColumnFlowReversed" запустило исключение типа "Autodesk.AutoCAD.Runtime.Exception" bool {Autodesk.AutoCAD.Runtime.Exception}
+ ColumnGutterWidth "((Autodesk.AutoCAD.DatabaseServices.AttributeDefinition)(ent)).MTextAttributeDefinition.ColumnGutterWidth" запустило исключение типа "Autodesk.AutoCAD.Runtime.Exception" double {Autodesk.AutoCAD.Runtime.Exception}
ColumnType NoColumns Autodesk.AutoCAD.DatabaseServices.ColumnType
+ ColumnWidth "((Autodesk.AutoCAD.DatabaseServices.AttributeDefinition)(ent)).MTextAttributeDefinition.ColumnWidth" запустило исключение типа "Autodesk.AutoCAD.Runtime.Exception" double {Autodesk.AutoCAD.Runtime.Exception}
Contents "ОАО\\P\"Организация\"" string
Descent 0.94736842105263153 double
+ Direction {(1,0,0)} Autodesk.AutoCAD.Geometry.Vector3d
FlowDirection ByStyle Autodesk.AutoCAD.DatabaseServices.FlowDirection
Height 0.0 double
LineSpaceDistance 5.0 double
LineSpacingFactor 1.0 double
LineSpacingStyle AtLeast Autodesk.AutoCAD.DatabaseServices.LineSpacingStyle
+ Location {(-25.0000000000005,7.5,0)} Autodesk.AutoCAD.Geometry.Point3d
+ Normal {(0,0,1)} Autodesk.AutoCAD.Geometry.Vector3d
Rotation 0.0 double
Text "ОАО\r\n\"Организация\"" string
TextHeight 3.0 double
+ TextStyleId {(8755381037328)} Autodesk.AutoCAD.DatabaseServices.ObjectId
TextStyleName "Standard" string
UseBackgroundColor false bool
Width 58.31001039757902 double
+ Статические члены
Preset false bool
Prompt "Наименование организации" string
Tag "NAMEORG" string
Verifiable false bool
+ base {Autodesk.AutoCAD.DatabaseServices.AttributeDefinition} Autodesk.AutoCAD.DatabaseServices.DBObject {Autodesk.AutoCAD.DatabaseServices.AttributeDefinition}
+ BlockId {(8755381152496)} Autodesk.AutoCAD.DatabaseServices.ObjectId
BlockName "*U196" string
CastShadows false bool
CloneMeForDragging true bool
CollisionType Solid Autodesk.AutoCAD.DatabaseServices.CollisionType
+ Color {ПОСЛОЮ} Autodesk.AutoCAD.Colors.Color
ColorIndex 256 int
+ CompoundObjectTransform "ent.CompoundObjectTransform" запустило исключение типа "Autodesk.AutoCAD.Runtime.Exception" Autodesk.AutoCAD.Geometry.Matrix3d {Autodesk.AutoCAD.Runtime.Exception}
+ Ecs {((1,0,0,0),(0,1,0,0),(0,0,1,0),(0,0,0,1))} Autodesk.AutoCAD.Geometry.Matrix3d
+ EdgeStyleId {(0)} Autodesk.AutoCAD.DatabaseServices.ObjectId
+ EntityColor {Autodesk.AutoCAD.Colors.EntityColor} Autodesk.AutoCAD.Colors.EntityColor
+ FaceStyleId {(0)} Autodesk.AutoCAD.DatabaseServices.ObjectId
ForceAnnoAllVisible false bool
+ GeometricExtents "ent.GeometricExtents" запустило исключение типа "Autodesk.AutoCAD.Runtime.Exception" Autodesk.AutoCAD.DatabaseServices.Extents3d {Autodesk.AutoCAD.Runtime.Exception}
+ Hyperlinks {Autodesk.AutoCAD.DatabaseServices.HyperLinkCollection} Autodesk.AutoCAD.DatabaseServices.HyperLinkCollection
IsPlanar true bool
Layer "0" string
+ LayerId {(8755381037312)} Autodesk.AutoCAD.DatabaseServices.ObjectId
Linetype "ByLayer" string
+ LinetypeId {(8755381037392)} Autodesk.AutoCAD.DatabaseServices.ObjectId
LinetypeScale 1.0 double
LineWeight ByLayer Autodesk.AutoCAD.DatabaseServices.LineWeight
Material "ByLayer" string
+ MaterialId {(8755381038528)} Autodesk.AutoCAD.DatabaseServices.ObjectId
MaterialMapper null Autodesk.AutoCAD.GraphicsInterface.Mapper
PlotStyleName "ByLayer" string
+ PlotStyleNameId {((0),PlotStyleNameByLayer)} Autodesk.AutoCAD.DatabaseServices.PlotStyleDescriptor
ReceiveShadows false bool
+ Transparency {(0)} Autodesk.AutoCAD.Colors.Transparency
Visible true bool
+ VisualStyleId {(0)} Autodesk.AutoCAD.DatabaseServices.ObjectId
Некоторые сведения об ошибке:
- exception {"eNullExtents"} System.Exception {Autodesk.AutoCAD.Runtime.Exception}
Source "Acdbmgd" string
StackTrace "   в Autodesk.AutoCAD.DatabaseServices.Entity.get_GeometricExtents()\r\n   в AutocadEngine.CadEngine.<>c__DisplayClass31.<GetBlockGeometricExtents>b__2f(Transaction tr) в d:\cad.blocks.cs:строка 477" string

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Похоже именно для определения атрибута (AttributeDefinition), а не для атрибута (AttributeReference)  GeometricExtents не работает.
Я в пустом чертеже вручную создал определение атрибута и включил его в блок A. Результат в окне MGDDBG:

А вот для атрибута всё нормально:
   
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение