| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > ACAD: Где хранятся координаты точек начала и конца объекта IAcadDimRotated

ACAD: Где хранятся координаты точек начала и конца объекта IAcadDimRotated

Ответ
Поиск в этой теме
Непрочитано 25.02.2009, 17:29 #1
ACAD: Где хранятся координаты точек начала и конца объекта IAcadDimRotated
Main Urod
 
Регистрация: 20.01.2009
Сообщений: 1,170

Сейчас занимаюсь тем, что пытаюсь привести полученный от субподрядчиков акадовский файл к рабочему виду, т.к. толи у них там чертить не умеют, толи ктото специально привел файл к виду, чтобы в нем работать было нельзя. Написал програмку, она почти все привела к рабочему виду. Остался объект "IAcadDimRotated". Проблема в том, что я никак не могу найти, координаты точек начала и конца выносных линий. Кто нибудь может подсказать, где они находятся?

Свойства объекта как их vlax-dump-object выдает:

Код:
[Выделить все]
; IAcadDimRotated: Интерфейс AutoCAD для работы с повернутыми размерами.
; Значения свойств:
;   AltRoundDistance = 0.0
;   AltSuppressLeadingZeros = 0
;   AltSuppressTrailingZeros = 0
;   AltSuppressZeroFeet = -1
;   AltSuppressZeroInches = -1
;   AltTextPrefix = ""
;   AltTextSuffix = ""
;   AltTolerancePrecision = 2
;   AltToleranceSuppressLeadingZeros = 0
;   AltToleranceSuppressTrailingZeros = 0
;   AltToleranceSuppressZeroFeet = -1
;   AltToleranceSuppressZeroInches = -1
;   AltUnits = 0
;   AltUnitsFormat = 2
;   AltUnitsPrecision = 2
;   AltUnitsScale = 25.4
;   Application (RO) = #<VLA-OBJECT IAcadApplication 00d73d3c>
;   Arrowhead1Block = "Oblique"
;   Arrowhead1Type = 5
;   Arrowhead2Block = "Oblique"
;   Arrowhead2Type = 5
;   ArrowheadSize = 1.2
;   DecimalSeparator = "."
;   DimensionLineColor = 0
;   DimensionLineExtend = 0.0
;   DimensionLinetype = "Поблоку"
;   DimensionLineWeight = -2
;   DimLine1Suppress = 0
;   DimLine2Suppress = 0
;   DimLineInside = 0
;   Document (RO) = #<VLA-OBJECT IAcadDocument 014652c8>
;   ExtensionLineColor = 0
;   ExtensionLineExtend = 0.18
;   ExtensionLineOffset = 0.0625
;   ExtensionLineWeight = -2
;   ExtLine1Linetype = "Поблоку"
;   ExtLine1Suppress = 0
;   ExtLine2Linetype = "Поблоку"
;   ExtLine2Suppress = 0
;   ExtLineFixedLen = 0.18
;   ExtLineFixedLenSuppress = 0
;   Fit = 3
;   ForceLineInside = 0
;   FractionFormat = 0
;   Handle (RO) = "18AA7F"
;   HasExtensionDictionary (RO) = 0
;   HorizontalTextPosition = 0
;   Hyperlinks (RO) = #<VLA-OBJECT IAcadHyperlinks 10219c7c>
;   Layer = "надписи"
;   LinearScaleFactor = 1.0
;   Linetype = "Continuous"
;   LinetypeScale = 1.0
;   Lineweight = -1
;   Material = "ByLayer"
;   Measurement (RO) = 7.59962
;   Normal = (0.0 0.0 1.0)
;   ObjectID (RO) = 2130557304
;   ObjectName (RO) = "AcDbRotatedDimension"
;   OwnerID (RO) = 2130316560
;   PlotStyleName = "Цвет_2"
;   PrimaryUnitsPrecision = 1
;   Rotation = 0.0
;   RoundDistance = 0.5
;   ScaleFactor = 1.0
;   StyleName = "Standard"
;   SuppressLeadingZeros = 0
;   SuppressTrailingZeros = 0
;   SuppressZeroFeet = -1
;   SuppressZeroInches = -1
;   TextColor = 0
;   TextFill = 0
;   TextFillColor = 0
;   TextGap = 0.09
;   TextHeight = 2.3
;   TextInside = 0
;   TextInsideAlign = 0
;   TextMovement = 0
;   TextOutsideAlign = 0
;   TextOverride = ""
;   TextPosition = (7.55606e+006 6.16608e+006 7.17)
;   TextPrefix = ""
;   TextRotation = 0.0
;   TextStyle = "Standard"
;   TextSuffix = ""
;   ToleranceDisplay = 0
;   ToleranceHeightScale = 1.0
;   ToleranceJustification = 1
;   ToleranceLowerLimit = 0.0
;   TolerancePrecision = 1
;   ToleranceSuppressLeadingZeros = 0
;   ToleranceSuppressTrailingZeros = 0
;   ToleranceSuppressZeroFeet = -1
;   ToleranceSuppressZeroInches = -1
;   ToleranceUpperLimit = 0.0
;   TrueColor = #<VLA-OBJECT IAcadAcCmColor 107708d0>
;   UnitsFormat = 2
;   VerticalTextPosition = 1
;   Visible = -1
Просмотров: 2832
 
