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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Проверка отображения типа линий при заданном масштабе типа линий и длине примитива

Проверка отображения типа линий при заданном масштабе типа линий и длине примитива

Ответ
Поиск в этой теме
Непрочитано 13.06.2016, 10:20 #1
Проверка отображения типа линий при заданном масштабе типа линий и длине примитива
kp+
 
идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,091

Как отследить, достаточна ли длина примитива для отображения хотя бы одного повторения типа линии при заданном масштабе типа линии?
Есть ли в структуре примитива какой-то флаг для этого?
Или надо выковыривать из чертежа описание типа линии и по нему высчитывать, какая длина нужна для отображения при заданном масштабе?

На всякий случай - зачем это нужно.
Если длина недостаточна - примитив отображается как с типом линий Continuos, хотя все диспетчеры свойств показывают тот тип линий, что надо. А это иногда приводит к недоразумениям
Просмотров: 2242
 
Непрочитано 13.06.2016, 12:27
#2
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Не нужно никаких программ. Есть два файла штриховок. Один - имперский, для фотографий 9х12, другой совковый, для листа А3. Просто грузи линии из совкового acadiso.lin и у тебя все линии будут отображаться правильно. Если ты работаешь в масштабе 1:1 просто масштабируй линии на 100 или еще лучше задай коэффициент масштабирования, чтоб в видовом экране показывало как надо
gomer вне форума  
 
Автор темы   Непрочитано 13.06.2016, 12:54
#3
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,091


Цитата:
Сообщение от gomer Посмотреть сообщение
Просто грузи линии из совкового acadiso.lin и у тебя все линии будут отображаться правильно.
Нередко надо показать тип линий на коротком отрезке, для чего задать масштаб типа линий меньше, чем 1:1. Offtop: Только не говори, что это неправильно
kp+ вне форума  
 
Непрочитано 13.06.2016, 14:13
#4
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от kp+ Посмотреть сообщение
Нередко надо показать тип линий на коротком отрезке
Для разных изображений использовать различные типы линий, если тех что из коробки не хватает можно или добавить свой тип линии или масштабировать, да. Но я не понимаю сути вопроса. Если длина меньше заданной то примитиву присвоить масштаб типа линий 0.5, как это сделать, зависит от стиля программирования.
Пример Изменения масштаба типа лини
Код:
[Выделить все]
 (defun c:LNS05 ( / Lines LineObj Iter )

  (vl-load-com)

  (setq Iter -1)

  (setq Lines (ssget '((0 . "LINE"))))

  (repeat (sslength Lines)

    (setq Iter (1+ Iter))

    (setq LineObj (vlax-ename->vla-object (ssname lines Iter)))

    (vla-put-LinetypeScale LineObj 0.5)

  )

)
gomer вне форума  
 
Автор темы   Непрочитано 13.06.2016, 16:24
#5
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,091


Цитата:
Сообщение от gomer Посмотреть сообщение
Если длина меньше заданной то примитиву присвоить масштаб типа линий 0.5, как это сделать, зависит от стиля программирования
Да! Но как программно определить "заданную длину" для того или иного типа линий (хотя бы при масштабе 1)? В этом и состоит весь вопрос!
Более того - а надо ли ее определять? Акад ведь знает, что длина некоторого примитива меньше "заданной" и на нем нельзя корректно отобразить заданный тип линии в заданном масштабе. Возможно, в каких-то свойствах примитива выставляется соотв. флаг. Как бы получить к нему доступ?

----- добавлено через ~15 мин. -----
Вот, нашел в DXF-кодах описания типа линии:
DXF Reference > TABLES Section > LTYPE

40 Total pattern length

Буду думать, как до него достучаться, зная имя типа линии

Последний раз редактировалось kp+, 13.06.2016 в 17:02.
kp+ вне форума  
 
Непрочитано 13.06.2016, 17:11
#6
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от kp+ Посмотреть сообщение
40 Total pattern length
Рискну предположить, что это длина всего шаблона типа линии, а как он разбит на штрихи - совсем другой вопрос... шаблон может быть одной длины, разреженным и уплотненным. Просто примите, что отрезки меньше 5 мм будут масштабироваться, остальные - нет
gomer вне форума  
 
Автор темы   Непрочитано 13.06.2016, 17:19
#7
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,091


Цитата:
Сообщение от gomer Посмотреть сообщение
Рискну предположить, что это длина всего шаблона типа линии, а как он разбит на штрихи - совсем другой вопрос... шаблон может быть одной длины, разреженным и уплотненным. Просто примите, что отрезки меньше 5 мм будут масштабироваться, остальные - нет
А как он разбит на штрихи - в данном случае неважно. Если "длина всего шаблона типа линии" меньше длины примитива с учетом масштаба - значит, тип линии можно отобразить. Вот бы найти как добраться до этой группы, зная имя типа линии. С символьными таблицами через DXF никогда не работал
Во вложенном файле вроде есть пример, но он написан слишком для меня высоким штилем программирования, никак не могу врубиться.
Вложения
Тип файла: lsp Extract_Line_Type.lsp (4.8 Кб, 13 просмотров)
kp+ вне форума  
 
Непрочитано 13.06.2016, 17:41
#8
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Код:
[Выделить все]
 (cdr (assoc 40 (tblsearch "LTYPE" "невидимая")))
Это что ли?
gomer вне форума  
 
Автор темы   Непрочитано 13.06.2016, 18:00
#9
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,091


хм..похоже...буду разбираться
kp+ вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Проверка отображения типа линий при заданном масштабе типа линий и длине примитива

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание нового типа линий Apelsinov AutoCAD 915 08.07.2022 12:36
LISP. Вставка в таблицу поля, соотвествующего площади примитива Profan Готовые программы 272 06.06.2021 23:12
Создание типа линий для обозначения кабелей связи Geon AutoCAD 1 04.11.2007 10:02
Избитая тема МАСШТАБА ТИПА ЛИНИЙ Asset AutoCAD 21 15.08.2007 12:32
lisp : проверка наличия типа линии в файле Кулик Алексей aka kpblc LISP 4 21.06.2005 08:04