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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Опять о штриховке и ее толщине.

Опять о штриховке и ее толщине.

Ответ
Поиск в этой теме
Непрочитано 08.04.2008, 12:04 #1
Опять о штриховке и ее толщине.
Red Nova
 
ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Торонто
Регистрация: 23.10.2007
Сообщений: 1,990

Было уже похожее обсуждение. Но вопрос несколько по другому хочу поставить.
Можно ли седлать так, чтобы создаваемая штриховка всегда была определенной толщины? При этом слой не важен. И тул палеты использовать не желательно.
Просмотров: 4028
 
Непрочитано 08.04.2008, 12:08
#2
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,924
<phrase 1=


Можно!
У меня например автоматом закидывается в слой штриховки, и никаких проблем.
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Автор темы   Непрочитано 08.04.2008, 12:14
#3
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


zenon, Как это?
Red Nova вне форума  
 
Непрочитано 08.04.2008, 12:14
#4
Кулик Алексей aka kpblc
Moderator

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


Вопрос - что есть "толщина штриховки"? Вес линии? Или то, что в английской версии называется Thickness?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 08.04.2008, 12:16
#5
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,924
<phrase 1=


Поищи в поиске по слову "реакторы"
как пример того что использую я вот этот
Автор идеи Torino, он же Кочетков Андрей
Reactor.lsp
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 08.04.2008, 12:17
#6
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,924
<phrase 1=


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Вопрос - что есть "толщина штриховки"? Вес линии? Или то, что в английской версии называется Thickness?
думаю речь идет о толщине при выводе на печать
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 08.04.2008, 12:21
#7
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от zenon Посмотреть сообщение
думаю речь идет о толщине при выводе на печать
В таком варианте программное решение не имеет никакого смысла - достаточно сменить или отредактировать таблицу печати и все, привет. Как будет настроено, так и будет выводиться.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 08.04.2008, 12:38
#8
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Речь идет о весе линии.

zenon, Полезная программа. Надо разобраться как менять параметры слоев. Думаю это я легко сделаю. А вот как отключить другие слои и оставить только штриховку? Так правильно, если в начале этих строк добавить ; ?

Цитата:
(setq *OldLayer* (getvar "CLAYER"))
;(vl-cmdf "_layer" "_make" "Dim" "_color" 1 "" "") ;_Создаем слой размеры и задаем цвет 1 ...
(vl-cmdf "_layer" "_make" "Hatch" "_color" 102 "" "") ;_Создаем слой штриховка и задаем цвет 102
;(vl-cmdf "_layer" "_make" "Text" "_color" 2 "" "") ;_Создаем слой текст и задаем цвет 2
Red Nova вне форума  
 
Непрочитано 08.04.2008, 12:39
#9
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,924
<phrase 1=


Вопрос не ко мне, я лишь скромный пользователь
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Автор темы   Непрочитано 08.04.2008, 12:43
#10
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


тогда спросим Кулик Алексей aka kpblc
Red Nova вне форума  
 
Автор темы   Непрочитано 08.04.2008, 12:45
#11
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Обнаружил что лисп варьирует только цвет слоев. А можно менять вес линий создаваемого слоя?
Red Nova вне форума  
 
Непрочитано 08.04.2008, 13:29
#12
Кулик Алексей aka kpblc
Moderator

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


Если слой не важен, тогда код достаточно прост:
Код:
[Выделить все]
(vl-load-com)

(if *vlr-cmd*
  (progn
    (setq *vlr-cmd* nil)
    (vlr-remove-all :vlr-command-reactor)
    ) ;_ end of progn
  ) ;_ end of if

(if (not *vlr-cmd*)
  (setq *vlr-cmd*
         (vlr-command-reactor
           "dwgru-command-reactor"
           '(
             (:vlr-commandwillstart . _dwgru-vlr-command-start)
             (:vlr-commandended . _dwgru-vlr-command-end)
             (:vlr-commandcancelled . _dwgru-vlr-command-fail)
             (:vlr-commandfailed . _dwgru-vlr-command-fail)
             )
           ) ;_ end of vlr-command-reactor
        ) ;_ end of setq
  ) ;_ end of if

