Задать масштаб стилю линии

Автор Тема: Задать масштаб стилю линии  (Прочитано 5133 раз)

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

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Всем привет!
Есть стиль линии знаю его имя.
Помогите дописать функцию, цель которой
изменить глобальный масштаб стиля линии.

Код - vb.net [Выбрать]
  1.    
  2.  
  3. Imports CAD_DBS = Autodesk.AutoCAD.DatabaseServices
  4.  
  5. Public Shared Sub acadnet_SetScale_lineType(ByRef db As CAD_DBS.DataBase, _
  6.                                                                     ByVal ScaleVal As Double, _
  7.                                                                     ByVal LineStyleName As String)
  8.        Using tr As CAD_DBS.Transaction = db.TransactionManager.StartTransaction
  9.                 ' таблица типов линий
  10.                 Dim ls As CAD_DBS.LinetypeTable = tr.GetObject(db.LinetypeTableId, CAD_DBS.OpenMode.ForWrite)
  11.                 ' если тип линии с имением уже есть в таблице
  12.                 If ls.Has(LineStyleName) Then
  13.                     Dim Rec As CAD_DBS.LinetypeTableRecord = _
  14.                         tr.GetObject(ls.Item(LineStyleName), CAD_DBS.OpenMode.ForWrite, False)
  15.                     Dim index As Integer = ??? этот индекс я думаю как-то связан с картинкой, которую я прикрепляю
  16.                     ' index = 0 наверное глобальный масштаб, index=1 текущий масштаб
  17.                     Rec.SetShapeScaleAt(index, ScaleVal)
  18.                 End If
  19.                 tr.Commit()
  20.             End Using
  21.    
  22.  End Sub
« Последнее редактирование: 15-11-2016, 22:12:21 от Алексей (IdeaSoft) »

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Re: Задать масштаб стилю линии
« Ответ #1 : 15-11-2016, 22:14:39 »
Я попробовал
сделать так
...
Rec.SetShapeScaleAt(0, ScaleVal) ' для образа 1 косой черты
Rec.SetShapeScaleAt(1, ScaleVal) ' для образа 2 косой черты
Rec.SetShapeScaleAt(2, ScaleVal) ' для образа 3 косой черты
...

Это оказалось совсем не то что я ожидал
В результате уменьшаются или увеличиваются все косые 3 черточки типа линии.

 В результате стиль изменяет черточки так, как показано на рисунке ниже

Отмечено как Решение Алексей (IdeaSoft) 15-11-2016, 22:27:40

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Задать масштаб стилю линии
« Ответ #2 : 15-11-2016, 22:17:37 »
Помогите дописать функцию, цель которой
изменить глобальный масштаб стиля линии.
Глобальный масштаб к конкретному стилю линии не имеет никакого отношения. Глобальный масштаб - это значение системной переменной LTSCALE. Вот её значение и меняй.





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

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Re: Задать масштаб стилю линии
« Ответ #3 : 15-11-2016, 22:26:33 »
Ах вот оно что, тогда понятно!
Эти глобальный и текущий относятся сразу ко всем стилям.
Тогда понятно.
А я же индивидуально пытаюсь задать для конкретного стиля.

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Re: Задать масштаб стилю линии
« Ответ #4 : 15-11-2016, 22:27:26 »
Спасибо больше! Вопрос решен.