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

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

Создание нового типа линий

Ответ
Поиск в этой теме
Непрочитано 04.03.2004, 12:16 2 |
Создание нового типа линий
Apelsinov
 
Проектировщик ВК. LISP-любитель.
 
Москва
Регистрация: 15.12.2003
Сообщений: 1,202

На форуме достаточно часто появляются вопросы по поводу создания типов линий в автокад. Хочется разобраться с этим вопросом получше.
Как это делаю и понимаю я:
Для начала определимся с понятиями - существуют два типа линий - простые и сложные.
1. Простые - типы линий описываемые только файлом *.lin соответствующим синтаксисом. Это достаточно просто. Пишется сразу ручками в файле, либо с помощью команды express "mkltype". Как писать - рассматривать не будем, т.к. это и правда просто. Для тех, кто хочет разобраться, советую поэкспериментировать с этой командой и посмотреть результаты в файле *.lin, единственное дополнение - команда иногда выдает не совсем то что от нее требуешь, но возможно, это просто я не до конца в ней разобрался, приходится подправлять результат непосредственно в файле.
2. Сложные - типы линий с вставленными графическими примитивами. Соответственно, сам тип линии описывается в файле *.lin, а примитивы в файле *.shx - получаемым компиляцией (команда compile) исходного файла *.shp. C синтаксисом описания форм в *.shp я сам до конца не разобрался, но создаю это описание с помощью express команды mkshape, то есть рисую в акаде необходимый набор примитивов, и перевожу его mkshape в файл *.shp.
Итого - рисуем примитивы, переводим их в *.shp, компилируем, создаем нужный *.lin (mkltype) , ручками вписываем в него ссылку на формы в *.shx, сохраняем, загружаем в акад. Все.

Есть способы проще?
Просмотров: 654130
 
Непрочитано 03.10.2013, 16:43
#461
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,072


Цитата:
Сообщение от Kostinok Посмотреть сообщение
не понял, как это сработает... я попробовал (entmakex ) создать тип линии в чертеже, нифига... а существующее описание не меняется, если этот тип линии уже используется...
Вот ведь можно перезагрузить описание определенного типа линии, как бы сделать так, что бы можно было и Объединять эти описания, как по аналогии со слоями команда _laymrg...
А что здесь полезного может сделать entmakex?
Если Вы скопируете линии в чертеж, где их типы линий описаны с теми же именами, но по-другому, то эти линии автоматически примут новый вид. А в dxf можно попытаться быстро переименовать старые стили на новые.
АлексЮстасу вне форума  
 
Непрочитано 03.10.2013, 17:09
#462
Kostinok

Инженер-электрик
 
Регистрация: 13.10.2007
Калининград
Сообщений: 151


АлексЮстасу, ну допустим у меня на чертеже 4 линии 3 из них имеют типы линий DASHED, DASHED2, gost5 соответственно, у всех разное описание! и одна линия с типом GOST 2.304 4 (как во вложенном файле)

Сохранив его в dxf у меня есть 13 записей DASHED, 13 записей DASHED2 и т.д. Значит просто так я их заменить не могу. А если менять, то менять в самой линии, т.е. фактически назначить линии другой тип, тот, который нужен, а потом старый удалить. Получается перебор, т.е. нужно перебрать все примитывы с такими типами линий и назначить им "правильный"...

А правильно понял? Или вы имеете ввиду "описание типа линии". Было бы хорошо, просто заменить описание на нужное, с переопределением примитивов использующих "неправильный" тип линии.. Так сказать такое слияние...
Вложения
Тип файла: dwg
DWG 2007
4 тл.dwg (58.3 Кб, 6261 просмотров)
__________________
Можно сопротивляться вторжению армий, вторжению идей сопротивляться невозможно. /В. Гюго/
Kostinok вне форума  
 
Непрочитано 03.10.2013, 18:20
#463
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,072


Цитата:
Сообщение от Kostinok Посмотреть сообщение
АлексЮстасу, ну допустим у меня на чертеже 4 линии 3 из них имеют типы линий DASHED, DASHED2, gost5 соответственно, у всех разное описание! и одна линия с типом GOST 2.304 4 (как во вложенном файле)
Сохранив его в dxf у меня есть 13 записей DASHED, 13 записей DASHED2 и т.д. Значит просто так я их заменить не могу. Получается перебор, т.е. нужно перебрать все примитывы с такими типами линий и назначить им "правильный"...
Если типов линий заменить нужно немного, то Хмурый дал лучший совет.

