Выноска MLeader

Автор Тема: Выноска MLeader  (Прочитано 8052 раз)

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

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

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

  • ADN OPEN
  • Сообщений: 36
  • Карма: 0
Выноска MLeader
« : 16-05-2015, 20:16:30 »
Добрый день!
Александр Ривилис, просьба, подробнее об BlockPosition...
Сыллка или пример.

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Выноска MLeader
« Ответ #1 : 16-05-2015, 20:19:36 »
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 36
  • Карма: 0
Re: Выноска MLeader
« Ответ #2 : 16-05-2015, 21:56:34 »
 Александр Ривилис, я правильно понимаю, что задать смещение выноски можно только если она содержит блок?

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Выноска MLeader
« Ответ #3 : 16-05-2015, 22:01:53 »
Нет. Если выноска содержит MText, то нужно использовать MLeader.TextLocation
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 36
  • Карма: 0
Re: Выноска MLeader
« Ответ #4 : 16-05-2015, 22:11:01 »
Да, выноска содержит Mtext
А каким параметром задать лев.\прав смещение
MLeader.TextLocation = ? (vba)

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Выноска MLeader
« Ответ #5 : 16-05-2015, 22:20:11 »
(vba)
А причем здесь VBA? Этот раздел как называется?
В ActiveX/COM модели AutoCAD (и соотвественно в VBA) у MLeader нет свойства TextLocation.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 36
  • Карма: 0
Re: Выноска MLeader
« Ответ #6 : 16-05-2015, 22:34:44 »
Не хотел создавать похожую тему...
Если возможно изменить смещение выноски на vba, то я создам новую тему В ActiveX/COM модели AutoCAD (и соотвественно в VBA)
Если нет, то поставлю точку.

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Выноска MLeader
« Ответ #7 : 16-05-2015, 22:40:37 »
В VBA для MLeader есть свойство TextJustify. Пример из документации:
Код - Visual Basic [Выбрать]
  1. Sub Example_TextManipulation()
  2.     Dim oML As AcadMLeader
  3.     Dim points(0 To 14) As Double
  4.  
  5.     ' Define the leader points
  6.    points(0) = 1: points(1) = 1: points(2) = 0
  7.     points(3) = 1: points(4) = 2: points(5) = 0
  8.     points(6) = 2: points(7) = 2: points(8) = 0
  9.     points(9) = 3: points(10) = 2: points(11) = 0
  10.     points(12) = 4: points(13) = 4: points(14) = 0
  11.     Dim i As Long
  12.     Set oML = ThisDrawing.ModelSpace.AddMLeader(points, i)
  13.    
  14.     oML.TextLeftAttachmentType = acAttachmentBottomLine
  15.     oML.TextRightAttachmentType = acAttachmentMiddleOfBottom
  16.     oML.TextBackgroundFill = False
  17.     oML.TextDirection = acLeftToRight
  18.     oML.TextHeight = 2.3
  19.     oML.TextJustify = acAttachmentPointMiddleLeft
  20.     oML.TextLineSpacingDistance = 2.4
  21.     oML.TextLineSpacingFactor = 1.2
  22.     oML.TextLineSpacingStyle = acLineSpacingStyleExactly
  23.     oML.TextWidth = 7.4
  24.  
  25. End Sub

Варианты значений TextJustify: http://help.autodesk.com/cloudhelp/2016/ENU/AutoCAD-ActiveX/files/GUID-FB4F61A2-86F9-4174-8B4B-29E8DF255CE7.htm
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 36
  • Карма: 0
Re: Выноска MLeader
« Ответ #8 : 17-05-2015, 06:36:22 »
В моем случае свойство TextJustify работает на выравнивание текста, на полке выноски, по лев.\прав.\центр
эксперементировал с выноской созданой кадом и смотрел в Watches на свойства см. скриншот







Текст выноски всегда находится с лева от выноски.
Мне нужно управлять расположением текста относительно самой выноски

Отмечено как Решение Vladimir 17-05-2015, 14:25:33

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Выноска MLeader
« Ответ #9 : 17-05-2015, 13:48:22 »
Похоже это единственное, чего можно добиться:



Управляется при помощи метода MLeader.SetDoglegDirection:

Код - Visual Basic [Выбрать]
  1. Sub MLeader_TextDirection()
  2.     Dim oML As AcadMLeader
  3.     Dim points(0 To 5) As Double
  4.     points(0) = 0: points(1) = 0: points(2) = 0
  5.     points(3) = 10: points(4) = 20: points(5) = 0
  6.     Dim i As Long
  7.     Set oML = ThisDrawing.ModelSpace.AddMLeader(points, i)
  8.     oML.TextString = "12345"
  9.     oML.TextLeftAttachmentType = acAttachmentMiddle
  10.     oML.TextRightAttachmentType = acAttachmentMiddle
  11.     oML.TextBackgroundFill = False
  12.     oML.TextDirection = acLeftToRight
  13.     oML.TextHeight = 2.3
  14.     oML.TextJustify = acAttachmentPointMiddleCenter
  15.     oML.TextLineSpacingDistance = 2.4
  16.     oML.TextLineSpacingFactor = 1.2
  17.     oML.TextLineSpacingStyle = acLineSpacingStyleExactly
  18.     oML.TextWidth = 7.4
  19.     oML.DogLegged = True
  20.     oML.DoglegLength = 1.3
  21.     ' Управляем тем, с какой стороны будет текст
  22.    Dim vector(2) As Double
  23.     vector(0) = -1 ' 1 - текст справа, -1 - текст слева
  24.    oML.SetDoglegDirection 0, vector
  25. End Sub
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Выноска MLeader
« Ответ #10 : 17-05-2015, 14:40:09 »
Один вопрос - одна тема. Второй вопрос здесь: Добавление к MLeader еще одной выноски
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение