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

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

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

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

Было уже похожее обсуждение. Но вопрос несколько по другому хочу поставить.
Можно ли седлать так, чтобы создаваемая штриховка всегда была определенной толщины? При этом слой не важен. И тул палеты использовать не желательно.
Просмотров: 4031
 
Непрочитано 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 вне форума  
 
Непрочитано 08.04.2008, 17:33
#21
Олег К.

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


А если изобразить вот такое:
Код:
[Выделить все]
(defun C:hat (/ cur_weight)
(setq cur_weight (getvar "CELWEIGHT"))
(setvar "CELWEIGHT" 15)
(vl-cmdf ".HATCH" pause)
(setvar "CELWEIGHT" cur_weight)
)
И повесить на кнопку.
Правда не уверен насчет pause, одна нужна или несколько?
Проверить могу только в ZWCADe, а там почему-то не срабатывает возврат переменной предыдущего значения.
Олег К. вне форума  
 
Непрочитано 08.04.2008, 17:41
#22
Кулик Алексей aka kpblc
Moderator

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


Олег К., забыл про обработчик ошибок. И потом, можно и так, к примеру, нарисовать:
Код:
[Выделить все]
(defun c:hat (/ *error* _celwt)
  (defun *error* (msg)
    (if _celwt
      (setvar "celweight" _celwt)
      ) ;_ end of if
    (command "_.undo" "_e")
    (princ msg)
    (princ)
    ) ;_ end of defun

  (command "_.undo" "_start")
  (setq _celwt (getvar "celweight"))
  (setvar "celweight" 15)
  (command "_.hatch")
  (while (/= (getvar "cmdactive") 0)
    (command pause)
    ) ;_ end of while
  (command "_.undo" "_e")
  (princ)
  ) ;_ end of defun
Написано "на коленке" и без проверок.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 08.04.2008, 18:12
#23
Олег К.

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


>> Кулик Алексей aka kpblc
Про обработку ошибок не забыл, хотел показать саму идею.
А вот с "undo" интересно. Только в ZWCADe у этой команды опции другие
"Command: _.undo
Undo: Mark/Back to mark/BEgin set/End set/Control/Auto/<Number of steps to undo>: "
и негде даже посмотреть, какие в AutoCADe были.

Кстати, по такому же принципу у меня раньше размеры на свой слой ставились.
Олег К. вне форума  
 
Автор темы   Непрочитано 09.04.2008, 11:42
#24
Red Nova

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


Чесно скажу, что как человек ничего не знающий о программировании, не понемаю о чем вы, и что должны делать программы с #21 и 22.
А вопрос для меня так и остался.
Что надо сделать с лиспом от Torino, чтобы добавить возможность регулировать вес линии. Как я понял надо что-то здесь поменять.