1. Удаляете описания из рабочего файла нужных типов линий.
2. Как вариант: сохраняете в dxf только линейные элементы, заменяете названия типов линий на нужные. Сколько раз Автокад записывает названия типов линий в файл - не нам решать.
3. Копируете в новый файл с правильными описаниями нужных типов линий. В него же вставляете нелинейные элементы.
АлексЮстасу вне форума  
 
Непрочитано 03.10.2013, 18:49
#464
kp+

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


Ловите простенький код:
Код:
[Выделить все]
 (defun c:kp_ltype_change (/ FE FE_LT LT_LIST TRUE_LT VL-FE)
   (setq lt_list (list "DASHED" "DASHED2" "gost5"))
  (setq truE_lt "GOST2.303 4")
  (setq fe (entnext))
  (while fe
    (setq vl-fe (vlax-ename->vla-object fe))
    (if (vlax-property-available-p vl-fe 'Linetype)
      (progn
	(setq fe_lt (vla-get-Linetype vl-fe))
        (if (member fe_lt lt_list) (vla-put-linetype vl-fe truE_lt))
      )
    )
    (setq fe (entnext fe))
  )
)
Правильный и неправильные типы линий задавать по вкусу, но обязательно точно так, как в их описании (в посте GOST 2.304 4 указан с лишним пробелом, надо GOST2.304 4, эта программка такое не исправляет - все-таки не гугль )
И еще: особо не проверял, но эта прога, скорее всего, залезет везде, в т.ч. в описания блоков. Если так и надо - хорошо, нет - будем посмотреть
kp+ вне форума  
 
Непрочитано 03.10.2013, 20:31
#465
Kostinok

Инженер-электрик
 
Регистрация: 13.10.2007
Калининград
Сообщений: 151


kp+, спасибо большое))), я приблизительно то же написал

Код:
[Выделить все]
 
(defun ch_lt (Doc good_lin styp_lin )
(vlax-map-Collection
  Doc
  '(lambda (x / obj)
     (foreach obj styp_lin
       (if (and (vlax-property-available-p x 'Linetype)
		(= (vla-get-Linetype x) obj))
	 (vla-put-Linetype x good_lin)
	 )
       )
     )
  )
  )
;;;(setq styp_lin '("ACAD_ISO02W100" "ACAD_ISO03W100" "ACAD_ISO07W100"))
;;;(setq good_lin "GOST2.303 4")
;;;(setq Doc (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object))))
;;;(ch_lt Doc good_lin styp_lin) - запуск
Только в качестве Doc может быть и Selection Set, можно сделать выбором, можно все перебрать...
В блоки не лезет, надо переделать...

А вот как реально "Объединить" описания типов линий - не знаю. Можно ли?
__________________
Можно сопротивляться вторжению армий, вторжению идей сопротивляться невозможно. /В. Гюго/

Последний раз редактировалось Kostinok, 03.10.2013 в 20:50.
Kostinok вне форума  
 
Непрочитано 04.10.2013, 09:23
#466
marcus_wrght


 
Регистрация: 04.10.2013
Сообщений: 3


Привет всем! Если кому не трудно напишите код вот для такой линии ǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀ, она очень похожа на тип линии "пути", не могу понять как из того кода убрать горизонтальные штрихи, нужно что бы остались только вертикальные. У меня часто есть потребность в рисовании гибких воздуховодов (Вы можете сказать юзай мэджик, но это только в перспективе).
Спасибо заранее!

P.S.:Если кто сделает, укажите пожалуйста то значение в коде, которое нужно менять, что бы изменять расстояние между этими вертикальными штрихами.
marcus_wrght вне форума  
 
Непрочитано 04.10.2013, 15:27
#467
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,072


Цитата:
Сообщение от marcus_wrght Посмотреть сообщение
Если кому не трудно напишите код вот для такой линии ǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀǀ, она очень похожа на тип линии "пути", не могу понять как из того кода убрать горизонтальные штрихи, нужно что бы остались только вертикальные. У меня часто есть потребность в рисовании гибких воздуховодов (Вы можете сказать юзай мэджик, но это только в перспективе).
Спасибо заранее!
P.S.:Если кто сделает, укажите пожалуйста то значение в коде, которое нужно менять, что бы изменять расстояние между этими вертикальными штрихами.
Используйте в описании типа линий заполненные штрихи (которые положительные числа) с длиной 0. При этом могут быть видны только точки, но тут уж что поделаешь - так Автокад типы линий реализовал.
Расстояния между этими вертикальными черточками регулируйте штрихами с отрицательной длиной.
АлексЮстасу вне форума  
 
