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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Автоматический перенос размеров на слой размеры. Break макро

Автоматический перенос размеров на слой размеры. Break макро

Ответ
Поиск в этой теме
Непрочитано 01.03.2005, 12:58
Автоматический перенос размеров на слой размеры. Break макро
Piton
 
Инженер строитель
 
Москва
Регистрация: 24.02.2005
Сообщений: 396

Подскажите макрос на кнопку чтоб команда break разрывала в двух указанных точках (First point, second break point). ACAD2005
---
Добавлено (спасибо VVA): Рабочие варианты
#25
#190
#272
#273

Последний раз редактировалось Кулик Алексей aka kpblc, 16.11.2012 в 13:42.
Просмотров: 171283
 
Непрочитано 31.01.2011, 17:15
#261
VVA

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


pgs112, Попробуй все-таки настроить ее самостоятельно. Удалять код не нужно, нужно комментировать.
Все действия на команды подписаны коментариями типа "Если выполняется команда XXX" Находим нужную и коментируем (ставим символ ; впереди). Например что нужно сделать для таблиц:
Ищем "Если выполняется команда *TABLE"
Находим кусок из 3 строк
Код:
[Выделить все]
  ((wcmatch thecommandstart "*TABLE") ;_Если выполняется команда *TABLE
     (setvar "clayer" "Таблицы") 
    )
Коментируем
Код:
[Выделить все]
;    ((wcmatch thecommandstart "*TABLE") ;_Если выполняется команда *TABLE
;     (setvar "clayer" "Таблицы") 
;    )
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 31.01.2011, 22:40
#262
pgs112

конструктор
 
Регистрация: 02.12.2008
Москва
Сообщений: 32


А,...так стирать не нужно.
Всё получилось, благодарю!

Последний раз редактировалось pgs112, 01.02.2011 в 22:18.
pgs112 вне форума  
 
Непрочитано 04.03.2011, 11:19
#263
kshatriy


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


Доброе всем время суток!
подскажите пожалуйста можно ли сделать команду которая бы включала и отключала режим прибавления суффикса к имени текущего слоя, а при отключенном режиме чтобы размеры шли в слой "_Размеры"?(остальные реакторы оставить без изменений) лисп из #113


Код:
[Выделить все]
 (vl-load-com)
;;;================== Сервисные ф-ции BEGIN

;|
* Ф-ция str-str-lst
* Сервисная ф-ция извлечения из строки данных, разделенных
* каким либо символом или строкой символов
* Возвращает список строк
* Аргументы [Type]:
  str - строка для разбора [STRING]
  pat - разделитель [STRING]
*  Пример запуска
  (setq str "мы;изучаем;рекурсии" pat ";")
  (setq str "мы — изучаем — рекурсии" pat " — ")
  (str-str-lst str pat)
* Читать подробнее http://www.autocad.ru/cgi-bin/f1/board.cgi?t=25113OT
|;
(defun str-str-lst (str pat / i)
  (cond ((= str "") nil)
        ((setq i (vl-string-search pat str))
         (cons (substr str 1 i)
               (str-str-lst (substr str (+ (strlen pat) 1 i)) pat)
         ) ;_  cons
        )
        (t (list str))
  ) ;_  cond
) ;_  defun
;|=============================================================================
*   На основе ф-ции _kpblc-layer-create
*   http://dwg.ru/forum/viewtopic.php?t=3116&start=45&sid=fab803bd4dbda125ffdc6c07563f682a
*   пост № 47
*   Добавлен новый  параметр  suff - суффикс слоя, если он есть, то имя слоя получаестся путем
*   добавления к имени существующего слоя суффикса suff
*   Создание слоя с указанными параметрами.
*   Параметры вызова:
*   layer-list   список параметров слоя вида:
   '(("name" . "TestLayer")   ; имя слоя. может быть пропущено, если указан suff
     ("color" . 3)         ; номер цвета. nil -> 7
     ("lw" . 50)         ; вес линии слоя. nil -> 25
*                          Оно выражается в сотых долях миллиметра и может быть любым
*                          из следующего ряда: 0, 5, 9, 13, 15, 18, 20, 25, 30, 35, 40, 50, 53, 60, 70,
*                          80, 90, 100, 106, 120, 140, 158, 200 и 211.
     ("lt" . "hidden")      ; тип линии слоя. nil -> Continuous
               ; Если описания типа линии в acadiso.lin
               ; нет, обязательно указывать следующий
               ; параметр
   ("ltfile" . "c:\\cad\\ltypes\\lt.lin")   ; полный путь к файлу с описанием
               ; типа линии. Если файл находится в путях
               ; поддержки, путь можно не указывать
   ("plot" . "y")         ; Печатать ("y") или нет ("n") слой.
               ; nil -> "y"
   ("suff" . "_Размеры")  ;_Добавляемый суффикс с текущему слою. Если задан, поле "name" игнорируется            
   )
