Скачать NANOCAD Pдгы 8.5
dwg.ru forum rss xml
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму |

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

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

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

kp+ вне форума Вставить имя

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

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

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,552
Отправить сообщение для gomer с помощью ICQ Отправить сообщение для gomer с помощью Skype™


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

идущий по граблям
 
Регистрация: 26.05.2005
Днепропетровск
Сообщений: 3,569


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

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,552
Отправить сообщение для gomer с помощью ICQ Отправить сообщение для gomer с помощью Skype™


Цитата:
Сообщение от 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
Днепропетровск
Сообщений: 3,569


Цитата:
Сообщение от 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,552
Отправить сообщение для gomer с помощью ICQ Отправить сообщение для gomer с помощью Skype™


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

идущий по граблям
 
Регистрация: 26.05.2005
Днепропетровск
Сообщений: 3,569


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

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,552
Отправить сообщение для gomer с помощью ICQ Отправить сообщение для gomer с помощью Skype™


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

идущий по граблям
 
Регистрация: 26.05.2005
Днепропетровск
Сообщений: 3,569


хм..похоже...буду разбираться
__________________
Кому жизнь буги-вуги, а кому полный бред... (С)
kp+ вне форума вставить имя Обратить внимание модератора на это сообщение  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Проверка отображения типа линий при заданном масштабе типа линий и длине примитива

Инженерные консультации
Опции темы Поиск в этой теме
Поиск в этой теме:

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

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание нового типа линий Apelsinov AutoCAD 858 10.11.2017 09:21
LISP. Вставка в таблицу поля, соотвествующего площади примитива Profan Готовые программы 256 07.08.2017 11:53
Создание типа линий для обозначения кабелей связи 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

|| Главная || Каталог САПР || Тендеры || Публикации || Объявления || Биржа труда || Download || Галерея ||
|| Библиотека || Кунсткамера || Каталог предприятий || Контакты || Файлообменник || Блоги ||


Размещение рекламы