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

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

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

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

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

механизатор
 
Регистрация: 28.12.2004
Самара
Сообщений: 312
<phrase 1=


Вы серьезно думаете, что таким образом подтолкнете людей к тому что нужно пользоваться слоями и тп? Или просто желание в качестве мести доставить проблемы?

Если вышеуказанные специалисты в своей работе не используют эти слои типы и тп, то скорее всего и ваши чертежи не вызовут у них никаких проблем. Они просто не заметят разницы.
_Andre_ вне форума  
 
Автор темы   Непрочитано 31.07.2007, 11:44
#3
Бали

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


>_Andre_
Возможно вы правы, но все-таки я хотел бы найти решение к этой задачке
Бали вне форума  
 
Непрочитано 31.07.2007, 11:46
#4
Zouss


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


да вы хитрец батенька, это ж практически обратные друг другу задачи... если б вы попросили помочь в приведении чужих чертежей к своим собственным стандартам, думаю вам помогли бы охотнее
вторая задача, кстати, если ее выполнить по вашим условиям, серьезно увеличит вес файло, так что раздницца будет заметна полюбому
Zouss вне форума  
 
Непрочитано 31.07.2007, 11:49 Re: Хитрая задачка по автокаду
#5
pomka


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


Цитата:
Сообщение от Бали
Задумка, состоит в том, чтобы доставить проблемы тем, кто не желает приводить свои чертежи к удобоизменяемости. Может поймут что такое автокад
а вы "ЧУВАК" не задумывались над тем что люди работают в автокаде и создают чертежи так как им это удобно!!! Лучше дайте им сцылу на этот форум.
pomka вне форума  
 
Автор темы   Непрочитано 31.07.2007, 11:51
#6
Бали

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


>Zouss
Да понимаю я что вес файла увеличится, просто может неправильно представляю во сколько раз.
> All
Если задача 2 нереальная, то хотя-бы первую задачу попробуйте решить.
Бали вне форума  
 
Автор темы   Непрочитано 31.07.2007, 11:53
#7
Бали

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


>pomka
какая нафиг сцыла, некоторые не представляют, что такое инет
Бали вне форума  
 
Непрочитано 31.07.2007, 11:58
#8
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,834
<phrase 1=


Цитата:
Сообщение от Бали
>Zouss
Да понимаю я что вес файла увеличится, просто может неправильно представляю во сколько раз.
> All
Если задача 2 нереальная, то хотя-бы первую задачу попробуйте решить.
Мужики всё верно выше описали.
Вообще разве это задача? Все бывающие на этом форуме делают это практически постоянно.
Даже отвечать не хочется. Или Вам для интереса?
Ctrl+A Ctrl+1 и всё там.
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Автор темы   Непрочитано 31.07.2007, 12:11
#9
Бали

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


>Alan
Цитата:
Вообще разве это задача? Все бывающие на этом форуме делают это практически постоянно.
Даже отвечать не хочется. Или Вам для интереса?
Ctrl+A Ctrl+1 и всё там.
Чёто не получается, всё просто тупо переходит в один слой со всеми свойствами, может чё не так делаю.
Народ, мне это интересно не мести ради, а для общего развития, если че не так.
Бали вне форума  
 
Автор темы   Непрочитано 31.07.2007, 12:22
#10
Бали

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


Вся соль в том, что цвет, тип и толщина к примеру линии, забиты в слоях, и при изменении слоя соответственно все цвета и т.д. сбрасываются в один. Такая же хрень происходит и с текстом, и с размерами.
Как нормально сделать?
Бали вне форума  
 
Непрочитано 31.07.2007, 12:24
#11
Кулик Алексей aka kpblc
Moderator

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


