Анкерные системы Schöck Dorn
dwg.ru forum rss xml
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму |

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

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

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

Piton вне форума Вставить имя

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

Последний раз редактировалось Кулик Алексей aka kpblc, 16.11.2012 в 13:42.
Просмотров: 114521
 
Непрочитано 02.03.2006, 14:02
#41
getr

Конструктор
 
Регистрация: 06.04.2005
Из тех ворот-откуда весь народ.
Сообщений: 334
Отправить сообщение для getr с помощью ICQ


->Лентяй
Теперь сообщения об ошибке нет.Работает как и вариант VVA+Кочетков.Но влияние на работу других лиспов осталось.
getr вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 02.03.2006, 21:19
#42
Лентяй

Project Engineer
 
Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,083


Подробнее, плз! Какое "влияние", какие лиспы, совпадают ли имена переменных м т.д. Потому как в конкретных условиях возможно все, что угодно.
Лентяй вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 03.03.2006, 07:34
#43
Krieger

инженер
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,611
Отправить сообщение для Krieger с помощью Skype™


> Лентяй
Цитата:
невозможноустановить(через комстроку)текущим какой-либо слой посредством команды -Layer с опцией Set.
Ни set ни make не срабатывают, т.е. даже такой макрос (был в начале темы)
Код:
[Выделить все]
^C^C_-layer;m;размеры;c;151;;;_DIMALIGNED;\\\_layerp
работать не будет
Krieger вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 03.03.2006, 10:09
#44
getr

Конструктор
 
Регистрация: 06.04.2005
Из тех ворот-откуда весь народ.
Сообщений: 334
Отправить сообщение для getr с помощью ICQ


Да.именно об этом идет речь.Если в лиспах применяется -Layer с опциями Set или Make (или (vl-cmdf "_'layer" "_S" "Осевые")),то эти команды не выполняются.Отрисовка идет на текущем слое.
getr вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 03.03.2006, 11:07
#45
Кулик Алексей aka kpblc
Moderator

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