Непрочитано 05.10.2013, 10:08
#468
Kostinok

Инженер-электрик
 
Регистрация: 13.10.2007
Калининград
Сообщений: 151


marcus_wrght, приблизительно так

Код:
[Выделить все]
*Имя,Описание ||||||||||||||||
A,0,[TRACK1,ltypeshp.shx,r=0,S=1,X=0,Y=0],-2,0
если изменишь S=1 на S=10 штрихи будут в 10 раз шире, если -2 заменишь на -20 расстояние м/у штрихами будет в 10 раз больше. Вот и вся линия.
__________________
Можно сопротивляться вторжению армий, вторжению идей сопротивляться невозможно. /В. Гюго/
Kostinok вне форума  
 
Непрочитано 05.10.2013, 23:54
#469
GGarry


 
Регистрация: 06.06.2007
Il
Сообщений: 88


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
А в dxf можно попытаться быстро переименовать старые стили на новые.
А фильтром нельзя воспользоваться?
__________________
Пьер был светский человек и поэтому мочился духами.
GGarry вне форума  
 
Непрочитано 06.10.2013, 01:17
#470
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,072


Цитата:
Сообщение от GGarry Посмотреть сообщение
А фильтром нельзя воспользоваться?
См. здесь #459 и #463.
АлексЮстасу вне форума  
 
Непрочитано 07.10.2013, 09:23
1 | #471
Kostinok

Инженер-электрик
 
Регистрация: 13.10.2007
Калининград
Сообщений: 151


GGarry, а что, когда в блоках есть объекты имеющие "неправильные" типы линий или в блоке объекты на слое "По блоку" а в чертеже блок...
Нет, фильтром не вариант и долго. Нужно один раз и быстро, что бы сделать, что то типа проверки стандартов, но свое, что бы составить один раз список "неправильных" типов линий, слоев, текстовых стилей и т.д. и список соответствующих им "правильных" вариантов. Запустить команду, она чертеж и почистит!!

Offtop: В печенках уже наши генпланисты и вкшники, плевать хотели и на стандарты и на оформление...
__________________
Можно сопротивляться вторжению армий, вторжению идей сопротивляться невозможно. /В. Гюго/
Kostinok вне форума  
 
Непрочитано 07.10.2013, 09:25
#472
marcus_wrght


 
Регистрация: 04.10.2013
Сообщений: 3


Kostinok,
АлексЮстасу,
Выражаю благодарность в помощи!
marcus_wrght вне форума  
 
Непрочитано 07.10.2013, 09:59
#473
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404


Цитата:
Сообщение от Kostinok Посмотреть сообщение
GGarry, а что, когда в блоках есть объекты имеющие "неправильные" типы линий или в блоке объекты на слое "По блоку" а в чертеже блок...
Нет, фильтром не вариант и долго. Нужно один раз и быстро, что бы сделать, что то типа проверки стандартов, но свое, что бы составить один раз список "неправильных" типов линий, слоев, текстовых стилей и т.д. и список соответствующих им "правильных" вариантов. Запустить команду, она чертеж и почистит!!

Offtop: В печенках уже наши генпланисты и вкшники, плевать хотели и на стандарты и на оформление...
1. _.etransmit неизвестен?
2. Нет ощущения, что замена типа линии может привести к печальным последствиям?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 07.10.2013, 11:07
#474
Kostinok

Инженер-электрик
 
Регистрация: 13.10.2007
Калининград
Сообщений: 151


Кулик Алексей aka kpblc,

1. Что то не могу понять, что мне даст _.etransmit
2. Но ведь даже стандартный метод AutoCAD имеет функцию _checkstandards. Я же хочу заранее определить, что на что заменять. В ручную мне понадобилось бы вызвать _standards, выбрать опцию в настройках "Типы линий" и заменять.