Ну лиспом сделать задачу "перевести все в 1 слой с сохранением визуального отображения" в общем-то можно, с текстовыми стилями только не все так просто будет. Решаемо. Только, как тут правильно сказали, никому это нафиг не надо. Если такое будет сделано, люди никогда ничему не научатся, да еще и тебя разучат работать. Оно тебе надо?
Обратная задача (которая нумер двай) - это вообще мрак. Проще повеситься.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 31.07.2007, 12:24
#12
ASLYS

Delineante
 
Регистрация: 26.12.2006
Ростов-на-Дону/Madrid
Сообщений: 396
<phrase 1=


переименовать существующие
ASLYS вне форума  
 
Непрочитано 31.07.2007, 12:29
#13
VVA

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


>Бали А вы мазохист, батенька
Код:
[Выделить все]
(defun C:ПЛЮЩИТЬВСЕ ( / Doc lays) 
(vl-load-com) 
(setvar "CLAYER" "0")  
(setq Doc (vla-get-ActiveDocument(vlax-get-Acad-object))) 
(vla-StartUndoMark Doc) 
(vlax-for lay (setq lays (vla-get-Layers Doc)) 
  (if (eq (vla-get-Lock lay) :vlax-true) 
    (vla-put-Lock Lay :vlax-false)) 
  (if (eq (vla-get-freeze lay) :vlax-true) 
    (vla-put-Freeze Lay :vlax-false) 
    ) 
  ) 
(vlax-for Blk (vla-get-Blocks Doc) 
 (if (= (vla-get-IsXref Blk) :vlax-false) 
  (vlax-for Obj Blk 
   (setq lay (vla-get-Layer Obj)) 
   (setq lay (vla-item lays lay)) 
   (if (= (vla-get-color obj) acByLayer) 
     (vla-put-color obj (vla-get-color lay))) 
   (if (= (vla-get-LineWeight obj) acLnWtByLayer) 
     (vla-put-LineWeight obj (vla-get-LineWeight lay))) 
   (if (= (vla-get-Linetype obj) "ByLayer") 
     (vla-put-LineType obj (vla-get-LineType lay))) 
    (vla-put-layer Obj "0") 
  ) 
 ) 
) 
(repeat 3  (vla-purgeall Doc)) 
(vla-EndUndoMark Doc)(princ) 
)
VVA вне форума  
 
Непрочитано 31.07.2007, 12:30
#14
Ander822


 
Регистрация: 16.07.2007
Minsk
Сообщений: 84


Надо выбрать все объекты, поместить их на один слой, потом взорвать всё, даже размеры и текст. Потом присвоить им цвет по слою.
Ander822 вне форума  
 
Непрочитано 31.07.2007, 12:34 Re: Хитрая задачка по автокаду
#15
T-Yoke

Артиллерист - вертолётчик. Дипломированный инженер-механик. Technologist
 
Регистрация: 29.11.2004
Где-то около Москвы
Сообщений: 16,753
Отправить сообщение для T-Yoke с помощью Skype™


Цитата:
Сообщение от Бали
...Задумка, состоит в том, чтобы доставить проблемы тем, кто не желает приводить свои чертежи к удобоизменяемости. Может поймут что такое автокад :twisted:
...Задача 1: Преобразовать чертеж так, чтобы визуально он остался таким же (цвет, толщина, тип линий, свойства текстов и размеров), но кол-во слоев уменьшилось до одного стандартного, к примеру слой "0", также кол-во текстовых и размерных стилей соответственно тоже до одного стандартного.
...
По первой задаче, скажу так, это конечно очень крутая месть, работать с таким чертежом будет невозможно это точно, мои слова может VOVA подтвердить. Если все объекты в чертеже свалить в один слой... Ужас! Я представил свой чертеж с 57-ю слоями. Сделать-то вообщем можно так, выделяя фильтром послойно, назначать атрибуты не по слою, а пообъектно (цвета, типы линий и т.д.), а потом все объекты перевести в нужный слой, например в тот же "0", а очищенный слой удалить. Внешне на первый взгляд всё сохраниться, но внутри "каша" будет.
Правда придётся повозиться с блоками, особенно если они имеют несколько уровней вложения, и несут в себе атрибуты разных слоёв. Скорее всего их придётся переопределять, или делать заново.
__________________
«Артиллерия не токмо грохот, но и наука!» Пётр I
T-Yoke вне форума  
 