А если такое попробовать?
Код:
[Выделить все]
(if (not *kpblc-activedoc*)
  (setq *kpblc-activedoc* (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

;|=============================================================================
*    Создание слоя с указанными параметрами.
*    Параметры вызова:
*	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"
	)
*    Возвращает vla-указатель на созданный слой. Если слой существует, его
* настройки приводятся в соответствие с переданным списком.
*    Слой размораживается, разблокируется и включается. Не активируется.
|;
(defun _kpblc-layer-create (layer-list / vla_layer)
  (setq	vla_layer
	 (vla-add
	   (vla-get-layers *kpblc-activedoc*)
	   (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 *kpblc-activedoc*)
		  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))
  (cond
    ((vl-string-search "dim" cmd_name)
     (setq *vlr-settings*
	    (list (cons	"layer"
			(vla-get-activelayer *kpblc-activedoc*)
			) ;_ end of cons
		  (cons "color" (getvar "cecolor"))
		  (cons "lw" (getvar "celweight"))
		  (cons "lt" (getvar "celtype"))
		  ) ;_ end of list
	   ) ;_ end of setq
     (vla-put-activelayer
       *kpblc-activedoc*
       (_kpblc-layer-create
	 '(("name" . "Размеры")
	   ("color" . 2)
	   ("lw" . 25)
	   )
	 ) ;_ end of _kpblc-layer-create
       ) ;_ end of vla-put-ActiveLayer
     (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 *kpblc-activedoc*)
			) ;_ end of cons
		  (cons "color" (getvar "cecolor"))
		  (cons "lw" (getvar "celweight"))
		  (cons "lt" (getvar "celtype"))
		  ) ;_ end of list
	   ) ;_ end of setq
     (vla-put-activelayer
       *kpblc-activedoc*
       (_kpblc-layer-create
	 '(("name" . "Штриховки")
	   ("color" . 3)
	   ("lw" . 00)
	   )
	 ) ;_ 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 *kpblc-activedoc*)
			) ;_ end of cons
		  (cons "color" (getvar "cecolor"))
		  (cons "lw" (getvar "celweight"))
		  (cons "lt" (getvar "celtype"))
		  ) ;_ end of list
	   ) ;_ end of setq
     (vla-put-activelayer
       *kpblc-activedoc*
       (_kpblc-layer-create
	 '(("name" . "Тексты")
	   ("color" . 6)
	   ("lw" . 25)
	   )
	 ) ;_ 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 cmd_name 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
	   *kpblc-activedoc*
	   (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
	   *kpblc-activedoc*
	   (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
Я четко понимаю, что на меня сейчас накинутся, что "функцию дополнительную можно было бы вколотить", что "указывать надо весь код, а не раскидывать его по просторам инета" и т.д.
Говорю сразу - писалось "на коленке". Со всеми вытекающими.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 03.03.2006, 11:51
#46
getr

Конструктор
 
Регистрация: 06.04.2005
Из тех ворот-откуда весь народ.
Сообщений: 334
Отправить сообщение для getr с помощью ICQ


Попробывал,получил следующее:при загрузке-Command: _appload ; error: bad argument type: stringp nil,
проигнорировав и при попыке проставить размер-
Command: _dimradius ; error: no function definition: VLA-PUT-00000

Select arc or circle:
Dimension text = 24.5
Specify dimension line location or [Mtext/Text/Angle]: ; error: bad argument
type: stringp nil
getr вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 03.03.2006, 12:03
#47
Кулик Алексей aka kpblc
Moderator

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


1. Функцию подгрузки типа линии закинул? Ссылка: http://www.autocad.ru/cgi-bin/f1/board.cgi?t=22730iW
2. Почему-то в коде после копирования вместо vla-put-freеze получилось vla-put-00000.
В общем, чтоб не было мучительно больно - см. приложение.
[ATTACH]1141376632.rar[/ATTACH]
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 03.03.2006, 14:10
#48
getr

Конструктор
 
Регистрация: 06.04.2005
Из тех ворот-откуда весь народ.
Сообщений: 334
Отправить сообщение для getr с помощью ICQ


Пусть будет сначала "мучительно больно",главное чтобы потом было приятно. Попробовал еще раз-на первый взгляд все отлично,но надо бы поработать подольше,-вдруг вылезет какая-нито бяка.Но внутренний голос говорит,что все нормалек.Спасибо,kpblc!!!
P.S.Видимо незря ник-крыс,-крысы они очень умные животные.Даже по гороскопу есть умные крысы(напр.рожденные в 1960году).Не удержался и подольстился.Уж очень хотелось,чтобы эта идея с распределением по слоям нашла реальное решение.
getr вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 03.03.2006, 14:18
#49
Кулик Алексей aka kpblc
Moderator

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


Хехе, тут на самом деле до дури еще доделывать по идее надо. Смотри. Настройки слоев сейчас задаются напрямую в реакторе, что не есть гуд. Такие вещи лучше хранить где-нибудь в отдельном месте, докуда легко добраться и программисту, и пользователю. Да еще и сохранять их тоже где-то надо. И, потом, там сейчас отслеживаются только размерные команды, команды штриховок и простановки текста. А этого мало.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 03.03.2006, 15:05
#50
getr

Конструктор
 
Регистрация: 06.04.2005
Из тех ворот-откуда весь народ.
Сообщений: 334
Отправить сообщение для getr с помощью ICQ


Насчет доделать-это уже сложнее.О лиспе у меня лишь самые элементарные понятия.Вот заметил,как мне кажется,очепятку там где настраивается слой штриховки:LW стоит 00,а япоставил 20,-и то уже хорошо.А вот зачем подгружать линии я не понимаю,ведь и размеры и текст и штриховка испоьзует Continuous,но раз надо так надо.А насчет того,что мало отслеживается команд,для меня это основные и пока хватит надолго.Спасибо еще раз.
getr вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 03.03.2006, 15:33
#51
Кулик Алексей aka kpblc
Moderator

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


Ну вот захотелось мне показать такой вариант, это просто левая пятка не вовремя зачесалась
Насчет команд - смотри, а если, допустим, ты все рисуешь полилиниями, а отрезками - осевые? Тогда на команду "line" (это полное имя команды) создаешь новый слой с подгрузкой типа линии center из текущего lin-файла.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 03.03.2006, 16:27
#52
Valuta


 
Регистрация: 10.02.2006
Екатеринбург
Сообщений: 18


Спасибо создателям и всем, приложившим руку, от наших теток за возможность не думая, раскидывать размеры и штриховку в нужный слой... :!:
Пищат от восторга...
(Жаль только с текстом не совсем подходит...)
Valuta вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 03.03.2006, 16:32
#53
Кулик Алексей aka kpblc
Moderator

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


А что такого с текстом не проходит?
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 05.03.2006, 17:15
#54
pyatifan


 
Регистрация: 29.10.2005
Нижегородская обл.
Сообщений: 219
Отправить сообщение для pyatifan с помощью ICQ


От меня тож спасибо...уверен наши тётьки тож будут рады, да и самому пригодится. Самый успешный вариант в 47 посте. Загрузил файл и вырезал оттуда код про линии, ато 2 инструмента в одном получается. Проблемы getr у меня нет, т.к. лиспов, использующих свои установленные слои в моей коллекции нет.

>kpblc, этот код к линиям наверняка хорош, но у меня не получается им воспользоваться в полной мере. Тока типа таких линий (_kpblc-linetype-load "center" nil) и грузит из файла acadiso.lin Если не трудно расскажи поподробнее как фигануть линии из своего файла; в поддержку я его положил. Вообще была идея пользоваться макросом типа "^C^C-linetype s имя_лини", но линии должны быть уже подгружены в чертёж. И вообще такой макрос фигня, т.к. бывает нужна тока пара тройка линий сварки из десятка. Есть идея сделать вариант выбора линии: типа если линия есть в чертеже, то вставить-если нет в чертеже, то подгрузить. А каждый раз тянуться за ними как в слои для размеров к примеру тож не хоца.

на том сайте сложности с регистрацией...
pyatifan вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 06.03.2006, 10:16
#55
Кулик Алексей aka kpblc
Moderator

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


> pyatifan : На каком сайте сложности с регистрацией?
Так, насчет линий. Например, есть файлы defined.lin и defined.sh*, лежащие в одном месте. К примеру, у тебя там болтается описание типа линии "ГП-КранПуть" (имя от балды взял). Тогда вызвать функцию для подгрузки типа линии можно так:
(_kpblc-linetype-load "ГП-КранПуть" "defined.lin")
В качестве внутреннего списка (который лежит внутри определения функции) можно не прописывать пары соответствия для английской и русской версий - имена-то одинаковые.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 06.03.2006, 10:17
#56
getr

Конструктор
 
Регистрация: 06.04.2005
Из тех ворот-откуда весь народ.
Сообщений: 334
Отправить сообщение для getr с помощью ICQ


->kpblc
Насчет реакции на команду Line,-врядли это удобно.Если например надо начертить штриховую,то она тогда тоже окажется на слое осевых.А вот если будет программа реагировать на тип выбираемой линии из Linetype Control и разносить послоям,тогда есть смысл.Выбрал штриховую,начертил ее с помощью Line или PLine,-легла в свой слой;выбрал сварку,-также легла куда надо(но тут уже надо будет реакция на несколько типов линий).Программа усложнится и вряд ли захочется (или найдется время) ее усовершенствовать.Но уже на этом этапе,как показывают отзывы,народ доволен и даже очень.Впрочем как и я.
getr вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 06.03.2006, 10:33
#57
Кулик Алексей aka kpblc
Moderator

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


> getr : Ну я ж так, для примеру... На самом деле смотри - можно поставить реактор на начало команды сохранения (SAVE, QSAVE) - с выполнением полной чистки чертежа, например. И назначения всем примитивам одного текстового и размерного стиля, к примеру.
На DWGPROPS - вызов собстсвенного окна, к примеру. Да мало ли что можно сделать...
А насчет линии на свой слой тут имхо проще надо сделать - делаем слой, запоминаем текущие установки, делаем свой слой со своим типом линии, цветом и весом; рисуем; возвращаем все обратно.
Такие вещи проще всего повесить в отдельный лисп, а инструмент закинуть на toolpalette (ЯТД). И множить инструменты, меняя 1-2-3 входных параметра. Естественно, что требуется дополнительно прописывать обработчик ошибок, назначать его и прочая.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 06.03.2006, 22:02
#58
pyatifan


 
Регистрация: 29.10.2005
Нижегородская обл.
Сообщений: 219
Отправить сообщение для pyatifan с помощью ICQ


Клёво. Спасиб И чё я сразу не догадался...в файле вроде чёрным по-белому написано (defun _kpblc-linetype-load
(ltype-name ltype-file
Соответствие наименований линий как я понял это замена на русские названия линий в файле, но не получается:
(_kpblc-linetype-load "скрытая" nil)
выводит nil, но это в принципе не особо страшно, т.к. всё равно на кнопке что угодно можно фигануть.
Я всётаки хотел довести ету идею до ума...т.е. пока получается мне нужно совершить 2 действия:
-загрузить линию из файла в чертёж (за что ещё раз спасибо),
-и вставить её в чертёж глупым макросом;
Хотелось бы одним щелчком, не знаю как грамотно дописать это всё...т.е. эхо вывод фигануть и т.п. да и lisp пока для меня не початый край.
Как ни крути, одна фигня за лисп садиться надо
pyatifan вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 07.03.2006, 09:38
#59
Кулик Алексей aka kpblc
Moderator

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


> pyatifan : А в acadiso.lin есть описание линии "скрытая"? Если нет, то в качестве второго параметра передавай имя lin-файла с описанием этого типа линии.
Теперь насчет остального. Как пример. Пишу на коленке, т.к. работы много. За корявость прошу не судить особо строго.
Код:
[Выделить все]
;|=============================================================================
*    Функция рисования полилинии по точкам, указанным пользователем.
*    Параметры вызова:
*	param-list	список точечных пар вида
*			'("name" . "LayerName")	; имя слоя, на котором рисуется
*						; полилиния. Если слоя нет, он
*						; создается. Если слой есть,
*						; выполняются его настройки
*						; слой размораживается
*			("color" . 3)		; цвет слоя. nil -> 7
*			("lt" . "hidden")	; тип линии слоя. nil -> Continuous
*			("ltfile" . "defined.lin")	; имя файла с определением
*						; типа линии. nil -> acadiso.lin
*			("lw" . aclnwt050)	; вес линии слоя. nil 0> aclnwt025
*		)
*    Если один из параметров пропущен, он устанавливается в текущее значение.
*    Недостающие функции можно взять, например, здесь:
* http://www.arcada.com.ua/forum/viewtopic.php?t=445
=============================================================================|;
(defun _kpblc-draw-pline (param-list / adoc *error* layer_list)
  (vl-load-com)
  (setq	adoc	(vla-get-activedocument (vlax-get-acad-object))
	*error*	kpblc-error
	) ;_ end of setq
  (vla-startundomark adoc)
  (if (assoc "layer" param-list)
    (progn
      (setq layer_list (cdr (assoc "layer" param-list)))
					; сделано для собственного удобства.
					; Многим не понравится :)
      (kpblc-error-save-sysvar
	(list (list "clayer"
		    (if	(cdr (assoc "name" layer_list))
		      (vla-get-name (_kpblc-layer-create layer_list))
		      (getvar "clayer")
		      ) ;_ end of if
		    ) ;_ end of list
	      (list "cecolor"
		    (if	(cdr (assoc "color" layer_list))
		      (vla-get-color (_kpblc-layer-create layer_list))
		      (getvar "cecolor")
		      ) ;_ end of if
		    ) ;_ end of list
	      (list "celtype"
		    (if	(cdr (assoc "lt" layer_list))
		      (vla-get-linetype (_kpblc-layer-create layer_list))
		      (getvar "celtype")
		      ) ;_ end of if
		    ) ;_ end of list
;;; Ну и так далее. Просто не пишу, поскольку со временем напряг.
	      ) ;_ end of list
	) ;_ end of kpblc-error-save-sysvar
      ) ;_ end of progn
    ) ;_ end of if
  (command "_.pline")
  (while (/= (logand (getvar "cmdactive") 31) 0)
    (command pause)
    ) ;_ end of while
  (kpblc-error-restore-sysvar)
  (vla-endundomark adoc)
  ) ;_ end of defun
Обрати внимание, что параметры вызова функции этой и функции _kpblc-layer-create совпадают! Без этого нормальной работы так легко будет уже не добиться.
Теперь собственно вкусности: макрос на выполнение:
Код:
[Выделить все]
^C^C(defun c:m-pline() (_kpblc-draw-pline '(("name" . "Скрытые") ("color" . 4) ("lt" . "Скрытые") ("ltfile" . "c:\\cad\\adds\\defined.linЭ))));m-pline;
Пишу в запарке и мыле, так что если что не сработает, обязательно сообщи, попробую исправить (код проверять на полную работоспособность нет времени совсем :().
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 12.03.2006, 16:29
#60
SkiFF

ГИПую, Конструирую, считаю, черчу
 
Регистрация: 18.01.2006
В поиске места работы и жительства
Сообщений: 143
Отправить сообщение для SkiFF с помощью ICQ Отправить сообщение для SkiFF с помощью Skype™


Из 25-го сообщения

Цитата:
Сообщение от VVA
[code];;; Автор идеи Torino, он же Кочетков Андрей
;;;Автоматический перенос размеров на слой "размеры"
;;;и заливки на слой "заливка"
................................................................
Не могу понять. При установки лиспа в автозагрузку отключается команда UNDO. Вернее отмена происходит только один раз. Изменение установок команды UNDO к результату не приводит. Только удаление из автозагрузки лиспа востанавливает положение дел. Что делать? лисп то хороший.
__________________
Строишь завод, проводишь реактора испытание?
грохнется иль долбанет - дважды проверь заранее!
SkiFF вне форума вставить имя Обратить внимание модератора на это сообщение  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Автоматический перенос размеров на слой размеры. Break макро

Инженерные консультации
Опции темы Поиск в этой теме
Поиск в этой теме:

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

Быстрый переход

|| Главная || Каталог САПР || Тендеры || Публикации || Объявления || Биржа труда || Download || Галерея ||
|| Библиотека || Кунсткамера || Каталог предприятий || Контакты || Файлообменник || Блоги ||


Размещение рекламы