Очень часто чертежи, которые приходят от смежников (внутри нашей организации) имеют свои типовые особенности. Я же хочу предоставить программе свою рутинную работу, по:
1. в описании слоев - поменять, у определенных слоев цвета и толщины, где просто толщины;
2. заменить определенные типы линий на свои;
3. всем примитивам назначить масштаб типа линий 1;
4. поменять глобальный масштаб на 1 или еще на какой - работа с ГенПланом - значит на 1;
5. изменить у примитивов толщину на 0,5, если она больше этого значения;
6. нормализовать в выделенной области примитивы по правилу: если толщина больше или равна толщине в описании слоя, то назначить значение "По слою", если меньше оставить как есть.
7. просмотреть в таблице "LTYPE" типы линий с текстом и переопределить их на вновь созданные, типы линии но по правилу.

Все это должно работать в выделенной области. Последний пункт я уже решил. Если интересно могу выложить, только там все по "диллетантски" сильно не бейте.
__________________
Можно сопротивляться вторжению армий, вторжению идей сопротивляться невозможно. /В. Гюго/
Kostinok вне форума  
 
Непрочитано 07.10.2013, 11:26
#475
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404


Цитата:
Сообщение от Kostinok Посмотреть сообщение
1. Что то не могу понять, что мне даст _.etransmit
Подсказка: обозначить эту команду смежникам.
Остальное - к СТП и работе с ним.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 07.10.2013, 13:10
#476
Kostinok

Инженер-электрик
 
Регистрация: 13.10.2007
Калининград
Сообщений: 151


Кулик Алексей aka kpblc, ну бьемся со снежниками уже долго, толку нет. Если СТП - это стандарт предприятия, то висит он на стене только для меня. Я про это начал говорить, все вроде поддержали, руководство выпустило приказ о том, что у нас есть стандарт и надо ему соответствовать, только воз и ныне там, только воздух потрясли да по охали... Устал я бороться и доказывать, что это всем надо!!! и что это правильно!!!
Как доказать человеку, что мне нужно в листе работать, что нужно привести все в порядок, если он о листах не слышал и слышать не хочет (на бумаге же у него все хорошо!!!). Не буду я перечислять все плюсы стандартов, вы и так все знаете... Короче, я решил: умный в гору не пойдет, умный гору обойдет. Ну не готовы наши специалисты к цивилизованной работе, как только они свои dwg заказчикам отдают

Так что если у кого есть мысли по тому как мне все это осуществить, жду ваших предложений.

Спасибо!
__________________
Можно сопротивляться вторжению армий, вторжению идей сопротивляться невозможно. /В. Гюго/
Kostinok вне форума  
 
Непрочитано 07.10.2013, 14:18
#477
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,072


Цитата:
Сообщение от Kostinok Посмотреть сообщение
Не буду я перечислять все плюсы стандартов, вы и так все знаете...
Создайте шаблон с нужным набором слоев, типов линий, блоков, переменными, листами и всеми прочими необходимыми настройками. Попробуйте утвердить его, и требование работать в нем у начальства. Попробуйте добиться упоминания об этом шаблоне в ТЗ и пр. документах. Обеспечьте передачу шаблона, типов линий и штриховки исполнителям до начала работ. И возвращайте смежникам чертежи, если они сделаны не в шаблоне.
И приложите еще образец-пример готового файла.

Последний раз редактировалось АлексЮстасу, 07.10.2013 в 14:27.
АлексЮстасу вне форума  
 
Непрочитано 07.10.2013, 14:29
#478
kp+

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


Цитата:
Сообщение от Kostinok Посмотреть сообщение
Так что если у кого есть мысли по тому как мне все это осуществить, жду ваших предложений.
Поищите по форуму, многократно обсуждалось. Все просто.
"Всего лишь" выпустить приказ, что:
1) dwg сдаются вместе с бумажной документацией;
2) без подписи того, кто проверяет качество dwg, бумажная документация не принимается, не может быть официально направлена заказчегам, значит не оплачивается. И все завертится!
Главное, чтобы костюмчик сидел:
1) проверяющий хорошо разбирался в Акаде. Не вспоминайте Кэпа - действительно важно. Если посадите на эту работу "девочку" или "тетку" - толку не будет;
2) Даже самый толковый шаблон не гарантирует отсутствие мелких косяков, незаметных при распечатке. Система их проверки и устранения должна работать быстро и четко. Проверяющий должен активно помогать разработчикам. Если же на это будет тратиться больше времени, чем на разработку документации - ждите беды
Offtop: А вообще, вопросы по организации проектирования - в другом разделе.