Автор темы   Непрочитано 31.07.2007, 12:35
#16
Бали

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


>VVA
Че-то не получается, у меня 2008 стоит, может из-за этого.
>All
Народ! Ну интересная же задача, чё так вяло думаем?
Бали вне форума  
 
Непрочитано 31.07.2007, 12:37
#17
ASLYS

Delineante
 
Регистрация: 26.12.2006
Ростов-на-Дону/Madrid
Сообщений: 396
<phrase 1=


Цитата:
Надо выбрать все объекты, поместить их на один слой, потом взорвать всё, даже размеры и текст. Потом присвоить им цвет по слою.
а потом все, что получилось загнать в block minsert, чтоб знали цуки, как слоями пользоваться
ASLYS вне форума  
 
Автор темы   Непрочитано 31.07.2007, 12:39
#18
Бали

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


>ASLYS
Не, не канает, надо всё как в условии, это шоб самому если чё можно было работать, да и чертеж должон цивильно выглядеть
Бали вне форума  
 
Непрочитано 31.07.2007, 12:39
#19
Ander822


 
Регистрация: 16.07.2007
Minsk
Сообщений: 84


Цитата:
Сообщение от ASLYS
Цитата:
Надо выбрать все объекты, поместить их на один слой, потом взорвать всё, даже размеры и текст. Потом присвоить им цвет по слою.
а потом все, что получилось загнать в block minsert, чтоб знали цуки, как слоями пользоваться
А че такое в block minsert?
Ander822 вне форума  
 
Непрочитано 31.07.2007, 12:43
#20
Ander822


 
Регистрация: 16.07.2007
Minsk
Сообщений: 84


Цитата:
Сообщение от Бали
>ASLYS
Не, не канает, надо всё как в условии, это шоб самому если чё можно было работать, да и чертеж должон цивильно выглядеть
Ну ты сам себе противоречишь.
А вобще работать можно с любыми чертежами.
Я вот например работал с чертежами где все объекты были линиями или полилиниями, и текст и размеры, а при распечатке чертеж выглядит вполне прилично.
Ander822 вне форума  
 
Автор темы   Непрочитано 31.07.2007, 12:46
#21
Бали

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


>Ander822
Не понял, почему сам себе противоречу?
Бали вне форума  
 
Непрочитано 31.07.2007, 12:49
#22
Ander822


 
Регистрация: 16.07.2007
Minsk
Сообщений: 84


Цитата:
Сообщение от Бали
>Ander822
Не понял, почему сам себе противоречу?
Ну ты хочешь все объекты поместить на один слой, поубирать все слои, размерные и текстовые стили. При этом хочешь чтобы тебе было удобно с этим чертежем работать.
На мой взгляд это взаимоисключает друг друга.
Ander822 вне форума  
 
Непрочитано 31.07.2007, 12:56
#23
ASLYS

Delineante
 
Регистрация: 26.12.2006
Ростов-на-Дону/Madrid
Сообщений: 396
<phrase 1=


если серьезно, то можно использовать .dwt или .dws
ASLYS вне форума  
 
Автор темы   Непрочитано 31.07.2007, 12:59
#24
Бали

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


>Ander822
Еще раз повторю, я хочу шоб всё было на одном слою но с разными, принудительно измененными цветами, толщинами (какие были шоб остались). Я ж говорю проблема в том что эти параметры послою стоят, если бы они были изначально не послою, то было бы всё просто.
Бали вне форума  
 
Непрочитано 31.07.2007, 13:00
#25
VVA

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


>Бали
Исправил ошибку (всетаки 13 пост ).
Код остался там же
VVA вне форума  
 
