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

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

Хитрая задачка по автокаду

Ответ
Поиск в этой теме
Непрочитано 31.07.2007, 11:30
Хитрая задачка по автокаду
Бали
 
Инженер
 
Уфа
Регистрация: 23.03.2007
Сообщений: 197

У меня возникла такая задача, даже две. Возможно это уже обсуждалось, но я не видел
Задумка, состоит в том, чтобы доставить проблемы тем, кто не желает приводить свои чертежи к удобоизменяемости. Может поймут что такое автокад :twisted:
Дано: Чертеж с н-ным кол-вом слоев, текстовых и размерных стилей, все красиво и цивильно.
Задача 1: Преобразовать чертеж так, чтобы визуально он остался таким же (цвет, толщина, тип линий, свойства текстов и размеров), но кол-во слоев уменьшилось до одного стандартного, к примеру слой "0", также кол-во текстовых и размерных стилей соответственно тоже до одного стандартного.
Задача 2: Все по тому же принципу, только вместо одного слоя или стиля, перевести каждый элемент в свой собственный стиль и слой, в итоге получится красивый снаружи, но уродливый внутри монстр.
Переделывать преобразованные таким образом чертежи, для людей, поверхностно знающих автокад, думаю будет неудобно или даже сложновато, для чуваков же, вроде вас, это будет проще пареной репы.
PS: Возникла эта задача при переделке(не оформительская, а конструктивная, чето там неправильно было, а чел который все это наваял отсутствовал) мною кривых чертежей, принадлежащих людям, которые не знаю почему не пользуются ни слоями, ни текстовыми, ни размерными стилями.
Просмотров: 9020
 
Непрочитано 31.07.2007, 15:32
#41
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Тогда забудь про текстовые стили.
VVA вне форума  
 
Непрочитано 31.07.2007, 15:39
#42
Кулик Алексей aka kpblc
Moderator

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


Бали, не мучайся, используй flatten с режимом удаления невидимых. В потом лисп VVA.
Только проворачивай на копии.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 31.07.2007, 15:50
#43
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Хочешь насолить, попробуй это
http://forum.dwg.ru/showpost.php?p=236810&postcount=3
(пробуй на копии)

Последний раз редактировалось VVA, 19.09.2015 в 11:22.
VVA вне форума  
 
Непрочитано 31.07.2007, 16:23
#44
Олег К.

Инженер-теплотехник
 
Регистрация: 17.08.2006
Смоленск
Сообщений: 308


>> VVA
Чисто на уровне идеи: что если при выполнении первой задачи имя слоя и стиль текста писать в расширенные данные каждого объекта (примитива), а во 2-й по этим данным все восстанавливать?
Вот только все начерченное между этими действиями останется без изменений.
Олег К. вне форума  
 
Непрочитано 31.07.2007, 16:57
#45
Bull

Конструктор по сути (машиностроитель)
 
Регистрация: 10.10.2005
Набережные Челны (это где КамАЗ)
Сообщений: 11,391


Не стал всё это читать, скажу токо IMHO.

ПЕРВАЯ - решение чревато возникновением случайных ошибок. Раз стили размеров все приводятся к одному.

ВТОРАЯ - обезьянья работа. ОООООчень кропотливая и бестолковая при этом. Лисп, конечно, в этом поможет. Только чтоб его написать, нужно сначала узнать, что натворено до этого. И опять таки, можно случайно размеры испортить. Не все же рисуют в одном листе/модели в единственном масштабе.

Остается только посоветовать применить материальный стимул для т.н. "нормальной" работы с наказанием для "отклоняющихся".
__________________
Век живи, век учись - ...
Bull вне форума  
 
Непрочитано 31.07.2007, 17:05
#46
Zouss


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


сображение по поводу обратной задачи - разносить объекты по комбинации свойств цвет, тип линии, толщина (которая вес).
соответственном и имена новым слоям давать вида #_linetype_##, где # номер цвета, linetype имя типа линии, ## толщина линии. количество слоев будет вполне приемлемо
Код:
[Выделить все]
(defun C:deplusher (/ divider adoc ss n ed en colr lint linw lname)
  (defun makelayer (lname colr lint linw /)
    (entmake
      (list
	(cons 0 "LAYER")
	(cons 100 "AcDbSymbolTableRecord")
	(cons 100 "AcDbLayerTableRecord")
	(cons 70 0)
	(cons 2 lname)
	(cons 62 colr)
	(cons 6 lint)
	(cons 370 linw)
      ) ;_  list
    ) ;_  entmake
  ) ;_  defun

  (vl-load-com)
  (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
  (vla-startundomark adoc)
  (setq	divider	"__"
	ss	(ssget "X")
	n	(sslength ss)
  ) ;_  setq
  (repeat n
    (setq ed	(entget (setq en (ssname ss 0)))
	  colr	(cdr (assoc 62 ed))
	  lint	(cdr (assoc 6 ed))
	  linw	(cdr (assoc 370 ed))
	  lname	(strcat (itoa colr) divider lint divider (rtos linw))
    ) ;_  setq
    (if	(not (tblsearch "LAYER" lname))
      (makelayer lname colr lint linw)
    ) ;_  if
    (setq ed (subst (cons 8 lname) (assoc 8 ed) ed)
	  ed (subst (cons 6 "bylayer") (assoc 6 ed) ed)
    ) ;_  setq
    (entmod ed)
    (ssdel en ss)
  ) ;_  repeat
  (vla-endundomark adoc)
  (princ)
) ;_  defun
только цвет и толщину линии установить в bylayer с наскоку чёт не получилось
Zouss вне форума  
 
Автор темы   Непрочитано 31.07.2007, 20:36
#47
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


Всем кто пытался помочь выражаю большой респект. Пасиба.
Бали вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Хитрая задачка по автокаду