*    Возвращает vla-указатель на созданный слой. Если слой существует, его
* настройки приводятся в соответствие с переданным списком.
*    Слой размораживается, разблокируется и включается. Не активируется.
* Примеры:
  (_dwgru-layer-create '(("name" . "Test")("color" . 1)("lw" . 50)))
* создать если нет и слой Test цветом 1 (красный) весом линии 0.5

=========================================================================|;

(defun _dwgru-layer-create (layer-list / vla_layer buf)
       (setq *MIP-CLAYER-PROP-SETTING*
     (list (cons "layer"
   (vla-get-activelayer (vla-get-activedocument (vlax-get-acad-object)))
   ) ;_ end of cons
    (cons "color" (getvar "cecolor"))
    (cons "lw" (getvar "celweight"))
    (cons "lt" (getvar "celtype"))
    ) ;_ end of list
    ) ;_ end of setq

  ;;;Если есть suff добавляем в начало списка,
  ;;;чтобы assoc нашел раньше
  (if (cdr(assoc "suff" layer-list))
    (progn
     (setq layer-list (vl-remove (assoc "name" layer-list) layer-list))
     (setq layer-list (append (list(cons "name" (strcat (getvar "clayer") (cdr(assoc "suff" layer-list))))) layer-list))
    )
  )
  (setq vla_layer
  (vla-add
    (vla-get-layers (vla-get-activedocument (vlax-get-acad-object)))
    (if (snvalid (cdr (assoc "name" layer-list)))
        (cdr (assoc "name" layer-list))
        "0"
      )
    ) ;_ end of vla-add
 ) ;_ end of setq
  (vla-put-color
    vla_layer
    (if (setq buf (cdr (assoc "color" layer-list)))
      buf
      7
      ) ;_ end of if
    ) ;_ end of vla-put-color
  (vla-put-lineweight
    vla_layer
    (if (setq buf (cdr (assoc "lw" layer-list)))
      (if (member buf (list acLnWt000  acLnWt030  acLnWt090
    acLnWt005  acLnWt035  acLnWt100
    acLnWt009  acLnWt040  acLnWt106
    acLnWt013  acLnWt050  acLnWt120
    acLnWt015  acLnWt053  acLnWt140
    acLnWt018  acLnWt060  acLnWt158
    acLnWt020  acLnWt070  acLnWt200
    acLnWt025  acLnWt080  acLnWt211
    )
    )
    buf
    acLnWtByLwDefault
 )
      acLnWtByLwDefault
      ) ;_ end of if
    ) ;_ end of vla-put-lineweight
  (if (and (setq buf (cdr (assoc "lt" layer-list)))
    (_kpblc-linetype-load
      buf
      (cdr (assoc "ltfile" layer-list))
      ) ;_ end of _kpblc-linetype-load
    ) ;_ end of and
    (vla-put-linetype vla_layer (cdr (assoc "lt" layer-list)))
    (vla-put-linetype vla_layer "Continuous")
    ) ;_ end of if
  (vla-put-plottable
    vla_layer
    (if (= (cdr (assoc "plot" layer-list)) "n")
      :vlax-false
      :vlax-true
      ) ;_ end of if
    ) ;_ end of vla-put-Plottable
  (vla-put-lock vla_layer :vlax-false)
  (vla-put-layeron vla_layer :vlax-true)
  (if (not (equal (vla-get-activelayer (vla-get-activedocument (vlax-get-acad-object)))
    vla_layer
    ) ;_ end of equal
    ) ;_ end of not
    (vla-put-freeze vla_layer :vlax-false)
    ) ;_ end of if
  vla_layer
  ) ;_ end of defun

;;;================== Сервисные ф-ции END

;;; Реактор

(or *kpblc-activedoc*
  (setq *kpblc-activedoc* (vla-get-activedocument (vlax-get-acad-object))))

(setq VLR-react (VLR-SysVar-Reactor nil (list '(:VLR-sysVarChanged . chrzmstyle)))) 
(defun chrzmstyle (name event / nstyle)
  (if (= (car event) "DIMSTYLE")
    (progn
      (setq nstyle (getvar "DIMSTYLE")
	    nstyle (str-str-lst nstyle "_")
	    nstyle (VL-STRING-RIGHT-TRIM "_" (apply 'strcat (mapcar '(lambda (x) (strcat x "_"))(cdr nstyle)))))
      (if (snvalid nstyle)
	(progn
	  (setq nstyle (strcat "Размерные_" nstyle))
	  (vla-put-activelayer *kpblc-activedoc*
          (_dwgru-layer-create (list (cons "name" nstyle))))
	  )
	)
      )
    )
  (princ) 
  )
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Автор идеи Torino, он же Кочетков Андрей 
;;;Автоматическая простановка размеров в слое "_Размеры", 
;;;штриховки в слое "_Штриховки", текстов в слое "_Тексты", 
;;;таблиц в слое "_Таблицы", лидеров в слое "_Выноски", прямых
;;;в слое "_Вспомогательный". Реактор работает только с указанными
;;;командами. 
;;;Просто добавь этот файл в автозагрузку

(vl-load-com)
(_dwgru-layer-create '(("name" . "_Размеры")("color" . 150)("lw" . 13)))
(_dwgru-layer-create '(("name" . "_Штриховки")("color" . 5)("lw" . 9)))
(_dwgru-layer-create '(("name" . "_Тексты")("color" . 6)("lw" . 15)))
(_dwgru-layer-create '(("name" . "_Таблицы")("color" . 2)("lw" . 20)))
(_dwgru-layer-create '(("name" . "_Выноски")("color" . 3)("lw" . 15)))
(_dwgru-layer-create '(("name" . "_Вспомогательные")("color" . 1)("lw" . 15)("plot" . "n")))
(setq *OldLayer* nil) 
;;;;;;По аналогии добавить создание своего слоя 
;;; ... 
;;;;;; 
;;;;;;------------------------------------------------------------- 
(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 "cmd"
		    '((:vlr-commandwillstart . cmd-start)
		      (:vlr-commandended . cmd-end)
		      (:vlr-commandcancelled . cmd-end)
		      (:vlr-commandfailed . cmd-end)))))
;;;;;;------------------------------------------------------------- 
(defun cmd-start (calling-reactor startcommandInfo / thecommandstart) 
   (setq thecommandstart (nth 0 startcommandInfo))
  (if (null *OldLayer*)(setq *OldLayer* (getvar "CLAYER")))
  (cond 
 ;;;_Реакция на начало команды DIM* (DIMALIGNED DIMLINEAR и все что начинается с DIM)    
    ((wcmatch thecommandstart "DIM*")  ;_Если выполняется команда DIM* 
     (setvar "clayer" "_Размеры")       ;_Слой размеры должен быть создан выше (vl-cmdf "_layer" ... 
    ) 
 ;;; Конец реакции на DIM*    
    ((wcmatch thecommandstart "*HATCH*") ;_Если выполняется команда HATCH 
     (setvar "clayer" "_Штриховки") 
    ) 
    ((wcmatch thecommandstart "*TEXT") ;_Если выполняется команда TEXT DTEXT 
     (setvar "clayer" "_Тексты") 
    )
    ((wcmatch thecommandstart "*TABLE") ;_Если выполняется команда TABLE 
     (setvar "clayer" "_Таблицы") 
    )
    ((wcmatch thecommandstart "*LEADER") ;_Если выполняется команда QLEADER MLEADER
     (setvar "clayer" "_Выноски")
    )
    ((wcmatch thecommandstart "*XLINE") ;_Если выполняется команда XLINE
     (setvar "clayer" "_Вспомогательные")
    )
    ((wcmatch thecommandstart "*DATAEXTRACTION") ;_Если выполняется команда dataextraction
     (setvar "clayer" "_Таблицы")
    )
    (t nil)) 
  (princ)) 
 ;;;------------------------------------------------------------- 
(defun cmd-end (calling-reactor cmd / cmd_name)
(setq cmd_name (strcase (car cmd)))
(if (or
      (wcmatch cmd_name "*HATCH*") ;_Если выполняется команда DIM*
      (wcmatch cmd_name "DIM*")    ;_Если выполняется команда *HATCH*
      (wcmatch cmd_name "*TEXT")   ;_Если выполняется команда *TEXT (TEXT DTEXT)
      (wcmatch cmd_name "*TABLE")   ;_Если выполняется команда ТАБЛИЦА
      (wcmatch cmd_name "*LEADER")   ;_Если выполняется команда *QLEADER или MLEADER
      (wcmatch cmd_name "*XLINE")   ;_Если выполняется команда *XLINE
      (wcmatch cmd_name "*DATAEXTRACTION")   ;_Если выполняется команда *DATAEXTRACTION
      )
  (progn
    (if *OldLayer* (setvar "clayer" *OldLayer*)) 
    (setq *OldLayer* nil)
    ))
 (princ))
kshatriy вне форума  
 
Непрочитано 04.03.2011, 12:22
#264
VVA

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


Держи. Здесь более "правильная" _dwgru-layer-create
Изменения выделил красным
Добавлены команды SUFFON и SUFFOFF
При включенном режиме SUFFON в строке MODEMACRO будет надпись *SUFFON*
Код:
[Выделить все]
 (vl-load-com)
;;;================== Сервисные ф-ции BEGIN

;|
* Ф-ция str-str-lst
* Сервисная ф-ция извлечения из строки данных, разделенных
* каким либо символом или строкой символов
* Возвращает список строк
* Аргументы [Type]:
  str - строка для разбора [STRING]
  pat - разделитель [STRING]
*  Пример запуска
  (setq str "мы;изучаем;рекурсии" pat ";")
  (setq str "мы — изучаем — рекурсии" pat " — ")
  (str-str-lst str pat)
* Читать подробнее http://www.autocad.ru/cgi-bin/f1/board.cgi?t=25113OT
|;
(defun str-str-lst (str pat / i)
  (cond ((= str "") nil)
        ((setq i (vl-string-search pat str))
         (cons (substr str 1 i)
               (str-str-lst (substr str (+ (strlen pat) 1 i)) pat)
         ) ;_  cons
        )
        (t (list str))
  ) ;_  cond
) ;_  defun
;;;================== Сервисные ф-ции
    ;|=============================================================================
*   На основе ф-ции _kpblc-layer-create
*   http://dwg.ru/f/showthread.php?t=2721
*   пост № 47
*   Опубликована http://dwg.ru/f/showthread.php?p=294715#post294715
*   Добавлен новый  параметр  suff - суффикс слоя, если он есть, то имя слоя получаестся путем
*   добавления к имени существующего слоя суффикса suff
*   Создание слоя с указанными параметрами.
*   Параметры вызова:
*   layer-list   список параметров слоя вида:
   '(("name" . "TestLayer")   ; имя слоя. может быть пропущено, если указан suff
     ("color" . 3)         ; номер цвета. nil -> 7
     ("lw" . 50)         ; вес линии слоя. nil -> 25
*                          Оно выражается в сотых долях миллиметра и может быть любым
*                          из следующего ряда: 0, 5, 9, 13, 15, 18, 20, 25, 30, 35, 40, 50, 53, 60, 70,
*                          80, 90, 100, 106, 120, 140, 158, 200 и 211.
     ("lt" . "hidden")      ; тип линии слоя. nil -> Continuous
               ; Если описания типа линии в acadiso.lin
               ; нет, обязательно указывать следующий
               ; параметр
   ("ltfile" . "c:\\cad\\ltypes\\lt.lin")   ; полный путь к файлу с описанием
               ; типа линии. Если файл находится в путях
               ; поддержки, путь можно не указывать
   ("plot" . "y")         ; Печатать ("y") или нет ("n") слой.
                  ; nil -> "y"
   ("lock" . t)         ; Блокировать t  или нет nil слой.
   ("suff" . "_Размеры")  ;_Добавляемый суффикс с текущему слою. Если задан, поле "name" игнорируется            
   )
*    Возвращает vla-указатель на созданный слой. Если слой существует, его
* настройки приводятся в соответствие с переданным списком.
*    Слой размораживается, разблокируется и включается. Не активируется.
* Примеры:
  (_dwgru-layer-create '(("name" . "Test")("color" . 1)("lw" . 50)))
* создать если нет и слой Test цветом 1 (красный) весом линии 0.5
;;;(_dwgru-layer-create layer-list)
=========================================================================|;

    (defun _dwgru-layer-create (layer-list / vla_layer buf)
      (setq layer-list
             (mapcar
               '(lambda (x) (cons (strcase (car x) t) (cdr x)))
               layer-list
             ) ;_ end of mapcar
      ) ;_ end of setq
      (setq *MIP-LAYER-PROP-SETTING*
             (list (cons "layer"
                         (vla-get-activelayer
                           (vla-get-activedocument (vlax-get-acad-object))
                         ) ;_ end of vla-get-activelayer
                   ) ;_ end of cons 
                   (cons "color" (getvar "cecolor"))
                   (cons "lw" (getvar "celweight"))
                   (cons "lt" (getvar "celtype"))
             ) ;_ end of list 
      ) ;_ end of setq 

;;;Если есть suff добавляем в начало списка, 
;;;чтобы assoc нашел раньше 
      (if (cdr (assoc "suff" layer-list))
        (progn
          (setq layer-list
                 (vl-remove (assoc "name" layer-list) layer-list)
          ) ;_ end of setq
          (setq layer-list
                 (append
                   (list
                     (cons "name"
                           (strcat (getvar "clayer")
                                   (cdr (assoc "suff" layer-list))
                           ) ;_ end of strcat
                     ) ;_ end of cons
                   ) ;_ end of list
                   layer-list
                 ) ;_ end of append
          ) ;_ end of setq
        ) ;_ end of progn
      ) ;_ end of if
      (setq buf (if (snvalid (cdr (assoc "name" layer-list)))
                 (cdr (assoc "name" layer-list))
                 (getvar "CLAYER")
               ) ;_ end of if
            )
      (if (member (strcase buf)(mapcar 'strcase (tablelist "Layer")))
        (setq vla_layer (vla-item (vla-get-layers
                 (vla-get-activedocument (vlax-get-acad-object))
               ) ;_ end of vla-get-layers
                                  buf))
      (setq vla_layer
             (vla-add
               (vla-get-layers
                 (vla-get-activedocument (vlax-get-acad-object))
               ) ;_ end of vla-get-layers
                buf
             ) ;_ end of vla-add 
      ) ;_ end of setq
        )
      (if (setq buf (cdr (assoc "color" layer-list)))
        (vla-put-color
          vla_layer
          (if buf
            buf
            7
          ) ;_ end of if
        ) ;_ end of vla-put-color
      ) ;_ end of if
      (if (setq buf (cdr (assoc "lw" layer-list)))
        (vla-put-lineweight
          vla_layer
          (if buf
            (if (member buf
                        (list aclnwt000     aclnwt030     aclnwt090
                              aclnwt005     aclnwt035     aclnwt100
                              aclnwt009     aclnwt040     aclnwt106
                              aclnwt013     aclnwt050     aclnwt120
                              aclnwt015     aclnwt053     aclnwt140
                              aclnwt018     aclnwt060     aclnwt158
                              aclnwt020     aclnwt070     aclnwt200
                              aclnwt025     aclnwt080     aclnwt211
                             ) ;_ end of list
                ) ;_ end of member
              buf
              aclnwtbylwdefault
            ) ;_ end of if
            aclnwtbylwdefault
          ) ;_ end of if 
        ) ;_ end of vla-put-lineweight 
      ) ;_ end of if
      (if (and (setq buf (cdr (assoc "lt" layer-list)))
               (setq buf
                      (_kpblc-linetype-load
                        buf
                        (cdr (assoc "ltfile" layer-list))
                      ) ;_ end of _kpblc-linetype-load
               ) ;_ end of setq
          ) ;_ end of and 
        (vla-put-linetype vla_layer (vla-get-name buf))
        (vla-put-linetype vla_layer "Continuous")
      ) ;_ end of if 
      (if (setq buf (cdr (assoc "plot" layer-list)))
        (vla-put-plottable
          vla_layer
          (if (= (cdr (assoc "plot" layer-list)) "n")
            :vlax-false
            :vlax-true
          ) ;_ end of if 
        ) ;_ end of vla-put-Plottable 
      ) ;_ end of if
      (setq buf (cdr (assoc "lock" layer-list)))
      (vla-put-lock
        vla_layer
        (if buf
          :vlax-true
          :vlax-false
        ) ;_ end of if
      ) ;_ end of vla-put-lock
      (vla-put-layeron vla_layer :vlax-true)
      (if (and
            (not
              (equal (vla-get-activelayer
                       (vla-get-activedocument (vlax-get-acad-object))
                     ) ;_ end of vla-get-activelayer
                     vla_layer
              ) ;_ end of equal 
            ) ;_ end of not
            (equal (vla-get-freeze vla_layer) :vlax-true)
          ) ;_ end of and
        (vla-put-freeze vla_layer :vlax-false)
      ) ;_ end of if 
      vla_layer
    ) ;_ end of defun
;;;================================================================================
;;;Written By Michael Puckett. 
;;;Список элементов символьных таблиц АвтоКАДа 
;;; - s- имя таблицы
;;;Пример - список всех слоев - (setq all_layers (tablelist "LAYER"))
;;;(setq all_layers (tablelist "LAYER"))
;;;
;;;AutoLisp should return something like this :
;;;Start Coding Here 
    (defun tablelist (s / d r)
      (while (setq d (tblnext s (null d)))
        (setq r (cons (cdr (assoc 2 d)) r))
      )                                           ;while
    )                                             ;defun

;;;================== Сервисные ф-ции END

;;; Реактор

(or *kpblc-activedoc*
  (setq *kpblc-activedoc* (vla-get-activedocument (vlax-get-acad-object))))

(setq VLR-react (VLR-SysVar-Reactor nil (list '(:VLR-sysVarChanged . chrzmstyle)))) 
(defun chrzmstyle (name event / nstyle)
  (if (= (car event) "DIMSTYLE")
    (progn
      (setq nstyle (getvar "DIMSTYLE")
	    nstyle (str-str-lst nstyle "_")
	    nstyle (VL-STRING-RIGHT-TRIM "_" (apply 'strcat (mapcar '(lambda (x) (strcat x "_"))(cdr nstyle)))))
      (if (snvalid nstyle)
	(progn
	  (setq nstyle (strcat "Размерные_" nstyle))
	  (vla-put-activelayer *kpblc-activedoc*
          (_dwgru-layer-create (list (cons "name" nstyle))))
	  )
	)
      )
    )
  (princ) 
  )
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Автор идеи Torino, он же Кочетков Андрей 
;;;Автоматическая простановка размеров в слое "_Размеры", 
;;;штриховки в слое "_Штриховки", текстов в слое "_Тексты", 
;;;таблиц в слое "_Таблицы", лидеров в слое "_Выноски", прямых
;;;в слое "_Вспомогательный". Реактор работает только с указанными
;;;командами. 
;;;Просто добавь этот файл в автозагрузку

(vl-load-com)
(_dwgru-layer-create '(("name" . "_Размеры")("color" . 150)("lw" . 13)))
(_dwgru-layer-create '(("name" . "_Штриховки")("color" . 5)("lw" . 9)))
(_dwgru-layer-create '(("name" . "_Тексты")("color" . 6)("lw" . 15)))
(_dwgru-layer-create '(("name" . "_Таблицы")("color" . 2)("lw" . 20)))
(_dwgru-layer-create '(("name" . "_Выноски")("color" . 3)("lw" . 15)))
(_dwgru-layer-create '(("name" . "_Вспомогательные")("color" . 1)("lw" . 15)("plot" . "n")))
(setq *OldLayer* nil) 
;;;;;;По аналогии добавить создание своего слоя 
;;; ... 
;;;;;; 
;;;;;;------------------------------------------------------------- 
(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 "cmd"
		    '((:vlr-commandwillstart . cmd-start)
		      (:vlr-commandended . cmd-end)
		      (:vlr-commandcancelled . cmd-end)
		      (:vlr-commandfailed . cmd-end)))))
;;;;;;------------------------------------------------------------- 
(defun cmd-start (calling-reactor startcommandInfo / thecommandstart) 
   (setq thecommandstart (nth 0 startcommandInfo))
  (if (null *OldLayer*)(setq *OldLayer* (getvar "CLAYER")))
  (cond 
 ;;;_Реакция на начало команды DIM* (DIMALIGNED DIMLINEAR и все что начинается с DIM)    
    ((wcmatch thecommandstart "DIM*")  ;_Если выполняется команда DIM*
     (if *SUFFON*
     (setvar "clayer" (vla-get-name(_dwgru-layer-create '(("suff" . "_Размеры")))))
     (setvar "clayer" "_Размеры")       ;_Слой размеры должен быть создан выше (vl-cmdf "_layer" ...
       )
    ) 
 ;;; Конец реакции на DIM*    
    ((wcmatch thecommandstart "*HATCH*") ;_Если выполняется команда HATCH 
     (setvar "clayer" "_Штриховки") 
    ) 
    ((wcmatch thecommandstart "*TEXT") ;_Если выполняется команда TEXT DTEXT 
     (setvar "clayer" "_Тексты") 
    )
    ((wcmatch thecommandstart "*TABLE") ;_Если выполняется команда TABLE 
     (setvar "clayer" "_Таблицы") 
    )
    ((wcmatch thecommandstart "*LEADER") ;_Если выполняется команда QLEADER MLEADER
     (setvar "clayer" "_Выноски")
    )
    ((wcmatch thecommandstart "*XLINE") ;_Если выполняется команда XLINE
     (setvar "clayer" "_Вспомогательные")
    )
    ((wcmatch thecommandstart "*DATAEXTRACTION") ;_Если выполняется команда dataextraction
     (setvar "clayer" "_Таблицы")
    )
    (t nil)) 
  (princ)) 
 ;;;------------------------------------------------------------- 
(defun cmd-end (calling-reactor cmd / cmd_name)
(setq cmd_name (strcase (car cmd)))
(if (or
      (wcmatch cmd_name "*HATCH*") ;_Если выполняется команда DIM*
      (wcmatch cmd_name "DIM*")    ;_Если выполняется команда *HATCH*
      (wcmatch cmd_name "*TEXT")   ;_Если выполняется команда *TEXT (TEXT DTEXT)
      (wcmatch cmd_name "*TABLE")   ;_Если выполняется команда ТАБЛИЦА
      (wcmatch cmd_name "*LEADER")   ;_Если выполняется команда *QLEADER или MLEADER
      (wcmatch cmd_name "*XLINE")   ;_Если выполняется команда *XLINE
      (wcmatch cmd_name "*DATAEXTRACTION")   ;_Если выполняется команда *DATAEXTRACTION
      )
  (progn
    (if *OldLayer* (setvar "clayer" *OldLayer*)) 
    (setq *OldLayer* nil)
    ))
 (princ))
(defun C:SUFFON ()(setvar "MODEMACRO" "*SUFFON*")(setq *SUFFON* t))
(defun C:SUFFOFF ()(setvar "MODEMACRO" "")(setq *SUFFON* nil))
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 04.03.2011 в 12:28.
VVA вне форума  
 
Непрочитано 04.03.2011, 13:57
#265
kshatriy


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


Цитата:
Сообщение от VVA Посмотреть сообщение
Держи. Здесь более "правильная" _dwgru-layer-create
Изменения выделил красным
Добавлены команды SUFFON и SUFFOFF
При включенном режиме SUFFON в строке MODEMACRO будет надпись *SUFFON*
спасибо огромное!все работает)
kshatriy вне форума  
 
Непрочитано 08.06.2011, 16:48
#266
Татьяна С


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


Помогите, подскажите, как использовать все эти липсы (желательно пошаговую инструкцию). Мне много не надо. Чтоб размеры, штриховка, Мтекст и текст шли на свои слои. ОООООчень надо. Но оооочень сложно написано.
Татьяна С вне форума  
 
Непрочитано 08.06.2011, 17:00
#267
zenon

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


Татьяна С, подпись у товарища VVA, уже не прочитать? Али буквовок не видно?
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 08.06.2011, 17:51
#268
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от zenon Посмотреть сообщение
Помогите, подскажите, как использовать все эти липсы (желательно пошаговую инструкцию). Мне много не надо. Чтоб размеры, штриховка, Мтекст и текст шли на свои слои. ОООООчень надо. Но оооочень сложно написано.
забросьте в портфель
gomer вне форума  
 
Непрочитано 08.06.2011, 18:09
#269
zenon

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


Offtop: gomer, я этого не озвучивал
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 08.06.2011, 18:18
#270
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


zenon, ой
gomer вне форума  
 
Непрочитано 22.12.2011, 06:51
#271
Astartes

Котло- и реакторостроение
 
Регистрация: 25.02.2010
Барнаул
Сообщений: 807


Приветствую. Вопрос такой. Брал лисп из этой темы что бы размеры переносились на слой размеры и т.д. Добавлял свои элементы, все работает. Но единственное когда подключаю подправленный лисп, выдается ошибка.

Команда: _appload
reactor.lsp успешно загружено.

Команда: ; ошибка: лишняя закрывающая скобка на входе

Как уже сказал все работает, но эта ошибка напрягает. Сравнивал коды, но так и не нашел эту лишнюю скобку. Как найти эту лишнюю скобку?
Вложения
Тип файла: lsp reactor.lsp (14.6 Кб, 55 просмотров)

Последний раз редактировалось Astartes, 22.12.2011 в 07:11.
Astartes вне форума  
 
Непрочитано 22.12.2011, 09:46
1 | #272
VVA

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


Вроде так. Тестируй
Вложения
Тип файла: lsp react1.LSP (14.5 Кб, 271 просмотров)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 28.02.2012, 14:35
#273
Positron


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


Цитата:
Сообщение от Михаил055 Посмотреть сообщение
Раньше при простановке размеров они сами создавались на слое "Dim". Но размеры написал сам. Теперь некоторые использую штатные. Линейные и угловые. Чтобы они тоже были на слое "Dim" сделал пунккт меню, с помощью которого запускаю функцию пересылающую все размеры на этот слой. Делаю это периодически или в конце работы.

Функция вот такая:

(defun CHGL_dim ()
(setvar "cmdecho" 0)
(setq Ss1 (ssget "X"'((0 . "DIMENSION"))))

(setq $lay (getvar "CLAYER"))

(command "_layer" "_m" "dim" "")
(command "_change" Ss1 "" "_prop" "_layer" "dim" "")

(command "_layer" "_set" $lay "")
(princ)
);end CHGL_dim
1. Возникла такая трудность, есть много "старых чертежей" и новых, при копии из "старых чертежей" возникает наложение (смешение) стилей из "старых чертежей" и новых.
2. Каждый стиль имеет свой слой соответственно добавляются ненужные "старые слоя".
Вобщем каша...
Помогите плиз, чтоб старые стили заменялись новыми и слоя тоже.
Замена
Стиль - "01_1 X 1" на "01_1X1"
и Слой "02 DIM (1x5)" на "02 DIM (1x4-5)"



;; Перенесение заданных примитивов (размеры, штриховка, текст) на заданный слой
Код:
[Выделить все]
 (if (not activedocument)
  (setq activedocument (vla-get-activedocument (vlax-get-acad-object)))
  ) ;_ end of if

(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 "cmd"
                              '(
                                (:vlr-commandwillstart . cmd-start)
                                (:vlr-commandended . cmd-end)
                                (:vlr-commandcancelled . cmd-cancel)
                                (:vlr-commandfailed . cmd-fail)
                                )
                              ) ;_ end of VLR-Command-Reactor
        ) ;_ end of setq
  ) ;_ end of if
;; Функция подгрузки типа линии - на http://www.autocad.ru/cgi-bin/f1/board.cgi?t=22730iW

;|=============================================================================
*    Создание слоя с указанными параметрами.
*    Возвращает vla-указатель на созданный слой. Если слой существует, его
* настройки приводятся в соответствие с переданным списком.
*   layer-list   список параметров слоя вида:
   '(("name" . "TestLayer")   ; имя слоя. Не может быть пропущено
   ("color" . 3)         ; номер цвета. nil -> 7
   ("lw" . 50)         ; вес линии слоя. nil -> 25
   ("lt" . "hidden")      ; тип линии слоя. nil -> Continuous
               ; Если описания типа линии в acadiso.lin
               ; нет, обязательно указывать следующий
               ; параметр
   ("ltfile" . "c:\\cad\\ltypes\\lt.lin")   ; полный путь к файлу с описанием
               ; типа линии. Если файл находится в путях
               ; поддержки, путь можно не указывать
   ("plot" . "y")         ; Печатать ("y") или нет ("n") слой.
               ; nil -> "y"
   )
*    Слой размораживается, разблокируется и включается. Не активируется.
|;
(defun _kpblc-layer-create (layer-list / vla_layer)
  (setq vla_layer (vla-add (vla-get-layers activedocument)
                           (cdr (assoc "name" layer-list))
                           ) ;_ end of vla-add
        ) ;_ end of setq
  (vla-put-color vla_layer
                 (if (cdr (assoc "color" layer-list))
                   (cdr (assoc "color" layer-list))
                   7
                   ) ;_ end of if
                 ) ;_ end of vla-put-color
  (vla-put-lineweight
    vla_layer
    (if (cdr (assoc "lw" layer-list))
      (cdr (assoc "lw" layer-list))
      aclnwt025
      ) ;_ end of if
    ) ;_ end of vla-put-lineweight
  (if (and (cdr (assoc "lt" layer-list))
           (_kpblc-linetype-load
             (cdr (assoc "lt" layer-list))
             (cdr (assoc "ltfile" layer-list))
             ) ;_ end of _kpblc-linetype-load
           ) ;_ end of and
    (vla-put-linetype vla_layer (cdr (assoc "lt" layer-list)))
    (vla-put-linetype vla_layer "Continuous")
    ) ;_ end of if
  (vla-put-plottable
    vla_layer
    (if (= (cdr (assoc "plot" layer-list)) "n")
      :vlax-false
      :vlax-true
      ) ;_ end of if
    ) ;_ end of vla-put-Plottable
  (vla-put-lock vla_layer :vlax-false)
  (vla-put-layeron vla_layer :vlax-true)
  (if (not (equal (vla-get-activelayer activedocument)
                  vla_layer
                  ) ;_ end of equal
           ) ;_ end of not
    (vla-put-freeze vla_layer :vlax-false)
    ) ;_ end of if
  vla_layer
  ) ;_ end of defun

(defun cmd-start (react cmd / selset cmd_name ent svr res tag text index _attreq_ _attdia_)
  (setq cmd_name (strcase (car cmd) t))
  (setq *dim_style* (strcase (getvar "dimstyle")))
  (cond
    ((vl-string-search "dim" cmd_name)
     (setq *vlr-settings* (list (cons "layer" (vla-get-activelayer activedocument)) ;_ end of cons
                                (cons "color" (getvar "cecolor"))
                                (cons "lw" (getvar "celweight"))
                                (cons "lt" (getvar "celtype"))
                                ) ;_ end of list
           ) ;_ end of setq
     (cond
       ((= *dim_style* "00_5X1")
        (vla-put-activelayer activedocument (_kpblc-layer-create '(("name" . "02 DIM (05X1)"))))
        )
       ((= *dim_style* "01_1X1")
        (vla-put-activelayer activedocument (_kpblc-layer-create '(("name" . "02 DIM (1x1)"))))
        )
       ((= *dim_style* "02_1X2")
        (vla-put-activelayer activedocument (_kpblc-layer-create '(("name" . "02 DIM (1x2)"))))
        )
       ((= *dim_style* "03_1X4")
        (vla-put-activelayer activedocument (_kpblc-layer-create '(("name" . "02 DIM (1x4-5)"))))
        )
       ((= *dim_style* "04_1X5")
        (vla-put-activelayer activedocument (_kpblc-layer-create '(("name" . "02 DIM (1x4-5)"))))
        )
       ((= *dim_style* "05_1X8")
        (vla-put-activelayer activedocument (_kpblc-layer-create '(("name" . "02 DIM (1х08-10)"))))
        )
       ((= *dim_style* "06_1X10")
        (vla-put-activelayer activedocument (_kpblc-layer-create '(("name" . "02 DIM (1х08-10)"))))
        )
       ((= *dim_style* "07_1X16")
        (vla-put-activelayer activedocument (_kpblc-layer-create '(("name" . "02 DIM (1х16-20)"))))
        )
       ((= *dim_style* "08_1X20")
        (vla-put-activelayer activedocument (_kpblc-layer-create '(("name" . "02 DIM (1х16-20)"))))
        )
       ((= *dim_style* "09_1X30")
        (vla-put-activelayer activedocument (_kpblc-layer-create '(("name" . "02 DIM (1х30-40)"))))
        )
       ((= *dim_style* "10_1X40")
        (vla-put-activelayer activedocument (_kpblc-layer-create '(("name" . "02 DIM (1х30-40)"))))
        )
       ((= *dim_style* "11_1X75")
        (vla-put-activelayer activedocument (_kpblc-layer-create '(("name" . "02 DIM (1х75-100)"))))
        )
       ((= *dim_style* "12_1X100")
        (vla-put-activelayer activedocument (_kpblc-layer-create '(("name" . "02 DIM (1х75-100)"))))
        )
       ((= *dim_style* "Annotative")
        (vla-put-activelayer activedocument (_kpblc-layer-create '(("name" . "02 DIM"))))
        )
       ) ;_ end of cond
     ;;cond
     (mapcar 'setvar '("cecolor" "celweight" "celtype") '("bylayer" -1 "bylayer")) ;_ end of mapcar
     )
    ((vl-string-search "hatch" cmd_name)
     (setq *vlr-settings*
            (list (cons "layer" (vla-get-activelayer activedocument)) ;_ end of cons
                  (cons "color" (getvar "cecolor"))
                  (cons "lw" (getvar "celweight"))
                  (cons "lt" (getvar "celtype"))
                  ) ;_ end of list
           ) ;_ end of setq
     (vla-put-activelayer activedocument
                          (_kpblc-layer-create '(("name" . "03 HATCH") ("color" . 253) ("lw" . 0))) ;_ end of _kpblc-layer-create
                          ) ;_ end of vla-put-ActiveLayer
     (mapcar 'setvar '("cecolor" "celweight" "celtype") '("bylayer" -1 "bylayer")) ;_ end of mapcar
     )
    ((vl-string-search "text" cmd_name)
     (setq *vlr-settings* (list (cons "layer" (vla-get-activelayer activedocument)) ;_ end of cons
                                (cons "color" (getvar "cecolor"))
                                (cons "lw" (getvar "celweight"))
                                (cons "lt" (getvar "celtype"))
                                ) ;_ end of list
           ) ;_ end of setq
     (vla-put-activelayer activedocument
                          (_kpblc-layer-create '(("name" . "10 Text"))) ;_ end of _kpblc-layer-create
                          ) ;_ end of vla-put-ActiveLayer
     (mapcar 'setvar '("cecolor" "celweight" "celtype") '("bylayer" -1 "bylayer")) ;_ end of mapcar
     )
    ) ;_ end of cond
  ) ;_ end of defun

(defun cmd-end (react cmd / list_obj selset item counter leader_item cmd_name leader_item_list up_string low_string)
  (setq cmd_name (strcase (car cmd) t)
        counter  0
        ) ;_ end of setq
  (cond
    ((or (vl-string-search "dim" cmd_name)
         (vl-string-search "text" cmd_name)
         (vl-string-search "hatch" cmd_name)
         ) ;_ end of or
     (if *vlr-settings*
       (progn
         (vla-put-activelayer
           activedocument
           (cdr (assoc "layer" *vlr-settings*))
           ) ;_ end of vla-put-ActiveLayer
         (mapcar 'setvar
                 '("cecolor" "celweight" "celtype")
                 (list (cdr (assoc "color" *vlr-settings*))
                       (cdr (assoc "lw" *vlr-settings*))
                       (cdr (assoc "lt" *vlr-settings*))
                       ) ;_ end of list
                 ) ;_ end of mapcar
         (setq *vlr-settings* nil)
         ) ;_ end of progn
       ) ;_ end of if
     )
    ) ;_ end of cond
  ) ;_ end of defun

(defun cmd-cancel (react cmd / cmd_name)
  (setq cmd_name (strcase (car cmd) t))
  (cond
    ((or (vl-string-search "dim" cmd_name)
         (vl-string-search "text" cmd_name)
         (vl-string-search "hatch" cmd_name)
         ) ;_ end of or
     (if *vlr-settings*
       (progn
         (vla-put-activelayer
           activedocument
           (cdr (assoc "layer" *vlr-settings*))
           ) ;_ end of vla-put-ActiveLayer
         (mapcar 'setvar
                 '("cecolor" "celweight" "celtype")
                 (list (cdr (assoc "color" *vlr-settings*))
                       (cdr (assoc "lw" *vlr-settings*))
                       (cdr (assoc "lt" *vlr-settings*))
                       ) ;_ end of list
                 ) ;_ end of mapcar
         (setq *vlr-settings* nil)
         ) ;_ end of progn
       ) ;_ end of if
     )
    ) ;_ end of cond
  ) ;_ end of defun

;|=============================================================================
*    Функция подгрузки типа линии в текущий файл. Учитывает возможную
* локализацию системы.
*    Параметры вызова:
*  ltype-name  имя типа линии для английской версии
*  ltype-file  имя файла описания типа линии. nil -> "acadiso.lin"ю
*      Если файл с описанием типа линии не лежит по путям
*      поддержки када, надо указывать полный путь к нему.
*    Примеры вызова:
(_kpblc-linetype-load "center" nil)  ; для русской версии подгружает Осевая и возвращает
                                     ; t при успехе
***  Соответствие наименований линий обеспечивается огромным списком ltype_list
*** который можно и нужно дополнять :) Только надо либо все делать мелкими
*** буквами, либо жестко соблюдать регистр в моменты вызовов.
***  Тип линии "Continuous" обработке не подвергается — он есть во всех версиях
=============================================================================|;
(defun _kpblc-linetype-load
                            (ltype-name ltype-file / ltype_normal ltype_list result)
  (vl-load-com)
  (setq ltype_list '(("center" . "осевая")
                     ("center2" . "осевая2")
                     ("hidden" . "скрытая")
                     ("hidden2" . "скрытая2")
                     )
        ltype-name (strcase ltype-name t)
        ) ;_ end of setq
  (if (not ltype-file)
    (setq ltype-file "acadiso.lin")
    ) ;_ end of if
  (if (vl-string-search "419" (vlax-product-key))
    ;; Русская версия, меняем имя типа линии
    (setq ltype_normal (cdr (assoc ltype-name ltype_list)))
    (setq ltype_normal ltype-name)
    ) ;_ end of if
  (if (not (tblsearch "ltype" ltype_normal))
    ;; тип линии не найден, надо его загрузить. Тип линии должен быть
    ;; описан в файле
    (setq result (not (vl-catch-all-error-p
                        (vl-catch-all-apply
                          'vla-load
                          (list
                            (vlax-get-property
                              (vla-get-activedocument (vlax-get-acad-object))
                              'linetypes
                              ) ;_ end of vlax-get-property
                            ltype_normal
                            ltype-file
                            ) ;_ end of list
                          ) ;_ end of vl-catch-all-apply
                        ) ;_ end of vl-catch-all-error-p
                      ) ;_ end of not
          ) ;_ end of setq
    ) ;_ end of if
  result
  ) ;_ end of defun

Последний раз редактировалось Кулик Алексей aka kpblc, 16.11.2012 в 13:48.
Positron вне форума  
 
Непрочитано 16.03.2012, 12:07
#274
voverrr

гастарбайтер понаехал
 
Регистрация: 07.12.2009
Маскво
Сообщений: 267


подскажите пожалуйста неграмотному крестьянину?
вот эта, например, строчка:
(_dwgru-layer-create '(("name" . "_Вспомогательные")("color" . 1)("lw" . 15)("plot" . "n")))
здесь мы задаём последовательно сначала имя для слоя, затем цвет, затем вес линии и в конце - plot - не выводить на печать.
это всё понятно.

а как задать с этой строке тип линии? Константа lt - вроде бы отвечает за тип, но как именно нужно её задавать - никак не соображу.

рассчитываю на принцип интернета: как только ты развернёшь на каком-нибудь форуме тему, и выставив себыя полным чайником, распишешь вопрос, так сразу же решение подвернётся в первом же результате поиска по гуглу.
voverrr вне форума  
 
Непрочитано 16.03.2012, 13:11
#275
VVA

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


Найди в коде описание этой ф-ции, там есть перечень возможных ключей
Код:
[Выделить все]
 
    ;|=============================================================================
*   На основе ф-ции _kpblc-layer-create
*   http://dwg.ru/f/showthread.php?t=2721
*   пост № 47
*   Опубликована http://dwg.ru/f/showthread.php?p=294715#post294715
*   Добавлен новый  параметр  suff - суффикс слоя, если он есть, то имя слоя получаестся путем
*   добавления к имени существующего слоя суффикса suff
*   Создание слоя с указанными параметрами.
*   Параметры вызова:
*   layer-list   список параметров слоя вида:
   '(("name" . "TestLayer")   ; имя слоя. может быть пропущено, если указан suff
     ("color" . 3)         ; номер цвета. nil -> 7
     ("lw" . 50)         ; вес линии слоя. nil -> 25
*                          Оно выражается в сотых долях миллиметра и может быть любым
*                          из следующего ряда: 0, 5, 9, 13, 15, 18, 20, 25, 30, 35, 40, 50, 53, 60, 70,
*                          80, 90, 100, 106, 120, 140, 158, 200 и 211.
     ("lt" . "hidden")      ; тип линии слоя. nil -> Continuous
               ; Если описания типа линии в acadiso.lin
               ; нет, обязательно указывать следующий
               ; параметр
   ("ltfile" . "c:\\cad\\ltypes\\lt.lin")   ; полный путь к файлу с описанием
               ; типа линии. Если файл находится в путях
               ; поддержки, путь можно не указывать
   ("plot" . "y")         ; Печатать ("y") или нет ("n") слой.
                  ; nil -> "y"
   ("lock" . t)         ; Блокировать t  или нет nil слой.
   ("suff" . "_Размеры")  ;_Добавляемый суффикс с текущему слою. Если задан, поле "name" игнорируется            
   )
*    Возвращает vla-указатель на созданный слой. Если слой существует, его
* настройки приводятся в соответствие с переданным списком.
*    Слой размораживается, разблокируется и включается. Не активируется.
* Примеры:
  (_dwgru-layer-create '(("name" . "Test")("color" . 1)("lw" . 50)))
* создать если нет и слой Test цветом 1 (красный) весом линии 0.5

Пример
Код:
[Выделить все]
(_dwgru-layer-create '(("name" . "Test")("color" . 1)("lw" . 50)("lt" . "пути")("ltfile" . "acadiso.lin")))
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 16.03.2012, 14:13
#276
voverrr

гастарбайтер понаехал
 
Регистрация: 07.12.2009
Маскво
Сообщений: 267


чот не работает.
(_dwgru-layer-create '(("name" . "_Невидимая")("color" . 3)("lw" . 13)("lt" . "штриховая")("ltfile" . "C:\Program Files\AutoCAD 2010\UserDataCache\Support\acadiso.lin")))

может путь к acadiso.lin неправильно указываю?
я уж и полный путь прописываю или просто указываю файл без пути - слой создаёт, с указанным именем/весом/цветом, но тип линии не хочет.
ну что такое?
voverrr вне форума  
 
Непрочитано 16.03.2012, 14:19
#277
Кулик Алексей aka kpblc
Moderator

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


Если файл *.lin находится в путях поддержки AutoCAD, то указывать полный путь не надо.
При указании полного пути надо менять слеш "/" либо на двойной "//", либо на обратный "\".
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 16.03.2012, 15:33
#278
VVA

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


Поправлю Алексея
Либо на двойной "\\", либо на обратный "/"
В данном случае просто укажи "acadiso.lin"
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 16.03.2012, 15:34
#279
Кулик Алексей aka kpblc
Moderator

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


Тьфу ты, действительно...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 16.03.2012, 17:53
#280
voverrr

гастарбайтер понаехал
 
Регистрация: 07.12.2009
Маскво
Сообщений: 267


не получается всёрно...
хоть ты чо делай
voverrr вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Автоматический перенос размеров на слой размеры. Break макро

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

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