Непрочитано 25.02.2009, 17:47
#2
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,992
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Посмотри, может здесь чего подберешь: Вертикальная выноска линейного размера
Точки вычисляются. Фрагмент кода из #62
Код:
[Выделить все]
 (setq dim (vlax-vla-object->ename dimobj))
      (setq ed (entget dim))
      (setq pt1 (cdr(assoc 10 ed)))  ;_Конечная точка
      (setq pt3 (cdr(assoc 13 ed)))
      (setq ptc (cdr(assoc 14 ed)))
      (if (member '(100 . "AcDbRotatedDimension") ed)
         (setq pt_text (cdr(assoc 50 ed)))
         (setq pt_text (angle pt3 ptc))
	)
      (setq pt2 (inters pt1 (polar pt1 pt_text 1e3)        ;_Начальная точка
			pt3 (polar pt3 (+ pt_text (* 0.5 pi)) 1e3)
			nil
			)
	    )
*** Добавлено
Вот нашел у себя
Код:
[Выделить все]
(defun dim-point (dim / dimobj pt2 pt1 pt3 pt4 pt_text ed)
  (if (= (type dim) 'vla-object)
    (setq dim (vlax-vla-object->ename dim))
  ) ;_ end of if
  (setq dimobj (vlax-ename->vla-object dim))
  (if (and
        (vlax-write-enabled-p dimobj)
        (wcmatch (vla-get-objectname dimobj)
                 "AcDbAlignedDimension,AcDbRotatedDimension"
        ) ;_ end of wcmatch
      ) ;_ end of and
    (progn
      (setq ed (entget dim))
      (setq pt2 (cdr(assoc 10 ed)))  ;_Конечная точка
      (setq pt3 (cdr(assoc 13 ed)))
      (setq pt4 (cdr(assoc 14 ed)))
      (if (member '(100 . "AcDbRotatedDimension") ed)
         (setq pt_text (cdr(assoc 50 ed)))
         (setq pt_text (angle pt3 pt4))
	)
      (setq pt1 (inters pt2 (polar pt2 pt_text 1e3)        ;_Начальная точка
			pt3 (polar pt3 (+ pt_text (* 0.5 pi)) 1e3)
			nil
			)
	    )
      (list pt1 pt2 pt3 pt4)
    ) ;_ end of progn
  ) ;_ end of if
)
Возвращает список точек размера. Какие, думаю разберешься
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > ACAD: Где хранятся координаты точек начала и конца объекта IAcadDimRotated

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Где хранятся координаты полки выноски ОТНОСИТЕЛЬНО ТЕКСТА? kp+ Программирование 2 31.07.2006 09:55