Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: Алексей (IdeaSoft) от 15-11-2016, 21:31:31

Название: Задать масштаб стилю линии
Отправлено: Алексей (IdeaSoft) от 15-11-2016, 21:31:31
Всем привет!
Есть стиль линии знаю его имя.
Помогите дописать функцию, цель которой
изменить глобальный масштаб стиля линии.

Код - 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
Название: Re: Задать масштаб стилю линии
Отправлено: Алексей (IdeaSoft) от 15-11-2016, 22:14:39
Я попробовал
сделать так
...
Rec.SetShapeScaleAt(0, ScaleVal) ' для образа 1 косой черты
Rec.SetShapeScaleAt(1, ScaleVal) ' для образа 2 косой черты
Rec.SetShapeScaleAt(2, ScaleVal) ' для образа 3 косой черты
...

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

 В результате стиль изменяет черточки так, как показано на рисунке ниже
Название: Re: Задать масштаб стилю линии
Отправлено: Александр Ривилис от 15-11-2016, 22:17:37
Помогите дописать функцию, цель которой
изменить глобальный масштаб стиля линии.
Глобальный масштаб к конкретному стилю линии не имеет никакого отношения. Глобальный масштаб - это значение системной переменной LTSCALE (http://help.autodesk.com/cloudhelp/2016/RUS/AutoCAD-Core/files/GUID-88787AE5-957B-483C-9EEF-51564114181F.htm). Вот её значение и меняй.

(https://adn-cis.org/forum/proxy.php?request=http%3A%2F%2Fimg-fotki.yandex.ru%2Fget%2F176331%2F7842324.7%2F0_144bca_5ab47f5c_orig.png&hash=2a13517a629a5dbb4691faea7221849d)

(https://adn-cis.org/forum/proxy.php?request=http%3A%2F%2Fimg-fotki.yandex.ru%2Fget%2F169995%2F7842324.7%2F0_144bcc_2f3d5f94_orig.png&hash=1d3a4e9fbf2ab0c0b3c7f2b614910c4f)

Название: Re: Задать масштаб стилю линии
Отправлено: Алексей (IdeaSoft) от 15-11-2016, 22:26:33
Ах вот оно что, тогда понятно!
Эти глобальный и текущий относятся сразу ко всем стилям.
Тогда понятно.
А я же индивидуально пытаюсь задать для конкретного стиля.
Название: Re: Задать масштаб стилю линии
Отправлено: Алексей (IdeaSoft) от 15-11-2016, 22:27:26
Спасибо больше! Вопрос решен.