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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > ЛИСП слои цвета преобразование

ЛИСП слои цвета преобразование

Ответ
Поиск в этой теме
Непрочитано 02.10.2008, 12:48
ЛИСП слои цвета преобразование
Gotch
 
Регистрация: 07.02.2007
Сообщений: 194

ЛИСП Переименовывание слоев и распределение блоков


Друзья помогите пожалуйста!
есть такая программа как Кредо_MIX
в ней мы делаем наши топопланы(собираемся переходить на CIVIL)
но пока трудимся в ней

этот MIX выгоняет полученные планы в dxf со своими названиями слоев
DEFAULT
GOR_BDEFAULT
GOR_DEFAULT
KNT_RDEFAULT
KNT_SDEFAULT
NAD_MDEFAULT
OBRIVDEFAULT
OTKOSDEFAULT
PI_DTDEFAULT
PI_NUDEFAULT
PI_OTDEFAULT
PI_STDEFAULT
PI_TTDEFAULT
SETKR
SETLN
SIT_LDEFAULT
STR_LDEFAULT
TREUGDEFAULT
USLZNDEFAULT
ZAPSKDEFAULT

вот что после я делаю

1
Очищаю файл Purge от одного до двух раз пока неочищу

2
из слоя DEFAULT - вытаскиваю все тексты и переношу в слой NAD_MDEFAULT

3
удаляю слои -
PI_DTDEFAULT
SETLN
STR_LDEFAULT

4
переименовываю слои -
GOR_BDEFAULT - Рельеф Горизонтали основные утолщенные
GOR_DEFAULT - Рельеф Горизонтали основные
KNT_RDEFAULT - Рельеф Контур рельеф
KNT_SDEFAULT - Растительность Контур
NAD_MDEFAULT - Текст
OBRIVDEFAULT - Рельеф Обрыв
OTKOSDEFAULT - Рельеф Откос
PI_NUDEFAULT - Рельеф Отметки номера
PI_OTDEFAULT - Рельеф Отметки
PI_STDEFAULT - Рельеф Точки СТ
PI_TTDEFAULT - Рельеф Точки
SETKR - Координатная сетка
SIT_LDEFAULT - Линии Ситуации
TREUGDEFAULT - Рельеф Поверхность
USLZNDEFAULT - Блоки Разные
ZAPSKDEFAULT - Блоки Растительности

5
задаю цвет для слоя -
GOR_BDEFAULT - Рельеф Горизонтали основные утолщенные - 32
GOR_DEFAULT - Рельеф Горизонтали основные - 32
KNT_RDEFAULT - Рельеф Контур рельеф - 92
KNT_SDEFAULT - Растительность Контур - 172
NAD_MDEFAULT - Текст - white(т.е.черный)
OBRIVDEFAULT - Рельеф Обрыв - 32
OTKOSDEFAULT - Рельеф Откос - 32
PI_NUDEFAULT - Рельеф Отметки номера - red
PI_OTDEFAULT - Рельеф Отметки - blue
PI_STDEFAULT - Рельеф Точки СТ - magneta
PI_TTDEFAULT - Рельеф Точки - blue
SETKR - Координатная сетка - 94
SIT_LDEFAULT - Линии Ситуации - white(т.е.черный)
TREUGDEFAULT - Рельеф Поверхность - 132
USLZNDEFAULT - Блоки Разные - white(т.е.черный)
ZAPSKDEFAULT - Блоки Растительности - 92

6
выделаю в модели все что есть и задаю цвет - по слою, так как по выходу из кредо микса и в слое присвоен цвет и так же каждому объекту присвоен цвет

7
Полилинии в этих слоях по выходу из тогоже кредо микса получаются 3D полилинии
GOR_BDEFAULT - Рельеф Горизонтали основные утолщенные - 32
GOR_DEFAULT - Рельеф Горизонтали основные - 32
преобразовываю в обычные полилинии
отключаю все слои кроме для начала
GOR_BDEFAULT - Рельеф Горизонтали основные утолщенные - 32
выбираю этот слой для использования
и обрабатываю лиспом от Алексея ака kpblc
и тоже самое со вторым слоем

8
после всего этого если бывает время то раскидываю блоки находящиеся в этом слое
USLZNDEFAULT - Блоки Разные - white(т.е.черный)
на дополнительные слои примерно
Блоки Трасса - blue
Блоки Растительности - 92
Блоки Колодцы - white(т.е.черный)
Блоки Аппликация - red
здесь как я думаю оп названию блока можно расскидать по слоям