(defun _dwgru-vlr-command-start (react cmd)
  (setq _activelayer_   (getvar "clayer")
        *dwgru-entlast* (entlast)
        ) ;_ end of setq
  ) ;_ end of defun

(defun _dwgru-vlr-command-end (react cmd / ent ent_lst)
  (setq cmd (strcase (car cmd)))
  (cond
    ((wcmatch cmd "HATCH")
     (while (setq ent (entnext *dwgru-entlast*))
       (setq ent_lst         (cons ent ent_lst)
             *dwgru-entlast* ent
             ) ;_ end of setq
       ) ;_ end of while
     (foreach item (mapcar 'vlax-ename->vla-object ent_lst)
       (vl-catch-all-apply '(lambda () (vla-put-lineweight item aclnwt025)))
       ) ;_ end of foreach
     )
    ) ;_ end of cond
  (setq *dwgru-entlast* nil)
  ) ;_ end of defun

(defun _dwgru-vlr-command-fail (react cmd)
  (setq cmd (strcase (car cmd)))
  (cond
    ((wcmatch cmd "*HATCH*")
     (foreach item (_dwgru-get-ent-after *dwgru-entlast*)
       (vl-catch-all-apply '(lambda () (vla-erase item)))
       ) ;_ end of foreach
     )
    ) ;_ end of cond
  (setq *dwgru-entlast* nil)
  ) ;_ end of defun

(defun _dwgru-get-ent-after (ent / res sub)
  (while (setq sub (entnext ent))
    (setq res (cons sub res)
          ent sub
          ) ;_ end of setq
    ) ;_ end of while
  (mapcar 'vlax-ename->vla-object res)
  ) ;_ end of defun
В коде полужирным выделен устанавливаемый вес линии для штриховки.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 08.04.2008, 14:54
#13
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Кулик Алексей aka kpblc, Собственно именно такой лисп и разыскивался. Но у меня почему-то не работает. Загружаю лисп. Потом создаю штриховку, а она by layer.
Кроме лиспа с #12 меня также заинтерресовал рисп с #5 (в общем смысле, а не применимо к конкретному вопросу). Можно ли в нем внести изменения, чтобы вес линии тоже варьировался?
Red Nova вне форума  
 
Непрочитано 08.04.2008, 14:57
#14
Кулик Алексей aka kpblc
Moderator

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


Red Nova, ты ж сам сказал: "слой не важен". Вес линии меняется - я специально прогонял код (ADT 2006 Rus + SP1).
Вносить изменения в код, конечно, можно - меняй просто опции команды "_.-layer". Но лично я бы делал по-другому (всего один _.purge и твой реактор перестает работать, если слой не находится).
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 08.04.2008, 16:02
#15
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Кулик Алексей aka kpblc,
Цитата:
ты ж сам сказал: "слой не важен". Вес линии меняется - я специально прогонял код (ADT 2006 Rus + SP1).
Все верно, слой не важен, но программа у меня не работает.
А лисп с поста #5 мне просто интересен. Не конкретно для вопроса со штриховкой.
Цитата:
Но лично я бы делал по-другому (всего один _.purge и твой реактор перестает работать, если слой не находится).
А вот тут ты меня в конец запутал
Red Nova вне форума  
 
Непрочитано 08.04.2008, 16:22
#16
Кулик Алексей aka kpblc
Moderator

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


А если так?
Код:
[Выделить все]
(vl-load-com)

(if *vlr-cmd*
  (progn
    (setq *vlr-cmd* nil)
    (vlr-remove-all :vlr-command-reactor)
    ) ;_ end of progn
  ) ;_ end of if

(if (not *vlr-cmd*)
  (setq *vlr-cmd*
         (vlr-command-reactor
           "dwgru-command-reactor"
           '(
             (:vlr-commandwillstart . _dwgru-vlr-command-start)
             (:vlr-commandended . _dwgru-vlr-command-end)
             (:vlr-commandcancelled . _dwgru-vlr-command-fail)
             (:vlr-commandfailed . _dwgru-vlr-command-fail)
             )
           ) ;_ end of vlr-command-reactor
        ) ;_ end of setq
  ) ;_ end of if

(defun _dwgru-vlr-command-start (react cmd)
  (setq _activelayer_   (getvar "clayer")
        *dwgru-entlast* (entlast)
        ) ;_ end of setq
  ) ;_ end of defun

(defun _dwgru-vlr-command-end (react cmd / ent ent_lst)
  (setq cmd (strcase (car cmd)))
  (cond
    ((wcmatch cmd "*HATCH*")
     (foreach item (_dwgru-get-ent-after *dwgru-entlast*)
       (vl-catch-all-apply '(lambda () (vla-put-lineweight item aclnwt025)))
       ) ;_ end of foreach
     )
    ) ;_ end of cond
  (setq *dwgru-entlast* nil)
  ) ;_ end of defun

(defun _dwgru-vlr-command-fail (react cmd)
  (setq cmd (strcase (car cmd)))
  (cond
    ((wcmatch cmd "*HATCH*")
     (foreach item (_dwgru-get-ent-after *dwgru-entlast*)
       (vl-catch-all-apply '(lambda () (vla-erase item)))
       ) ;_ end of foreach
     )
    ) ;_ end of cond
  (setq *dwgru-entlast* nil)
  ) ;_ end of defun

(defun _dwgru-get-ent-after (ent / res sub)
  (while (setq sub (entnext ent))
    (setq res (cons sub res)
          ent sub
          ) ;_ end of setq
    ) ;_ end of while
  (mapcar 'vlax-ename->vla-object res)
  ) ;_ end of defun
В двух местах "*" забыл поставить...
Теперь насчет "запутал" - сейчас распутаем Смотри, там же сначала создаются слои (один раз, при загрузке лиспа). И только потом начинается отслеживание команд. Соответственно если у тебя в новом файле сначала загрузить лисп, потом выполнить _.purge, а потом, к примеру, _.hatch, то штриховка ни на какой слой не ляжет - его же (слоя) просто не будет.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 08.04.2008, 16:33
#17
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Другое дело. Все работает.
Цитата:
Соответственно если у тебя в новом файле сначала загрузить лисп, потом выполнить _.purge, а потом, к примеру, _.hatch, то штриховка ни на какой слой не ляжет - его же (слоя) просто не будет.
Ну это должен быть purge ALL. А я так не делаю. Пургеню только то, что лишнее.
А можно по аналогие с #16 сделать лисп для размеров, текстов, мтекстов, мультилидеров (кажись все)?
Red Nova вне форума  
 
Непрочитано 08.04.2008, 17:08
#18
Кулик Алексей aka kpblc
Moderator

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


Можно. Делай Или см. http://dwg.ru/f/showthread.php?t=2721
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 08.04.2008, 17:18
#19
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Цитата:
Можно. Делай
+1...

А как насчет

Цитата:
Кроме лиспа с #12 меня также заинтерресовал рисп с #5 (в общем смысле, а не применимо к конкретному вопросу). Можно ли в нем внести изменения, чтобы вес линии тоже варьировался?

Последний раз редактировалось Кулик Алексей aka kpblc, 08.04.2008 в 17:25.
Red Nova вне форума  
 
Непрочитано 08.04.2008, 17:24
#20
Кулик Алексей aka kpblc
Moderator

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


См:
Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
<...>меняй просто опции команды "_.-layer".<...>
При установке нового слоя никто и ничто не мешает установить ему свой вес линии.
Другой вопрос, что у тебя в процессе рисования может быть установлен вес / цвет / тип линии не ByLayer...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Опять о штриховке и ее толщине.

Реклама i


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Опять про перепуск арматуры AlfF1 Железобетонные конструкции 52 14.11.2017 08:55
И опять вопросы о мансардах Aragorn Прочее. Архитектура и строительство 3 14.10.2011 10:07
И опять про лицензирование Aragorn Разное 39 27.02.2009 15:31
Fatal Error при штриховке Serz AutoCAD 10 16.03.2004 22:42