Автор темы   Непрочитано 31.07.2007, 13:01
#26
Бали

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


Цитата:
Сообщение от ASLYS
если серьезно, то можно использовать .dwt или .dws
А по условию, не могёт народ?
Бали вне форума  
 
Автор темы   Непрочитано 31.07.2007, 13:06
#27
Бали

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


Цитата:
Сообщение от VVA
>Бали
Исправил ошибку (всетаки 13 пост ).
Код остался там же
Круто вы однако разобрались!!
А теперь с текстами и размерами такую же замануху могёте.
И если не трудно ЗАДАЧА2 тоже
Бали вне форума  
 
Автор темы   Непрочитано 31.07.2007, 13:23
#28
Бали

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


Ау, народ! Ну почти добили же задачу, чуть чуть осталось.
VVA - вы реально прикольную прогу написали, хотелось бы остальное так же просто разрулить.
Бали вне форума  
 
Непрочитано 31.07.2007, 13:31
#29
Кулик Алексей aka kpblc
Moderator

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


VVA, ты попал...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 31.07.2007, 13:33
#30
VVA

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


Код:
[Выделить все]
(defun C:ПЛЮЩИТЬВСЕ ( / Doc lays tempObjType ColCnt RowCnt StyName count) 
(vl-load-com)
(setq StyName "Standard" count 0)
(setvar "CLAYER" "0")  
(setq Doc (vla-get-ActiveDocument(vlax-get-Acad-object))) 
(vla-StartUndoMark Doc)
(vla-put-ActiveTextStyle  Doc (vla-item (vla-get-TextStyles Doc) StyName))
(vlax-for lay (setq lays (vla-get-Layers Doc)) 
  (if (eq (vla-get-Lock lay) :vlax-true) 
    (vla-put-Lock Lay :vlax-false)) 
  (if (eq (vla-get-freeze lay) :vlax-true) 
    (vla-put-Freeze Lay :vlax-false) 
    ) 
  ) 
(vlax-for Blk (vla-get-Blocks Doc)
 (if (= (vla-get-IsXref Blk) :vlax-false) 
  (vlax-for Obj Blk
   (grtext -1 (strcat "Элемент N " (itoa (setq count (1+ count))))) 
   (setq lay (vla-get-Layer Obj)) 
   (setq lay (vla-item lays lay)) 
   (if (= (vla-get-color obj) acByLayer) 
     (vla-put-color obj (vla-get-color lay))) 
   (if (= (vla-get-LineWeight obj) acLnWtByLayer) 
     (vla-put-LineWeight obj (vla-get-LineWeight lay))) 
   (if (= (vla-get-Linetype obj) "ByLayer") 
     (vla-put-LineType obj (vla-get-LineType lay))) 
    (vla-put-layer Obj "0")
    (setq tempObjType (vla-get-ObjectName Obj))
    (cond
    ((vl-position tempObjType '("AcDbText" "AcDbMText" "AcDbAttributeDefinition"))
     (vla-put-StyleName Obj StyName)
    )
    ((wcmatch tempObjType "AcDb*Dimension")
     (vla-put-TextStyle Obj StyName)
    )
    ((= tempObjType "AcDbBlockReference")
     (foreach Att (vlax-invoke Obj 'GetAttributes)
      (vla-put-StyleName Att StyName)
     )
     (foreach Att (vlax-invoke Obj 'GetConstantAttributes)
      (vla-put-StyleName Att StyName)
     )
    )
    ((= tempObjType "AcDbTable")
     (setq ColCnt 0)
     (repeat (vla-get-Columns Obj)
      (setq RowCnt 0)
      (repeat (vla-get-Rows Obj)
       (vlax-invoke Obj 'SetCellTextStyle RowCnt ColCnt StyName)
       (setq RowCnt (1+ RowCnt))
      )
      (setq ColCnt (1+ ColCnt))
     )
    )
   )
  ) 
 ) 
) 
(repeat 3  (vla-purgeall Doc)) 
(vla-EndUndoMark Doc)(princ) 
)
Цитата:
И если не трудно ЗАДАЧА2 тоже
Если у меня в среднем порядка 30000 элементов в чертеже, предлагашь создать 30000 слоев? AutoCAD такого не простит, а мне сним дружить хочется.
VVA вне форума  
 
Автор темы   Непрочитано 31.07.2007, 13:45
#31
Бали

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


>VVA
Чё то хуже вроде вышло, только один из трех текстовых стилей убрался, тексты поползли немного (вроде Мтексты), да и размеры тоже.
Задача2 признаю немного туповата её делать не имеет смысла.
В принципе первый вариант VVA-ской проги канает. Всем спасибо, я удовлетворен, но если вам интересно можете все-таки решить до конца.
Бали вне форума  
 
Автор темы   Непрочитано 31.07.2007, 13:51
#32
Бали

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


>VVA
Все таки мне хочется увидеть решение задачи1 до конца, вручную попробовал-получается, думаю програмно тоже можно решить, не откажите
Бали вне форума  
 
Автор темы   Непрочитано 31.07.2007, 14:16
#33
Бали

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


Ау! Вопрос всё ещё висит!
мОзги-програмеры, снизойдите, а то я в лиспе ни болта не рублю.
Бали вне форума  
 
Непрочитано 31.07.2007, 14:19
#34
Ander822


 
Регистрация: 16.07.2007
Minsk
Сообщений: 84


Есть такая идея:
Пишется лиспик, который создает файлик где для каждого объекта чертежа прописаны все его свойства (слой, цвет, вес...)
потом каждому объекту присваиваются значения цвета, веса линии которые были у соответсвующих слоев, а сами объекты переносятся на 0-й слой.

Если надо потом вернуть все в нормальный вид, то для каждого объекта из файлика считываются его прежние свойства, и обект возращается туда где он раньше был.
Ander822 вне форума  
 
Автор темы   Непрочитано 31.07.2007, 14:23
#35
Бали

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


>Ander822
Хорошая идея, но сначала давайте разрулим задачу1
Бали вне форума  
 
Непрочитано 31.07.2007, 14:25
#36
Admin
Administrator


 
Регистрация: 21.08.2003
Сообщений: 4,463


>>Бали
Цитата:
Ау! Вопрос всё ещё висит!
мОзги-програмеры, снизойдите, а то я в лиспе ни болта не рублю.
Прекращай создавать искусственный интерес и поддергивать топик каждые пол-часа, а то совсем закрою.
Admin вне форума  
 
Непрочитано 31.07.2007, 14:26
#37
VVA

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


То что тектсты (размеры) поползут - это нормально, в стиле ведь могут быть забиты разные текстовые шрифты: один шире или уже другого.
У меня текстовые стили удаляет.
Может текстовый стиль забит за стилем таблицы?
VVA вне форума  
 
Автор темы   Непрочитано 31.07.2007, 14:46
#38
Бали

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


>VVA
Высылаю то что получилось с мтекстом
[ATTACH]1185878762.dwg[/ATTACH]
Бали вне форума  
 
Непрочитано 31.07.2007, 15:25
#39
VVA

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


Так что здесь странного?
У тебя бал стиль Russo R со шрифтом romans.shx степень сжатия 0.8 и наклоном 10, а стал Standard со шрифтом txt.shx
Назначь стилю Standard шрифт romans.shx степень сжатия 0.8 и наклон 10 и будет то же самое
VVA вне форума  
 
Автор темы   Непрочитано 31.07.2007, 15:28
#40
Бали

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


>VVA
Так не канает, потому что на одном чертеже степень сжатия может быть разной. ???
Бали вне форума  
 
Непрочитано 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,411


Бали, не мучайся, используй 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 > Хитрая задачка по автокаду

Опции темы Поиск в этой теме
Поиск в этой теме:

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