Цитата:
(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 вне форума  
 
Непрочитано 09.04.2008, 11:52
#25
Кулик Алексей aka kpblc
Moderator

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


Олег К., я совсем забыл (командными методами метки уже очень давно не ставлю) - возможно, надо (command "_.undo" "_b").
Red Nova, запустим (в английской версии) команду "_.-layer":
Код:
[Выделить все]
Command: _.-layer <Enter>
Current layer:  "0"
Enter an option 
[?/Make/Set/New/ON/OFF/Color/Ltype/LWeight/Plot/Freeze/Thaw/LOck/Unlock/stAte]: 
_Make <Enter>
Enter name for new layer (becomes the current layer) <0>: NewLayerName <Enter>
Enter an option 
[?/Make/Set/New/ON/OFF/Color/Ltype/LWeight/Plot/Freeze/Thaw/LOck/Unlock/stAte]: 
_color <Enter>
New color [Truecolor/COlorbook] : 16 <Enter>
Enter name list of layer(s) for color 16 <NewLayerName>: <Enter>
Enter an option 
[?/Make/Set/New/ON/OFF/Color/Ltype/LWeight/Plot/Freeze/Thaw/LOck/Unlock/stAte]: 
_LW <Enter>
Enter lineweight (0.0mm - 2.11mm): 0.50 <Enter>
Enter name list of layers(s) for lineweight 0.50mm <NewLayerName>: <Enter>
Enter an option 
[?/Make/Set/New/ON/OFF/Color/Ltype/LWeight/Plot/Freeze/Thaw/LOck/Unlock/stAte]:
Можешь прочитать dwg.ru/art/2 (а еще лучше - книгу В.Света "AutoCAD язык макрокоманд и создание макросов"). Там расписано все и даже немного больше
P.S. У меня сейчас совсем нет времени рисовать нормально работающий код
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 09.04.2008, 12:49
#26
Red Nova

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


Опробовал. Думал задумка с том, что если лисп в автозагрузке, и некому слою один раз при помощи лиспа задана толщина, то далее во всех файлах толщина будет задаваться такой же. Но такого не происходит. Наверное не правильно понял предназначение Лиспа.

P.S. Дело в том что я по жизни терпеть не могу программирование, но обожаю пользоваться плодами программистов. Такой уж я получаюсь юзер только. А всем программистам облегчающим мне работу я очень благодарен. Будете у нас на Калыме, ыыы, точнее у нас в Ереване, милости прошу. К вашим услугам.
Red Nova вне форума  
 
Непрочитано 09.04.2008, 13:08
#27
Кулик Алексей aka kpblc
Moderator

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


Ладно. С тебя полное ТЗ на команды и слои. То бишь:
команда _.hatch -> слой "Штриховка", цвет 1; вес линии слоя 0,25; тип линии слоя Continuous (непрерывный); слой печатается. Объект получает свойства ByLayer независимо от текущих настроек.
Команды простановки размеров -> слой "Размеры", размерный стиль не меняется и не создается; тип линии слоя - Continuous и т.п.
Команды простановки прямых: слой "Оси", тип линии - "Центр", грузить из файла c:\myfiles\mylin.lin, бла-бла-бла.
Обязательно указать: если слой изменен пользователем, восстанавливать стандартные значения или нет?
---
Гарантировать, что будет написано быстро, не могу.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 09.04.2008, 14:14
#28
Олег К.

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


Пожалуй приведу, что написал для постановки размеров.
Код:
[Выделить все]
;;;                             DimLayer_DLI
;;;  на время работы команды DIMLINEAR текущим становится слой "Dim".

(defun C:DimLayer_DLI (/ *error* cur_Layer)
 (setq cur_Layer (getvar "CLAYER"))

 ; Переопределение функции *error*, вместо стандартной
 (defun *error* (msg)
   (setvar "CLAYER" cur_Layer)
   (setvar "ERRNO" 0)
 ) ; defun(*error*)

 (if (null (tblsearch "LAYER" "Dim"))
      (entmakex '((0 . "LAYER") (100 . "AcDbSymbolTableRecord") (100 . "AcDbLayerTableRecord")
          (2 . "Dim") (70 . 0) (62 . 5) (6 . "Continuous") (290 . 1) (370 . 15)))
 )
 (setvar "CLAYER" "Dim")
 (vl-cmdf "_.DIMLINEAR" pause pause pause)
 (setvar "CLAYER" cur_Layer)
)
Стопроцентно работало в 2006 AutoCADe. Нужно сохранить это в файл "DimLayer_DLI.lsp" и сделать кнопку с макросом
Код:
[Выделить все]
^C^C^P(if (not C:DimLayer_DLI)(load "D:/shablon/LISP/DimLayer_DLI.lsp"));DimLayer_DLI
В точечной паре №370 задается толщина линий (сейчас 0.15). Для остальных размерных команд создаются копии этого файла, только меняются названия и вызов команд размеров (ну и количество пауз внимательно проверить).

Последний раз редактировалось Олег К., 09.04.2008 в 14:22.
Олег К. вне форума  
 
Автор темы   Непрочитано 09.04.2008, 15:00
#29
Red Nova

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


ТЗ.
Собственно меня вполне устаревает все как в Лиспе от Torino (пост #5). Единственное, что хочется добавить это возможность изменять у слоев и вес линии тоже. (ведь как я понял цвет там настраивается легко). Штриховка у меня 0,13. Цвет у меня для всего только white. Линии у меня continuous. Но думаю это не так важно, ведь главнее то, чтобы их можно было изменять (что захотел, то и поставил). Если пользователь изменил слой, то исправляем обратно.
Для прямых у меня отдельного слоя нет. Не знаю даже насколько это пригодится. Но думаю будет полезно. Во всяком случае думаю надо уметь отключать один из параметров. Скажем если пользователь хочет использовать программу только для штриховки, или только для размеров.
Заранее благодарен.
Red Nova вне форума  
 
Непрочитано 09.04.2008, 15:46
#30
Bull

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


Offtop:
Цитата:
Сообщение от Red Nova Посмотреть сообщение
ТЗ.
Собственно меня вполне уСТАРевает
Да, ACAD нас всех немного устаревает
__________________
Век живи, век учись - ...
Bull вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Опять о штриховке и ее толщине.

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Опять про перепуск арматуры 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