Как создать новый тип линии или загрузить стандартный или из своего файла?

Автор Тема: Как создать новый тип линии или загрузить стандартный или из своего файла?  (Прочитано 2923 раз)

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

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

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

  • ADN OPEN
  • Сообщений: 41
  • Карма: 0
Задаю тип линии примитиву

Код - C# [Выбрать]
  1. Polyline.Linetype="ACAD_ISO02W100";

При старте AutoCAD тип линии "ACAD_ISO02W100" по умолчанию не загружается, и соответственно возникает исключение.

Можно ли создать программно, например штриховую линию "--------" или такую "--x--x--x--".?
И если нет как их загрузить из файла *.lin?

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

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Здесь два вопроса. Перефразирую их:
1. Можно ли загрузить тип линии из файла?
2. Можно ли создать тип линии "налету" без файла типов линий?
На оба вопроса ответ "ДА".
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Как загрузить тип линии из файла? Для этой цели можно использовать метод: Database.LoadLineTypeFile
Первый параметр - имя типа линии, второй - имя файла/путь к файлу.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Отмечено как Решение Александр Ривилис 20-11-2018, 23:26:34

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

  • ADN OPEN
  • Сообщений: 41
  • Карма: 0
Спасибо Александр , Database.LoadLineTypeFile помогло
Код - C# [Выбрать]
  1. using (Transaction trAdding = dbCurrent.TransactionManager.StartTransaction())
  2.             {
  3. LinetypeTable ltt = (LinetypeTable)trAdding.GetObject(dbCurrent.LinetypeTableId, OpenMode.ForRead);
  4.  
  5.                 if (!ltt.Has("ACAD_ISO02W100"))
  6.                 {
  7.                     dbCurrent.LoadLineTypeFile("ACAD_ISO02W100", "acadiso.lin");
  8.                 }
  9.                    trAdding.Commit();
  10.             }