я прикрепил файл в архиве как он именно выходит из кредо микса


возможно ли это все воплотить в лисп?
если возможно то помогите пожалуйста
Просмотров: 24766
 
Непрочитано 03.10.2008, 09:05
#21
dkite


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


Цитата:
Сообщение от Gotch Посмотреть сообщение
Opening a Release 12 DXF file.
что то либо я не так запускаю, или она нехочет запускатья...
Надо
Command: (test)
dkite вне форума  
 
Автор темы   Непрочитано 03.10.2008, 09:22
#22
Gotch


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


Цитата:
Сообщение от Makswell Посмотреть сообщение
Решены пункты 1,2,3,4,5:
да работает
одна небольшая поправка из-за моей ошибки
это легко в коде правится
слой GOR_DEFAULT - на самом деле называется GORIZDEFAULT
подправил

Код:
[Выделить все]
(defun test (/		  selset       ent_txt_lst  txt_ent	 tmp_lst
	     adoc	  name_old_lay_lst	    new_lay_lst	 tbl_ent
	     n
	    )
  (vl-load-com)
  (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
  (setq	name_old_lay_lst
	 '("GOR_BDEFAULT"	"GORIZDEFAULT"	     "KNT_RDEFAULT"
	   "KNT_SDEFAULT"	"NAD_MDEFAULT"	     "OBRIVDEFAULT"
	   "OTKOSDEFAULT"	"PI_NUDEFAULT"	     "PI_OTDEFAULT"
	   "PI_STDEFAULT"	"PI_TTDEFAULT"	     "SETKR"
	   "SIT_LDEFAULT"	"TREUGDEFAULT"	     "USLZNDEFAULT"
	   "ZAPSKDEFAULT"
	  )
  )

  (setq	new_lay_lst
	 (list
	   (cons "Рельеф Горизонтали основные утолщенные" 32)
	   (cons "Рельеф Горизонтали основные" 32)
	   (cons "Рельеф Контур рельеф" 92)
	   (cons "Растительность Контур" 172)
	   (cons "Текст" 7)
	   (cons "Рельеф Обрыв" 32)
	   (cons "Рельеф Откос" 32)
	   (cons "Рельеф Отметки номера" 1)
	   (cons "Рельеф Отметки" 5)
	   (cons "Рельеф Точки СТ" 6)
	   (cons "Рельеф Точки" 5)
	   (cons "Координатная сетка" 94)
	   (cons "Линии Ситуации" 7)
	   (cons "Рельеф Поверхность" 132)
	   (cons "Блоки Разные" 7)
	   (cons "Блоки Растительности" 92)
	 )
  )

;;; 2 пункт
  (setq selset (ssget "_X" '((0 . "TEXT") (8 . "DEFAULT"))))
  (if selset
    (progn
      (setq ent_txt_lst (mapcar 'cadr (ssnamex selset)))
    )
  )
  (foreach item	ent_txt_lst
    (setq txt_ent (entget item))
    (setq txt_ent (subst (cons 8 "NAD_MDEFAULT") (assoc 8 txt_ent) txt_ent))
    (entmod txt_ent)
  )
;;; 3 пункт
  (setq	selset (ssget "_X"
		      '((-4 . "<OR")
			(8 . "PI_DTDEFAULT")
			(8 . "SETLN")
			(8 . "STR_LDEFAULT")
			(-4 . "OR>")
		       )
	       )
  )
  (if selset
    (progn
      (setq tmp_lst (mapcar 'cadr (ssnamex selset)))
    )
  )
  (foreach item	tmp_lst
    (entdel item)
  )
;;; 4,5 пункт
  (setq n 0)
  (foreach item	name_old_lay_lst
    (if	(tblsearch "LAYER" item)
      (progn
	(setq tbl_ent (entget (tblobjname "LAYER" item)))
	(setq tbl_ent (subst (cons 2 (car (nth n new_lay_lst)))
			     (assoc 2 tbl_ent)
			     tbl_ent
		      )
	)
	(setq tbl_ent (subst (cons 62 (cdr (nth n new_lay_lst)))
			     (assoc 62 tbl_ent)
			     tbl_ent
		      )
	)
	(entmod tbl_ent)
      )
    )
    (setq n (1+ n))
  )
;;; 1 пункт - лучше делать в конце
  (repeat 3 (vla-purgeall adoc))
  (princ)
)
Gotch вне форума  
 
Непрочитано 03.10.2008, 09:38
#23
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,251


Подправил код в посте №15.
Добавил решение пункта 6.
Makswell вне форума  
 
Автор темы   Непрочитано 03.10.2008, 09:48
#24
Gotch


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


Цитата:
Сообщение от Makswell Посмотреть сообщение
Подправил код в посте №15.
Добавил решение пункта 6.
работает!
клева!!!


а в 6 пункте если не трудно можно пожалуйста добавить что бы слои
Растительность Контур
Рельеф Отметки номера
Рельеф Поверхность
Рельеф Контур рельеф
оказались потом замороженные?

Последний раз редактировалось Gotch, 03.10.2008 в 09:54.
Gotch вне форума  
 
Автор темы   Непрочитано 03.10.2008, 10:09
#25
Gotch


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


Цитата:
Сообщение от VVA Посмотреть сообщение
По п.7 могу предложить использовать ConvTo2d -Преобразование линейных объектов в 2D полилинии. Тогда фрагмент кода может выглядеть так:
Код:
[Выделить все]
(if (setq ss (ssget "_X" '((0 . "POLYLINE")(8 . "GOR_*"))))
  (progn
    (SSSETFIRST ss ss)
    (C:ConvTO2D)
    )
  )
3D полилинии должны быть в одной плоскости

VVA что то не работает, он выделяет полилинии и все останавливается
Gotch вне форума  
 
Непрочитано 03.10.2008, 10:13
#26
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,251


Цитата:
Сообщение от Gotch Посмотреть сообщение
а в 6 пункте если не трудно можно пожалуйста добавить что бы слои
Растительность Контур
Рельеф Отметки номера
Рельеф Поверхность
Рельеф Контур рельеф
оказались потом замороженные?
Исправил код в посте 15.
Makswell вне форума  
 
Автор темы   Непрочитано 03.10.2008, 10:18
#27
Gotch


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


Цитата:
Сообщение от Makswell Посмотреть сообщение
Исправил код в посте 15.
ЛИСП это сила!!!
все займусь изучением
уже заказал книги которые советовал Алексей
как только придут сразу вплотную займусь

спасибо большое!!!
Gotch вне форума  
 
Непрочитано 03.10.2008, 10:22
#28
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,792
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Цитата:
Сообщение от Gotch Посмотреть сообщение
VVA что то не работает, он выделяет полилинии и все останавливается
3D полилинии должны быть в одной плоскости (координата Z всех вершин одинакова). Ну и предварительно нужно загрузить pltools.fas
(load "pltools")
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 03.10.2008, 10:29
#29
Gotch


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


а с послденими двумя пунктами?

7
Полилинии в этих слоях по выходу из тогоже кредо микса получаются 3D полилинии
GOR_BDEFAULT - Рельеф Горизонтали основные утолщенные - 32
GOR_DEFAULT - Рельеф Горизонтали основные - 32
преобразовываю в обычные полилинии
отключаю все слои кроме для начала
GOR_BDEFAULT - Рельеф Горизонтали основные утолщенные - 32
выбираю этот слой для использования
и обрабатываю лиспом от Алексея ака kpblc
и тоже самое со вторым слоем

если я не сильно усложню задачу по 7му пункту
можно что бы после преобразования в 2D выдавался запрос
- Толщина утолщенных горизонталей
там у нас будет 3 варианта -
- 0.3
- 0.5
- 1
и задавалась толщина полилиниям находящимся в слое -
GOR_BDEFAULT - Рельеф Горизонтали основные утолщенные - 32

а дальше так же 8 пункт
Gotch вне форума  
 
Автор темы   Непрочитано 03.10.2008, 10:41
#30
Gotch


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


Цитата:
Сообщение от VVA Посмотреть сообщение
3D полилинии должны быть в одной плоскости (координата Z всех вершин одинакова). Ну и предварительно нужно загрузить pltools.fas
(load "pltools")
т..е одна полилиния должна находится на одиновой высоте?
у нас так и есть одна полилиния находится на одной высоте,


немного неудобно так как нужно загружать дополнительный файл
а можно что бы засунуть в этот лисп

что бы все было в одном?
Gotch вне форума  
 
Непрочитано 03.10.2008, 10:54
#31
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,251


Подправил код в посте №15.
Добавил решение пункта 7.
Makswell вне форума  
 
Непрочитано 03.10.2008, 10:57
#32
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,792
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Так я про это и говорю. Файл pltools.fas должен быть в путях поиска (см. readme.txt)
Фрагмент кода
Код:
[Выделить все]
(if (null C:ConvTO2D)(load "pltools.fas")) ;_ грузим pltools
(if (setq ss (ssget "_X" '((0 . "POLYLINE")(8 . "GOR*"))))
  (progn
    (SSSETFIRST ss ss)
    (C:ConvTO2D)
    )
  )
Ну и в соответствии с #22 подкорректировал шаблон (выделено красным)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 03.10.2008, 11:02
#33
Gotch


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


Цитата:
Сообщение от VVA Посмотреть сообщение
Так я про это и говорю. Файл pltools.fas должен быть в путях поиска (см. readme.txt)
Фрагмент кода
Код:
[Выделить все]
(if (null C:ConvTO2D)(load "pltools.fas")) ;_ грузим pltools
(if (setq ss (ssget "_X" '((0 . "POLYLINE")(8 . "GOR*"))))
  (progn
    (SSSETFIRST ss ss)
    (C:ConvTO2D)
    )
  )
Ну и в соответствии с #22 подкорректировал шаблон (выделено красным)

но мне будет неособо удобно использовать два файла основной лисп с pltools.fas
в плане переноса на другие компы недобно
а так что бы все пункты по возможности решались внутри одного лиспа
Gotch вне форума  
 
Непрочитано 03.10.2008, 11:56
#34
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,251


По пункту 8.
Напиши, какие блоки нужно перекинуть на слой "Блоки Трасса", какие на "Блоки Растительности" и т.д.
Имена блоков напиши в кавычках и через пробел, типа такого: "BL_1001" "BL_1003" и т.п.
Так будет проще перенести это в лисп.
Makswell вне форума  
 
Непрочитано 03.10.2008, 12:54
#35
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,792
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Gotch, Переноси не файлы а папки
Там (когда скачаешь) есть файл pltools.lsp.
Можень объединить со своим или выбрать нужное.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 03.10.2008, 14:28
#36
Gotch


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


Цитата:
Сообщение от Makswell Посмотреть сообщение
По пункту 8.
Напиши, какие блоки нужно перекинуть на слой "Блоки Трасса", какие на "Блоки Растительности" и т.д.
Имена блоков напиши в кавычках и через пробел, типа такого: "BL_1001" "BL_1003" и т.п.
Так будет проще перенести это в лисп.
тут
Вложения
Тип файла: rar Слои и Блоки.rar (786 байт, 113 просмотров)
Gotch вне форума  
 
Непрочитано 06.10.2008, 09:45
#37
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,251


Подправил код в посте №15.
Добавил решение пункта 8.
Makswell вне форума  
 
Автор темы   Непрочитано 06.10.2008, 13:35
#38
Gotch


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


Цитата:
Сообщение от Makswell Посмотреть сообщение
Подправил код в посте №15.
Добавил решение пункта 8.

СПАСИБО БОЛЬШОЕ!!!!!!!!!
как я могу отблагодарить?
Gotch вне форума  
 
Автор темы   Непрочитано 06.10.2008, 13:52
#39
Gotch


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


можно ещё попросить
что бы в самом начале лиспа был вопрос -
Какой масштаб съемки?

три варината ответа
- 500
- 1000
- 2000

если 500 то что бы задавалась толщина всех полилиний находящихся в слое - Рельеф Горизонтали основные утолщенные - толщина равная 0.2 и задавался стиль отображения точки(Point style) круглешок с точкой в центре in Absolute units = 0.3 и высота всех текстов = 1

для 1000 толщина равная 0.5 и задавался стиль отображения точки(Point style) круглешок с точкой в центре in Absolute units = 0.5 и высота всех текстов = 2

и для 2000 толщина равная 1 и задавался стиль отображения точки(Point style) круглешок с точкой в центре in Absolute units = 1 и высота всех текстов = 4


создался стиль текста - new_style
Font name - Arial
и применить его ко всем текстам в проекте

возможно пожалуйста такое сделать?

__ а?
Gotch вне форума  
 
Непрочитано 07.10.2008, 10:05
#40
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,792
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Цитата:
Сообщение от Gotch Посмотреть сообщение
создался стиль текста - new_style
Font name - Arial
и применить его ко всем текстам в проекте
LISP. Замена текстового стиля
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > ЛИСП слои цвета преобразование

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Для чего нужны фильтры слоев?Как ими пользоваться? Aysulu AutoCAD 43 17.04.2019 10:59
Нужен Лисп для перевода цвета объекта ilka_t LISP 23 05.10.2013 15:00
Лисп для копирования данных нескольких мтекстов по принципу расположения. Red Nova LISP 14 18.06.2008 22:08
Как удалять слои???????? Абдула AutoCAD 2 03.10.2005 19:07