Последний раз редактировалось kp+, 07.10.2013 в 14:47.
kp+ вне форума  
 
Непрочитано 07.10.2013, 15:16
#479
Kostinok

Инженер-электрик
 
Регистрация: 13.10.2007
Калининград
Сообщений: 151


АлексЮстасу, kp+, спасибо за советы.
Все таки по поводу "объединения" типов линий я буду ждать ответов в этой ветке, если они появятся, ведь вопрос все еще остается открытым...

Offtop: Как не печально, но все это в нашей конторе не имеет смысла. ОЧень хорошие идеи обсуждались уже на форуме и внедрялись только в нашем отделе, мы добились того, что был создан стандарт, "обязали" всех его исполнять. Но наши упрямые "тетки" готовы уволиться скорее, чем изменяться и учиться чему либо.. А самое смешное, что в организации более 40 человек и все смежники сидят в "соседнем кабинете". Руководство решило, что не нужно нам всего этого, все и так получается хорошо...
__________________
Можно сопротивляться вторжению армий, вторжению идей сопротивляться невозможно. /В. Гюго/
Kostinok вне форума  
 
Непрочитано 07.10.2013, 20:49
#480
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,072


Цитата:
Сообщение от Kostinok Посмотреть сообщение
что бы составить один раз список "неправильных" типов линий, слоев, текстовых стилей и т.д. и список соответствующих им "правильных" вариантов. Запустить команду, она чертеж и почистит!!
Вы оптимист. Каждый исполнитель из своего любимого загашника будет копировать все новые и новые стили, делать все новые непредсказуемые ошибки в названиях слоев, масштабах и т.д.
Цитата:
Сообщение от Kostinok Посмотреть сообщение
Но наши упрямые "тетки" готовы уволиться скорее, чем изменяться и учиться чему либо.
Половина моих седых волос заработана на этой ситуации. Проблема в основном в том, что когда человеку нужно начертить некую линию, у него нет под рукой соответствующего удобного меню, в котором выбрал позицию, и сразу все будет в нужном слое, нужным цветом, весом, шириной и типом линии. Кроме того часто удобно что-то начертить, не задумываясь о свойствах, а тип линий и пр. назначить потом. И названия типов линий часто бывают малоинформативны. Поэтому большинство копирует элементы из старых файлов, и по этим элементам назначает свойства. В нашем случае шаблоны прижились не потому, что за ошибки били по голове, а потому, что удалось ввести использование меню (Feature Classes в Autocad Map3D), которые без шаблонов чертят неправильно - в активных слоях и стилях. Но у нас это было оправдано для чертящих тем, что у нас (топография) ассортимент объектов большой - не упомнишь. И чертящие (не начальники, не бригадиры!) сами с удовольствием начали эти меню использовать. Параллельно они сами врубились, что их в ошибки с типами линий и пр. тоже мордой не тычут, поскольку эти ошибки исключились.
Т.е. решающим был пряник, а не плеть.
Можно попробовать внедрять Tool Palettes, тем более, что чертить из них можно без шаблона.
Но у Feature Classes (которые на мой взгляд к топографии не привязаны - это просто меню) тоже есть преимущества. Например, можно выделить уже начерченные линии (надписи, блоки и пр.), и назначить им нужный класс, и они разом окажутся в нужных слоях, цветах, с нужными типами и даже текстовыми стилями, и в нужных размерах.
АлексЮстасу вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Создание нового типа линий



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание нового материала в AutoCAD 2008 termit-spb AutoCAD 1 21.12.2009 22:14
Создание нового стиля таблиц AutoCAD 2006 (VL) Дмитрий Голованов Программирование 21 20.12.2009 02:37
Как отключить создание каждый раз нового файла .bak при нажатии на кнопку "Сохранить" или при закрытии любого файла .dwg в Автокад 2008? gve2005 AutoCAD 4 30.10.2009 10:30
ГОСТ на ванты и оттяжки ??? зщцук? Поиск литературы, чертежей, моделей и прочих материалов 1 17.05.2005 06:53
Загрузка типа линии из макроса Кулик Алексей aka kpblc Программирование 4 24.01.2005 14:57