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

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

Мои макрокоманды

Ответ
Поиск в этой теме
Непрочитано 19.05.2008, 15:20 1 | #1
Мои макрокоманды
zenon
 
Остекляем!!! Алюминим!!!
 
Москва
Регистрация: 21.02.2005
Сообщений: 3,383

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

Выкладываю 4 своих макрокоманды.

Улучшенная команда _Break, разрыв в одной точке с повтором по правой клавише мышки.
Цитата:
^C^C^P(defun c:break2 () (vl-cmdf "_break" pause "f" pause "@")(princ));break2;
ps. Макрокоманда не моя. Рисунок со старой кнопки.


Объект Xline строится горизонтально
Цитата:
^C^C_xline;_h;
Объект Xline строится вертикально
Цитата:
^C^C_xline;_v;

Объект Xline строится по объекту (не работает по примитивам блока и arx объектов сторонних навесок на автокад).
Цитата:
*^C^C_xline;_offset;_Through;_nea;\_none;@;;
Макрокоманда зациклена, выход по Esc.
ps. Макрокоманда не моя.


Объект Xline строится по объекту, с поворотом в указанной точке на 90 градусов (не работает по примитивам блока и arx объектов сторонних навесок на автокад)
Цитата:
^C^C_xline;_offset;_Through;_nea;\_none;@;^C^C_rotate;_last;;\90;
ps. Макрокоманда доработана из предыдущей.

Соотвественно и кнопочки
Button.rar

__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
Просмотров: 323177
 
Непрочитано 19.05.2008, 16:17
#2
Log_in

Инженер-электрик
 
Регистрация: 16.01.2007
Москва
Сообщений: 19


Вот буквально неделю назад (к своему стыду) начал читать книжку В. Свет "Язык макрокоманд..." и хочу выразить автору огромную благодарность (думаю выражение благодарности не будет оффтопом).

Применительно к себе пока сделал одну кнопку, но зато пользуюсь ей по 100 раз на дню: проверка ошибок, очистка чертежа только от неиспользуемых блоков с последующим сохранением.

^C^C_audit;_y;_-purge;_blocks;;_n;_qsave;
Log_in вне форума  
 
Непрочитано 19.05.2008, 22:34
#3
Кулик Алексей aka kpblc
Moderator

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


Я бы дополнил так:
Код:
[Выделить все]
^C^C_.audit;_y;_.-purge;_a;;_n;_.-purge;_r;;_n;_qsave
Работать будет в AutoCAD от 2005 и выше.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 20.05.2008, 00:12
#4
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 9,836


^P^C^C(startapp "explorer.exe" (strcat "/n,/e," (getvar "dwgprefix")))(princ)
Вызывает Проводник, открытый на текущей директории (макрос не мой)
Vova вне форума  
 
Непрочитано 20.05.2008, 08:33
1 | #5
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,251


Вот макросы, которыми я очень часто пользуюсь:

Блокировать ВЭ
Цитата:
^C^C_.-vports;_lock;_on;
Разблокировать ВЭ
Цитата:
^C^C_.-vports;_lock;_off;
Площадь объекта
Цитата:
^C^C_.area;_Object
Обновить атрибуты с запросом указания блока.
Цитата:
^C^C(defun C:M-Command () (vl-cmdf "_.ATTSYNC" "_S" Pause "_Y"));M-Command;
Включить все слои
Цитата:
^C^C_.-layer;_on;*;;
Ручки внутри блоков вкл/выкл
Цитата:
^C^C'GRIPBLOCK;$M=$(xor,$(getvar,GRIPBLOCK),1);
Вместо текста рамка вкл/выкл
Цитата:
^C^C'QTEXTMODE;$M=$(xor,$(getvar,QTEXTMODE),1);_.regen;
Вообще-то раньше у меня было очень много макросов и даже очень навороченых, но со временем они все меняются на лисп. Лиспом всё-таки удобней.
Makswell вне форума  
 
Автор темы   Непрочитано 20.05.2008, 08:58
#6
zenon

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


Makswell, а можно дополнить макрос
Площадь объекта
Цитата:
^C^C_.area;_Object
чтоб еще и значение текстом вставлял???
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 20.05.2008, 09:05
#7
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,251


zenon, макросом ИМХО не сделать. Можно лиспом.
Makswell вне форума  
 
Непрочитано 20.05.2008, 09:11
#8
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,251


Ещё макрос (для программистов). Тоже частенько пользуюсь.

Посмотреть DXF-свойства примитива
Цитата:
^C^C(defun C:M-Command () (princ (entget (car (entsel)))) (textscr) (princ));M-Command;
Makswell вне форума  
 
Непрочитано 20.05.2008, 09:25
#9
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,663


Вот такой аляповатый макрос:
Код:
[Выделить все]
 
^C^C^P_.area;_Object;\^C(setq txt (getvar "AREA"))(princ "Укажите точку")(command "_text" pause "" "" txt)(princ)
Или здесь посмотреть:
http://www.caduser.ru/cgi-bin/f1/board.cgi?t=19561RU
Profan вне форума  
 
Автор темы   Непрочитано 20.05.2008, 09:42
#10
zenon

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


Profan,
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 20.05.2008, 13:21
#11
Log_in

Инженер-электрик
 
Регистрация: 16.01.2007
Москва
Сообщений: 19


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Я бы дополнил так:
Код:
[Выделить все]
^C^C_.audit;_y;_.-purge;_a;;_n;_.-purge;_r;;_n;_qsave
Работать будет в AutoCAD от 2005 и выше.
Я специально чищу только блоки
Код:
, потому что в ходе проектирования их скапливается до немеряно, а например размерные стили еще не использовались, но будут нужны.) Ну а когда чертеж готов - тотальная зачистка
Log_in вне форума  
 
Непрочитано 21.05.2008, 05:52
#12
Залётный


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


Цитата:
Сообщение от Makswell Посмотреть сообщение
Вот макросы, которыми я очень часто пользуюсь:

Блокировать ВЭ
Цитата:
^C^C_.-vports;_lock;_on;
Разблокировать ВЭ
Цитата:
^C^C_.-vports;_lock;_off;
Вообще-то раньше у меня было очень много макросов и даже очень навороченых, но со временем они все меняются на лисп. Лиспом всё-таки удобней.
Мне кажется удобнее, когда меняется состояние вьюпорта в зависимости от предыдущего. Много лет пользуюсь этим от Jones, Steve:
VPtoggle
Залётный вне форума  
 
Непрочитано 21.05.2008, 10:53
#13
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,251


Ну вот, я же писал:
Цитата:
Вообще-то раньше у меня было очень много макросов и даже очень навороченых, но со временем они все меняются на лисп. Лиспом всё-таки удобней.
Залётный, ты также меня повторил:
Цитата:
Мне кажется удобнее, когда меняется состояние вьюпорта в зависимости от предыдущего...
Но тема то про макросы...
Makswell вне форума  
 
Автор темы   Непрочитано 21.05.2008, 10:57
#14
zenon

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


Цитата:
Сообщение от Makswell Посмотреть сообщение
Но тема то про макросы...
Точно!!!
Посему давайте не уходить от темы, а выкладывать макросы
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 23.05.2008, 02:07
#15
Димас

джедай
 
Регистрация: 31.01.2005
Магадан
Сообщений: 460
<phrase 1=


вот парочка моих
может кто оптимизирует?)
заливка контура сразу двумя штриховками (масштаб, название предустановлены, чтоб работало - менять на свои)
Код:
[Выделить все]
^C^C_select;\-bhatch;p;"Rhyolit";0.5;0;s;p;;;-bhatch;p;"Solid";1;0;s;p;;;
восстановление контура штриховки
Код:
[Выделить все]
^C^C-hatchedit;\b;p;y;
рисуем контур штриховки, после он сам заливается, контур может иметь "внутренние" контуры - поэтому ентер жать несколько раз)
Код:
[Выделить все]
^C^C-HATCH;p;SOLID;W;Y;
Димас вне форума  
 
Автор темы   Непрочитано 10.06.2008, 10:25
#16
zenon

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


А что, больше никто не использует макросы в работе?
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 10.06.2008, 10:36
#17
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,251


ИМХО сейчас макросов меньше, потому что сейчас до них дольше добраться в CUI. Раньше нажал ПКМ на кнопке, и сразу можно править макрос. Проще было экспериментировать. Поменял что-то - посмотрел результат, опять поменял что-то и т.д...
А сейчас... Проще набрать _VLIDE и начать программировать на лиспе, а на кнопку посадить уже сделанную тобой готовую прогу.
Makswell вне форума  
 
Непрочитано 10.06.2008, 11:27
#18
VVA

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


Чато приходят чужие чертежи с кучей прокси объектов. Благодаря Александру Ривилису с этой бедой можно бороться.
Макрос расчленяет, удаляет прокси объекты, делает аудит рисунка и восстанавливает предыдущее состояние слоев.
Код:
[Выделить все]
^C^CEXPLODEALLPROXY;REMOVEALLPROXY;_AUDIT;_Y;_LAYERP;_LAYERP;
Подразумевается, что нужный explodeproxy.arx загружен.
Сам arx и подробное описание здесь:
ObjectARX. Расчленение и удаление proxy-объектов
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 10.06.2008, 12:02
#19
zenon

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


VVA,
А если прописать сюда и загрузку explodeproxy.arx???
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 10.06.2008, 13:04
#20
Кулик Алексей aka kpblc
Moderator

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


zenon, это проще всего делать лиспом.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 10.06.2008, 13:13
#21
zenon

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


Кулик Алексей aka kpblc, я в курсе, просто хочу создать свою панель менюшек, один раз загрузил и все.
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 10.06.2008, 13:24
1 | #22
VVA

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


zenon,
У меня грузится лиспом с проверкой версии Автокада.
Но можно так
Код:
[Выделить все]
^C^C(if(not(member "explodeproxy200X.arx" (arx)))(arxload "explodeproxy200X.arx"));EXPLODEALLPROXY;REMOVEALLPROXY;_AUDIT;_Y;_LAYERP;_LAYERP;
Вместо X вписать
0 - 2002 Автокад
6 - 2004,2005,2006 Автокад
7 - 2007, 2008, 2009 Автокад
Вариант для 2004,2005 и 2006 Автокада
Код:
[Выделить все]
^C^C(if(not(member "explodeproxy2006.arx" (arx)))(arxload "explodeproxy2006.arx"));EXPLODEALLPROXY;REMOVEALLPROXY;_AUDIT;_Y;_LAYERP;_LAYERP;
Сами arx'и по ссылке в посте #18
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 10.06.2008, 13:37
#23
zenon

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


VVA,
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 10.06.2008, 16:51
#24
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 9,836


Цитата:
Сообщение от Makswell Посмотреть сообщение
ИМХО сейчас макросов меньше, потому что сейчас до них дольше добраться в CUI. Раньше нажал ПКМ на кнопке, и сразу можно править макрос. Проще было экспериментировать. Поменял что-то - посмотрел результат, опять поменял что-то и т.д...
.
Когда я впервые пощупал 2006. то сказал об этом-же на форуме почти такими-же словами. Но потом пощупал Tool Palettes и понял, что здесь доступ к редактированию макроса даже проще, чем в старом Customize. Жаль только, что длинные макросы здесь не вмещаются
Vova вне форума  
 
Непрочитано 11.06.2008, 01:51
#25
Димас

джедай
 
Регистрация: 31.01.2005
Магадан
Сообщений: 460
<phrase 1=


небольшой офтоп
Цитата:
Сообщение от VVA Посмотреть сообщение
Чато приходят чужие чертежи с кучей прокси объектов. Благодаря Александру Ривилису с этой бедой можно бороться.
Макрос расчленяет, удаляет прокси объекты, делает аудит рисунка и восстанавливает предыдущее состояние слоев.
а разве не тоже самое делает команда aectoacad
или она только в 2009 появилась?
Димас вне форума  
 
Непрочитано 11.06.2008, 08:16
#26
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,251


Цитата:
Сообщение от Димас Посмотреть сообщение
а разве не тоже самое делает команда aectoacad
или она только в 2009 появилась?
в 2008-м её точно нет
Makswell вне форума  
 
Непрочитано 11.06.2008, 10:16
#27
Кулик Алексей aka kpblc
Moderator

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


Димас, команда AecToACAD существует только в ADT. В чистом AutoCAD ее нет.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 11.06.2008, 12:16
#28
stas_org


 
Регистрация: 05.04.2007
Самара
Сообщений: 1,050
<phrase 1=


Строит qleader по трем параметрам, предварительно отключая ОРТО, а затем его включает. Простая и распространенная выноска для строительных чертежей

для русского акада
^C^Cорто откл _qleader \\\;;орто вкл
для не русского акада
^C^Cortho off qleader \\\;;ortho on

Назвал Супер выноска
stas_org вне форума  
 
Непрочитано 11.06.2008, 12:53
#29
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,251


Добавлю stas_org.
для любого акада:
Код:
[Выделить все]
^C^C_.ORTHO;_Off;_.QLEADER;\\\;;_.ORTHO;_On
Makswell вне форума  
 
Непрочитано 11.06.2008, 16:49
#30
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 9,836


stas_org>
А если ORTHO до применения команды было отклучено?
Vova вне форума  
 
Непрочитано 14.06.2008, 16:36
#31
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 9,836


Кто рисует по растру знает, что периодически растр накрывает собой нарисованное и надо делать Draworder, что достает.
(чтобы перейти к теме о макросах придется вытерпеть небольшое вступление)
Несколько лет назад здесь обсуждалась моя тема о наложении в-портов для создание невсплывающей заливки.. Эту идею (по подсказке, кажется, VK) я применил и к растру.
Итак, в модели имеется растр. В листе он выведен во Vport. В листе-же на него наложен другой V-port с некоторым смещением одной или двух сторон, чтобы можно было открыть любой без Ctrl+R. В этот Vport выводится участок пространства модели, отстоящий от растра на круглое расстояние, пусть вправо на 1000 единиц. Рисовать надо в модели через дырку во втором V-porte. (Да-да, через дырку, но цель оправдывает средства!) прямо по растру. На самом деле в модели рисунок оказывается на расстоянии в 1000 правей растра. Оба впорта должны быть заблокированы и их слой тоже. И тем не менее нет-нет, а автокад поднимает наверх впорт с растром и он топит все; что нарисовано во 2-м в-порте. И Draworder здесь НЕ РАБОТАЕТ!.
Вот макрос. мгновенно исправляющий положение
^c^c -_La;_U;ИмяслояВЭ;;_Cp;\0,0;10,0;_E;_P;;_M;L;;0,0;-10,0;_-La;_Lo;ИмяслояВЭ;;
Кто заинтересуется; расскажу подложенную под макрос идею, она довольно интересная и понять ее навскидку вряд-ли возможно
Vova вне форума  
 
Непрочитано 15.06.2008, 00:37
#32
Кулик Алексей aka kpblc
Moderator

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


Может, подложить свинью и расшифровать все что делает этот макрос?
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 15.06.2008, 04:53
#33
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 9,836


Валяй. В смысле озвучь идею, так как зная ее, макрос становится несложным
Vova вне форума  
 
Непрочитано 15.06.2008, 05:18
#34
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,663


Обидно, конечно, но этот макрос не работает. Это и есть свинья?
Profan вне форума  
 
Непрочитано 15.06.2008, 11:36
#35
VVA

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


Profan, Почти. Здесь используются сокращенные названия команд для Английского Автокада
_-LA - _-LAYER
_CP - _COPY
_M - _MOVE
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 15.06.2008, 21:31
#36
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 9,836


Profan> чтобы макрос заработал, надо иметь два ВЭ один над другим. Кроме того, я списал макрос на бумажку и запустил на форум уже дома. Вполне мог и ошибиться. Проверю завтра на работе, скопировав его с форума. Как ты понимаешь, я бы не запустил макрос в тему не убедившись, что он работатет. Потому что хвастался перед всеми на работе и показывал как ловко он поднимает содержимое одного ВЭ над другим. Все-же главное в моем сообщении это как можно работать по растру. (раньше мне не приходилось рисовать по растру).
Vova вне форума  
 
Непрочитано 15.06.2008, 22:33
#37
Кулик Алексей aka kpblc
Moderator

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


Vova, VVA указал на причину "неработы" макроса не в английских версиях. Должно быть нечто типа:
Код:
[Выделить все]
^C^C-._Layer;_Unlock;ИмяслояВЭ;;_Copy;\0,0;10,0;_Erase;_P;;_Move;_L;;0,0;-10,0;_.-Layer;_Lock;ИмяслояВЭ;;
P.S. Код не проверял.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 16.06.2008, 02:09
#38
Димас

джедай
 
Регистрация: 31.01.2005
Магадан
Сообщений: 460
<phrase 1=


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Димас, команда AecToACAD существует только в ADT. В чистом AutoCAD ее нет.
только что проверял - автокад 2009 ENG
команду понимает, в хелпе правда ее нет
Димас вне форума  
 
Непрочитано 16.06.2008, 02:53
#39
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 9,836


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Vova, VVA указал на причину "неработы" макроса не в английских версиях. Должно быть нечто типа:
Код:
[Выделить все]
^C^C-._Layer;_Unlock;ИмяслояВЭ;;_Copy;\0,0;10,0;_Erase;_P;;_Move;_L;;0,0;-10,0;_.-Layer;_Lock;ИмяслояВЭ;;
А разве обязательно для русского автокада называть англ. команду полностью? У меня было "_M" у тебя _Move и т. д. В одном только месте я забыл подчеркивание при "L" но не думаю, что Profan не подправил. Завтра проверю, нет-ли ошибки путем прямого копирования
Vova вне форума  
 
Непрочитано 16.06.2008, 05:34
#40
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,663


Алексей, Vova! Что же вы, блин. Не будет работать этот макрос в таком виде, как вы его написали:
^C^C-._Layer...
Profan вне форума  
 
Непрочитано 16.06.2008, 09:21
#41
Кулик Алексей aka kpblc
Moderator

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


Profan, признаю - был неправ.
Vova, это обязательно - иначе команда не распознается.
Димас, у меня только ADT установлены, поэтому ничего сказать не могу - возможно, начиная с какой-то версии эта команда встраивается.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 16.06.2008, 17:05
#42
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 9,836


Ага, значит списывая с бумажки сделал ошибку. Вот это в англ работает, здесь прямая копия ^C^C-LA;U;Z-VPORT;;_CP;\;0,0;1,0;E;P;;M;L;;0,0;-1,0;-LA;LO;Z-VPORT;;
Для русского надо черточки подставить и, получается, вместо сокращенных команд надо дать их полностью. Для команды -LA надо _-LA. Насчет точки (. _-LA). У вас что, часто команdы переопределяются? Тогда почему при других командах точки нет?
Интересно, что спор вокруг макроса (что прямо по теме) а о работе по растру вопросов нет. Разве никто с ними не работает?
Vova вне форума  
 
Непрочитано 16.06.2008, 17:12
#43
VVA

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


Vova, В русском Автокаде локализуется и acad.pgp
Короткое имя команды ПЕРЕНЕСИ (_MOVE;M) - П; -СЛОЙ (_-LAYER; -LA) - -СЛ
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 25.06.2008, 13:32
#44
zenon

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


Макрос на объединение в полилинию.
1 вариант
(с) VVA
Код:
[Выделить все]
^C^C(defun C:JPL ( / ope ssnab )(setq ope (getvar "PEDITACCEPT"))(setvar "PEDITACCEPT" 1)(setq ssnab (ssget "_I"))(while (not ssnab)(setq ssnab (ssget)))(command "_pedit" "_Multiple" ssnab "" "_Join" 0 "")(setvar "PEDITACCEPT" ope)(setq ssnab nil)(princ));JPL;
2 вариант
(с) Кочетков Андрей
Код:
[Выделить все]
^C^C^P(defun c:polyjoin () (ssget)(vl-cmdf "_pedit" "_m" "_p" "" "_y" "_j" "" "")(princ));polyjoin;
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 25.06.2008, 13:52
#45
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,663


zenon, макрос Кочеткова Андрея не будет работать, если все объекты, которые надо объединить - полилинии.
А чем тебе не понравился мой последний макрос отсюда:
http://dwg.ru/f/showthread.php?t=22024
Profan вне форума  
 
Непрочитано 25.06.2008, 14:04
#46
VVA

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


Так макрос Андрея будет работать и с полилиниями
Код:
[Выделить все]
^C^C(defun c:polyjoin ()(ssget)(command "peditaccept" 1 "_pedit" "_m" "_p" "" "_j" "" "")(princ));polyjoin;
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 26.06.2008, 09:24
#47
Pilot

Проектировщик свиноводство
 
Регистрация: 21.08.2003
Сообщений: 2,210


Добавлю и свой макрос объединения в полилинию.
Ограничение - первой нужно указывать не полилинию.

Код:
[Выделить все]
*^C^C_pedit;\_y;_j;_box;\\;;
Pilot вне форума  
 
Непрочитано 29.06.2008, 13:12
#48
skkkk

AutoCAD_2008->2011
 
Регистрация: 20.03.2008
Московская область
Сообщений: 2,273


Подскажите пожалуйста, можно ли сделать макрос на кнопку для закрытия Чертежа без сохранения (без вывода диалога Сохранить изменения)?
skkkk на форуме  
 
Непрочитано 29.06.2008, 22:55
#49
Кулик Алексей aka kpblc
Moderator

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


Теоретически последовательность вида
Код:
[Выделить все]
^C^C(vl-load-com)(vla-close (vla-get-activedocument (vlax-get-acad-object)) :vlax-false)
работать должна. Но лично у меня не сработала.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 29.06.2008, 23:15
#50
skkkk

AutoCAD_2008->2011
 
Регистрация: 20.03.2008
Московская область
Сообщений: 2,273


У меня тоже Комстрока гласит:
Цитата:
Команда: (vl-load-com)(vla-close (vla-get-activedocument
(vlax-get-acad-object)) :vlax-false) ; ошибка: Ошибка Automation. Чертеж занят.
skkkk на форуме  
 
Непрочитано 29.06.2008, 23:26
#51
Кулик Алексей aka kpblc
Moderator

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


Оно и было. Честно говоря, не очень понимаю - а нажать Tab и пробел (или Enter) - неужели сильно сложно?
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 29.06.2008, 23:33
#52
skkkk

AutoCAD_2008->2011
 
Регистрация: 20.03.2008
Московская область
Сообщений: 2,273


Действительно, что я, пальцы переломал что ли?...
Просто захотел сделать в правом верхнем углу под кнопкой Закрыть минипанель из двух кнопок с крестиками: зеленая - сохранить и закрыть (макрос, понятное дело, ^C^C_qsave;_close), и красная - закрыть без сохранения....Мне показалось, так удобней будет
skkkk на форуме  
 
Непрочитано 30.06.2008, 09:19
#53
Aндрeй


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


Цитата:
Сообщение от skkkk Посмотреть сообщение
Действительно, что я, пальцы переломал что ли?...
Просто захотел сделать в правом верхнем углу под кнопкой Закрыть минипанель из двух кнопок с крестиками: зеленая - сохранить и закрыть (макрос, понятное дело, ^C^C_qsave;_close), и красная - закрыть без сохранения....Мне показалось, так удобней будет
Есть брутфорсный метод закрытия без сохранения - сохранить под другим временным именем и закрыть. Кстати можно реализовать на макро используя filedia 0 и saveas
Aндрeй вне форума  
 
Непрочитано 07.07.2008, 15:03
#54
dextron3

Фотограф
 
Регистрация: 01.01.2007
Алматы
Сообщений: 5,042


как через командную строку нажать: CTRL+TAB ?
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 17.08.2008, 03:34
#55
skkkk

AutoCAD_2008->2011
 
Регистрация: 20.03.2008
Московская область
Сообщений: 2,273


Андрей, хотел попробовать "брутфорсный метод", не работает что-то у меня _saveas при filedia=0 - виснет КАД. Я нашел, другой, тоже брутфорсоватый, работает. Не макро, но тем не менее....http://dwg.ru/f/showthread.php?t=949...8%F6%2A&page=2
skkkk на форуме  
 
Непрочитано 09.09.2008, 14:40
#56
stas_org


 
Регистрация: 05.04.2007
Самара
Сообщений: 1,050
<phrase 1=


Цитата:
Сообщение от Makswell Посмотреть сообщение
zenon, макросом ИМХО не сделать. Можно лиспом.
пост№7

^C^C_area о \_text \;;%%u$M=$(*,$(fix,$(*,$(getvar,area),0.0001)),0.01)м%%178;
stas_org вне форума  
 
Непрочитано 09.09.2008, 15:00
#57
skkkk

AutoCAD_2008->2011
 
Регистрация: 20.03.2008
Московская область
Сообщений: 2,273


Во вставляемом тексте при измерении замкнутой фигуры (пробовал на прямоугольнике и круге) появляется значение ноль метров квадратных. Почему?
skkkk на форуме  
 
Непрочитано 09.09.2008, 15:10
#58
stas_org


 
Регистрация: 05.04.2007
Самара
Сообщений: 1,050
<phrase 1=


регион попробуй
stas_org вне форума  
 
Непрочитано 09.09.2008, 15:12
#59
skkkk

AutoCAD_2008->2011
 
Регистрация: 20.03.2008
Московская область
Сообщений: 2,273


То же самое.
skkkk на форуме  
 
Непрочитано 09.09.2008, 15:13
#60
stas_org


 
Регистрация: 05.04.2007
Самара
Сообщений: 1,050
<phrase 1=


и полилиния замкнутая тоже работает
stas_org вне форума  
 
Непрочитано 09.09.2008, 15:17
#61
stas_org


 
Регистрация: 05.04.2007
Самара
Сообщений: 1,050
<phrase 1=


последняя измеренная площадь сохраняется в переменной area, видимо у тебя не сохраняется, видимо по причине того, что кака-нибудь другая переменная это запрещает.
stas_org вне форума  
 
Непрочитано 11.09.2008, 16:22
#62
Diman111

промышл проектант
 
Регистрация: 26.05.2005
Изовсехщелей
Сообщений: 307


Вопрос - есть некий макрос печати в файл
ну например вида

Код:
[Выделить все]
^C^C-plot;y;;DesignJet;User A1;m;l;n;e;f;c;y;A1_mono;y;w;y;~;y;y;
и есть некий макрос печати в файл
вида

Код:
[Выделить все]
^C^C-plot;y;;DesignJet;User A1;m;l;n;e;f;c;y;A1_mono;y;n;n;n;y;~;y;y;
первый выводит на печать в пространстве модели - второй в пространстве бумаги.
Есть переменная tilemode по состоянию которой можно узнать о пространстве.
НО - вот как сделать ветвление при использовании макросов?
HELP....
Diman111 вне форума  
 
Непрочитано 11.09.2008, 17:00
#63
VVA

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


Diman111, Можно DIESEL'ом
Вариант меню
Код:
[Выделить все]
$M=$(if,$(eq,$(getvar,tilemode),1),^C^C_-plot;y;;DesignJet;User A1;m;l;n;e;f;c;y;A1_mono;y;w;y;~;y;y;,^C^C-plot;y;;DesignJet;User A1;m;l;n;e;f;c;y;A1_mono;y;n;n;n;y;~;y;y;)
Проверить правильность работы дизеля можно в MODEMACRO (см. строку режимов) так
Код:
[Выделить все]
(setvar "MODEMACRO" "$M=$(if,$(eq,$(getvar,tilemode),1),^C^C_-plot;y;;DesignJet;User A1;m;l;n;e;f;c;y;A1_mono;y;w;y;~;y;y;,^C^C-plot;y;;DesignJet;User A1;m;l;n;e;f;c;y;A1_mono;y;n;n;n;y;~;y;y;)")
Посмотри, нужный ли макрос остается в строке режимов
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 12.09.2008 в 11:16.
VVA вне форума  
 
Непрочитано 12.09.2008, 09:18
#64
Diman111

промышл проектант
 
Регистрация: 26.05.2005
Изовсехщелей
Сообщений: 307


Спасибо - печатает верно

а вот вариант с записью в трей не сработал

Код:
[Выделить все]
Command: (setvar "MODEMACRO" "$M=755CM_A1
("_> User A1
("_> m
("_> l
("_> n
("_> e
("_> f
("_> c
("_> y
("_> A1_mono
("_> y
("_> w
("_> y
("_> ~
("_> y
("_> y
("_> ,*Cancel*
; error: Function cancelled
Diman111 вне форума  
 
Непрочитано 12.09.2008, 11:11
#65
VVA

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


Это у тебя криво скопировалось в командную строку.
Попробуй так
Код:
[Выделить все]
(defun C:TEST ()
(setvar
  "MODEMACRO"
  (strcat
    "$M=$(if,$(eq,$(getvar,tilemode),1),"
    "^C^C_-plot;y;;DesignJet;User A1;m;l;n;e;f;c;y;A1_mono;y;w;y;~;y;y;"
    ","
    "^C^C-plot;y;;DesignJet;User A1;m;l;n;e;f;c;y;A1_mono;y;n;n;n;y;~;y;y;"
    ")")
  )
  (princ)
  )
Команда TEST. Смотреть в район отображения координат курсора. Чтобы понятно было синим выделили элементы DIESEL. Черные соответственно твои макросы
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 12.09.2008, 13:08
#66
Diman111

промышл проектант
 
Регистрация: 26.05.2005
Изовсехщелей
Сообщений: 307


Спасибо.
По дизелю не подскажите ссылочки на родном языке форума? с пояснением синтаксиса и операторов и примерами .
Пожалуйста
Diman111 вне форума  
 
Непрочитано 12.09.2008, 13:37
#67
VVA

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


Книги Н.Полещука + берешь acad.mns от 2004 и в блокноте смотришь.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 27.10.2008, 17:17
#68
Hans667

сети
 
Регистрация: 12.04.2007
SPb
Сообщений: 534
Отправить сообщение для Hans667 с помощью AIM Отправить сообщение для Hans667 с помощью Skype™


помогите с командой,не догоняю что не так-^C^C-overkill;_all;;;_audit;_y;_purge;
после overkill застревает- в ком строке следущее-Command: -overkill
Select objects: _all
1136 found
Select objects:
2 objects were not in the current space.
IGNORE=none
Fuzz=0.000001, Optimize PLINES=Y, combine PARTIAL overlap=Y, combine ENDTOEND=Y
Enter an option to change [Ignore/Fuzz/Plines/parTial/Endtoend] <done>:
0 object(s) deleted.
__________________
Errare humanum est, insipientis perseverare
Hans667 вне форума  
 
Непрочитано 27.10.2008, 17:34
#69
Hans667

сети
 
Регистрация: 12.04.2007
SPb
Сообщений: 534
Отправить сообщение для Hans667 с помощью AIM Отправить сообщение для Hans667 с помощью Skype™


В общем до Аудита не доходит,а если один ентер убрать то выползает окно диалоговое,где надо ентер жать
__________________
Errare humanum est, insipientis perseverare
Hans667 вне форума  
 
Непрочитано 27.10.2008, 18:16
#70
VVA

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


Оказался востребованным вариант для Автокада 2008 и выше, сбрасывающий ScaleLIST (см Зараза в 2008) вычищающий список масштабов от дюймов (можно перенастроить на метрические единицы)
Код:
[Выделить все]
(vl-load-com)
(command "_-scalelistedit" "_r" "_y" "_exit")
(foreach sc (dictsearch (namedobjdict) "acad_scalelist")
  (if (and (= (car sc) 350)
           (vl-string-search "\"" (cdr(assoc 300 (entget (cdr sc)))))
           )
    (vl-catch-all-apply 'vla-delete (list (vlax-ename->vla-object (cdr sc))))
    )
  )
Можно поместить в автозагрузку (mnl файл) либо сделать команду и повесить на кнопку
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 27.10.2008, 18:47
#71
dextron3

Фотограф
 
Регистрация: 01.01.2007
Алматы
Сообщений: 5,042


VVA, а мой чем плох?


Код:
[Выделить все]
(defun restore-scale-list ()
  (command "_.-scalelistedit" "_r" "_y" "_e")
  ) ;_ end of defun

(restore-scale-list)
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 27.10.2008, 22:08
#72
VVA

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


dextron3, Твой не уберает дюймы в перечне масштабов
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 28.10.2008, 05:07
#73
dextron3

Фотограф
 
Регистрация: 01.01.2007
Алматы
Сообщений: 5,042


VVA, а как там могут дюймы появиться если я исключительно в мм черчу, или это для наших западных коллег?
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 28.10.2008, 08:18
#74
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,251


VVA, mnl-файл ИМХО загружается 1 раз при загрузке CUI. При открытии, например, 2-го файла косяк с масштабами не решится. Так что я думаю лучше запихать это в acaddoc.lsp.

Добавлено:
А вот бы ещё это же, да без командных методов - вообще было бы замечательно...
Makswell вне форума  
 
Непрочитано 28.10.2008, 09:57
#75
VVA

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


Цитата:
Сообщение от Makswell Посмотреть сообщение
VVA, mnl-файл ИМХО загружается 1 раз при загрузке CUI...
А cui грузится в каждый чертеж. У меня этот код как раз и находится в моем mnl файле
Цитата:
Добавлено:
А вот бы ещё это же, да без командных методов - вообще было бы замечательно...
ТОгда можно пойти от противного. Перечислить желаемые масштабы, а остальные на месте без суда и следствия.
Оформил ввиде функции, хотя в загружаемом файле можно оставить только цикл foreach
Код:
[Выделить все]
;;;Удаляем  все масштабы (scalelist) не перечисленные в списке-шаблоне
(defun restore-scale-list ()
  (vl-load-com)
  (foreach sc (dictsearch (namedobjdict) "acad_scalelist")
    (if (and (= (car sc) 350)
             (not (member (cdr (assoc 300 (entget (cdr sc))))
                          '("1:1" "1:2" "1:10" "1:50" "1:100" "2:1") ;_Здесь перечисляем нужные масштабы
                  ) ;_ end of member
             ) ;_ end of not
        ) ;_ end of and
      (vl-catch-all-apply
        'vla-delete
        (list (vlax-ename->vla-object (cdr sc)))
      ) ;_ end of vl-catch-all-apply
    ) ;_ end of if
  ) ;_ end of foreach
) ;_ end of defun
(restore-scale-list)


Фукнция и команда
Код:
[Выделить все]
(defun SetScale( / lst pat tmp)
;;; pat - шаблон маштабов состоит из списков вида
;;;  (("имя в списке масштабов1" Масштаб_единицы_листа1 Масштаб_единицы_чертежа1)
;;;   ("имя в списке масштабов2"  Масштаб_единицы_листа2 Масштаб_единицы_чертежа2)
;;;   ...
;;;   )
  (setq pat '(("1:1" 1 1)("1:2" 1 2)("1:10" 1 10)
	      ("1:50" 1 50)("1:100" 1 100)("2:1" 2 1)
	      ("1:11" 1 11)("Мой" 21.5 8.133)))
  ;;;Удаляем не входящие в шаблон масштаб
  (setq tmp (mapcar 'car pat))
(if (GETCNAME "_SCALELISTEDIT")
  (progn
    (COMMAND "_-SCALELISTEDIT" "_R" "_Y" "_E")
    (setq lst nil)
    (foreach item (dictsearch (namedobjdict) "ACAD_SCALELIST")
      (if (= 350 (car item))
     (setq lst (cons (cdr(assoc 300 (entget(cdr item)))) lst))
    ) ;_ end of if
  )
  (while (> (getvar "CMDACTIVE") 0) (command))
    (command "_.-SCALELISTEDIT")
  (foreach item lst
    (command "_D" item)
    )
    (command "_E")
   (setq lst nil) 
  ;;;Список оставшихся масштабов
   (foreach item (dictsearch (namedobjdict) "ACAD_SCALELIST")
    (if	(= 350 (car item))
      (setq lst (cons (cdr(assoc 300 (entget (cdr item)))) lst))
    ) ;_ end of if
  ) ;_ end of foreach
)
  )
    
  ;;;Список не созданных масштабов из шаблона pat
   (if (and lst (setq pat (vl-remove-if '(lambda(x)(member (car x) lst)) pat)))
     (progn
       (while (> (getvar "CMDACTIVE") 0)(command))
       (command "_.-scalelistedit")
       (foreach item pat
	 (command "_Add" (car item) (strcat (rtos (cadr item)) ":" (rtos (caddr item))))
	 ) ;_ end of foreach
       (command "_Exit")
       (while (> (getvar "CMDACTIVE") 0)(command))
       )
     )
  (princ)
   )
(defun C:SetScale ()(SetScale))

Код:
[Выделить все]
;;;======================================================
;;; СПИСОК МАСШТАБОВ SCALELIST SCALE
;;;======================================================

(vl-catch-all-apply
  '(lambda ()
     ((lambda (lst / dict dn)
;;; Purge excess scales
;;; gile
;;; http://www.theswamp.org/index.php?topic=29663.0 
;;;lst - шаблон маштабов состоит из списков вида
;;;  (("имя в списке масштабов1" "Масштаб единицы листа1" "Масштаб единицы чертежа1")
;;;   ("имя в списке масштабов2" "Масштаб единицы листа2" "Масштаб единицы чертежа2")
;;;   ...
;;;   )
;;; lst - the pattern scale is made up of lists of species 
;;; (("Name of the Scale 1" Scale_paper_unit_1 Scale_drawing_unit_1) 
;;; ("Name of the Scale 2"  Scale_paper_unit_2 Scale_drawing_unit_2) 
;;; ... 
;;;)
;;; Usage (SetScale)
;;;  (setq pat '(("1:1" 1 1)("1:2" 1 2)("1:10" 1 10) ;_Correct scale here
;;;	      ("1:50" 1 50)("1:100" 1 100)("2:1" 2 1)
;;;	      ))
	(setq dn "A")
        (if (setq dict (dictsearch (namedobjdict) "ACAD_SCALELIST"))
          (progn
            (entmod (vl-remove-if
                      '(lambda (x) (or (= (car x) 3) (= (car x) 350)))
                      dict
                    ) ;_ end of vl-remove-if
            ) ;_ end of entmod
            (setq dict (cdr (assoc -1 dict))
                  n    -1
            ) ;_ end of setq
            (foreach s lst
              (dictadd dict
		       (progn
			 (if (= n 9)
			 (setq dn (chr(1+ (ascii dn)))
			       n -1
			       )
			 )
			 (terpri)
			 (princ
			   (strcat dn (itoa (setq n (1+ n))))
			   )
			 )
                       (entmakex
                         (list
                           '(0 . "SCALE")
                           '(100 . "AcDbScale")
                           (cons 300 (car s))
                           (cons 140 (cadr s))
                           (cons 141 (caddr s))
               		  '(70 . 0) ;_ kpblc http://forum.dwg.ru/showthread.php?t=73416
	                  '(290 . 1);_ kpblc http://forum.dwg.ru/showthread.php?t=73416
                         ) ;_ end of list
                       ) ;_ end of entmakex
              ) ;_ end of dictadd
            ) ;_ end of foreach
          ) ;_ end of progn
        ) ;_ end of if
      )
       '(("1:1" 1 1)
	 ("1:2" 1 2)
	 ("1:10" 1 10)
	 ("1:50" 1 50)
	 ("1:100" 1 100)
	 ("2:1" 2 1)
	)
     )
   )
)

PS Это все справедливо для Автокада с версии 2008 и выше
PPS Еще тема про масштабы LISP. Как программно создавать масштабы аннотаций
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 04.10.2011 в 09:41. Причина: Новый вариант
VVA вне форума  
 
Непрочитано 28.10.2008, 10:14
#76
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,251


Цитата:
Сообщение от VVA Посмотреть сообщение
А cui грузится в каждый чертеж. У меня этот код как раз и находится в моем mnl файле
Пардон, был неправ

Добавлено:
За код - спасибо!
Makswell вне форума  
 
Непрочитано 28.10.2008, 11:06
#77
dextron3

Фотограф
 
Регистрация: 01.01.2007
Алматы
Сообщений: 5,042


VVA, А у меня бывало такое что масштаб 1:100, ставлю он совсем не тот выдает, другой совсем непонятный масштаб, а когда 1:101 ставлю то вроде как 1:100 но естественно не точный, как это вылечить?

Буду благодарен!
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 28.10.2008, 12:40
#78
VVA

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


dextron3, Лечи так: Меню Формат/Список масштабов/Изменить
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 28.10.2008, 15:27
#79
dextron3

Фотограф
 
Регистрация: 01.01.2007
Алматы
Сообщений: 5,042


VVA, нет это уже сложно мне бы народное лекарство, ваш лисп может мне помочь?
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 28.10.2008, 16:28
#80
VVA

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


Лисп масштабы не правит, только удаляет или оставляет в живых
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 28.10.2008, 16:34
#81
dextron3

Фотограф
 
Регистрация: 01.01.2007
Алматы
Сообщений: 5,042


VVA, пост #75, а если я в список внесу масштаб не существующий в автокаде к примеру 1:13 то что будет?
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 28.10.2008, 17:29
#82
VVA

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


Ничего не будет
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 28.10.2008, 23:24
#83
Кулик Алексей aka kpblc
Moderator

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


Еще один вариант, в продолжение #75. По идее должно работать и в предыдущих версиях, тупо очищая словарь. Скорость не замерял. В 2008 вроде работает корректно:
Код:
[Выделить все]
(defun _dwgru-scale-list-clear-and-restore-by-doc (doc lst / dict)
                                                  ;|
*    Очистка неиспользуемых списков масштабов документа
*    Параметры вызова:
	doc	указатель на обрабатываемый документ. nil -> текущий
	lst	список строковых представлений масштабов, которые надо
		"ставить в живых"
*    Примеры вызова:
(_dwgru-scale-list-clear-and-restore-by-doc nil '("1:100" "1:10"))
|;
  (vl-load-com)
  (if (not doc)
    (setq doc (vla-get-activedocument (vlax-get-acad-object)))
    ) ;_ end of if
  (if (= (type
           (setq
             dict (vl-catch-all-apply
                    (function
                      (lambda ()
                        (vla-item (vla-get-dictionaries doc) "acad_scalelist")
                        ) ;_ end of lambda
                      ) ;_ end of function
                    ) ;_ end of vl-catch-all-apply
             ) ;_ end of setq
           ) ;_ end of type
         'vla-object
         ) ;_ end of =
    (vlax-for item dict
      (if (not
            (member (cdr (assoc 300 (entget (vlax-vla-object->ename item))))
                    lst
                    ) ;_ end of member
            ) ;_ end of not
        (vl-catch-all-apply
          (function
            (lambda ()
              (vla-delete item)
              ) ;_ end of lambda
            ) ;_ end of function
          ) ;_ end of vl-catch-all-apply
        ) ;_ end of if
      ) ;_ end of vlax-for
    ) ;_ end of if
  ) ;_ end of defun
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 29.10.2008, 05:26
#84
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,553
<phrase 1= Отправить сообщение для wetr с помощью Skype™


Подскажите, как в 1 макросе правильно прописать выполнение 2 и более лиспов. Или выпонение комманды автокад после выполнения лиспа. Лисп подгружен, лежит в путях доступа.
Тупо
Код:
[Выделить все]
^C^C_layiso;\\;лисп\;_Layuniso
не хочет работать. После выполнения лиспа макрос прекрашает работать
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Непрочитано 29.10.2008, 08:24
#85
Кулик Алексей aka kpblc
Moderator

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


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

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 30.10.2008, 02:11
#86
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,553
<phrase 1= Отправить сообщение для wetr с помощью Skype™


Цитата:
Возможно, проблема в самом лиспе.
сомневаюсь. Это твой bbl2
Цитата:
И, кстати, кто мешает полностью прописать все команды внутри лиспа?
Через command?
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Непрочитано 30.10.2008, 03:03
#87
Кулик Алексей aka kpblc
Moderator

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


wetr, а что это за bbl2? Чего оно делает (если б я помнил все что написал...) - напомни.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 30.10.2008, 04:46
#88
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,553
<phrase 1= Отправить сообщение для wetr с помощью Skype™


http://forum.dwg.ru/showthread.php?t=20808
Расставляет блоки на пересечении линий.
Но в лисп я вносить изменения не очень хочу - испорчу только.
А в принципе должен работать макрос, например
Цитата:
^C^Cbbl2;_line
???
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Непрочитано 30.10.2008, 09:52
#89
VVA

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


wetr, Если лиспы подгружены, то можно так
Код:
[Выделить все]
^C^C(Defun C:RUN()(C:LAYISO)(while (> (getvar "CMDACTIVE") 0)(command pause))(C:BBL2)(C:LAYUNISO));RUN
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 30.10.2008, 10:18
#90
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,553
<phrase 1= Отправить сообщение для wetr с помощью Skype™


VVA, попытаюсь разобраться.
Цитата:
(Defun C:RUN()
(C:LAYISO)
(while (> (getvar "CMDACTIVE") 0)(command pause))
(C:BBL2)
(C:LAYUNISO)
)
программа запускает LAYISO, до тех пор пока команда активна она зациклена (выполняется).
Потом выполнить лисп BBL2
Потом выполнить LAYUNISO.

Меня смущает вот это
Цитата:
(C:LAYISO
Это сокращение для command используемое для макросов?
(Я не могу предположить, что ты принял команду LAYISO за лисп)

В общем не работает у меня.
Цитата:
Command: (Defun C:RUN()(C:LAYISO)(while (> (getvar "CMDACTIVE") 0)(command
pause))(C:BBL2)(C:LAYUNISO))
C:RUN

Command: RUN ; error: no function definition: C:LAYISO
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Непрочитано 30.10.2008, 13:10
#91
VVA

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


Цитата:
Сообщение от wetr Посмотреть сообщение
(Я не могу предположить, что ты принял команду LAYISO за лисп)
В общем так оно раньше (до 2008) и было
Кусочек файла acetlayr.lsp
Код:
[Выделить все]
; -------------------- ISOLATE LAYER FUNCTION --------------------
; Isolates selected object's layer by turning all other layers off
; ----------------------------------------------------------------
 
(Defun C:LAYISO (/ SS CNT LAY LAYLST VAL VPMODE)
  ;;;local function to find an unused layer state name for saving
....
У тебя 2008 и старше (команды работы со слоями перекочевали из express в Автокад)
Для 2008, 2009
Код:
[Выделить все]
^C^C(Defun C:RUN()(Command "LAYISO")(while (> (getvar "CMDACTIVE") 0)(command pause))(C:BBL2)(Command "LAYUNISO"));RUN
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 30.10.2008, 15:25
#92
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,553
<phrase 1= Отправить сообщение для wetr с помощью Skype™


VVA, спасибо! Действительно все так и есть.
Я так полагаю вариант из №89 подойдет для запуска двух лиспов.
Offtop: Я уже нарисовал колонну по твоему заданию для чайников, изучающих лисп. Сейчас изучаю функции AutoLISP
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Непрочитано 01.11.2008, 06:25
#93
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,553
<phrase 1= Отправить сообщение для wetr с помощью Skype™


Очень простой макрос, но мне очень помогает.
Для тех кто часто использует wipeout
Отключить границы wipeout
Код:
[Выделить все]
^C^C_wipeout;f;off;
Включить границы wipeout
Код:
[Выделить все]
^C^C_wipeout;f;on;
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Непрочитано 01.11.2008, 13:39
#94
dextron3

Фотограф
 
Регистрация: 01.01.2007
Алматы
Сообщений: 5,042


wetr, а для чего отключать границы, ведь можно в невидиомо слое делать?
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 01.11.2008, 13:42
#95
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,251


Цитата:
Сообщение от dextron3 Посмотреть сообщение
wetr, а для чего отключать границы, ведь можно в невидиомо слое делать?
В непечатаемом?
Тогда при печати ничего не замаскируется.
Makswell вне форума  
 
Непрочитано 01.11.2008, 14:19
#96
dextron3

Фотограф
 
Регистрация: 01.01.2007
Алматы
Сообщений: 5,042


Makswell, я не понял термин замаскируется, что под этим словом поразумевается в Автокаде?
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 01.11.2008, 14:31
#97
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,251


Команда _.WIPEOUT в русском Автокаде переведена как МАСКИРОВКА...
Makswell вне форума  
 
Непрочитано 05.11.2008, 12:16 масштаб линий
#98
Jonas

конструктор машиностроитель
 
Регистрация: 14.05.2007
Новосибирск
Сообщений: 893


Часто встречаются вопросы о том что не видна прерывистая (или иная не сплошная) линия. И чще всего проблемма в масштабе линии. Чтобы долго не выяснять сделал макрос.

^C^Cсвойства;\;Лмасштаб;2.5;;;\;Лмасштаб;5;;;\;Лмасштаб;10;;;\;Лмасштаб;15;;;\;Лмасштаб;20;;;\;Лмасштаб;30;;;\;Лмасштаб;40;;;\;Лмасштаб;50;;;\;Лмасштаб;75;;;\;Лмасштаб;100;;;\;Лмасштаб;150;;;\;Лмасштаб;200;;;\;Лмасштаб;500;;

теперь просто щелкаю по лиии пока не получу желаемый результат.
Jonas вне форума  
 
Непрочитано 05.11.2008, 20:08
#99
dextron3

Фотограф
 
Регистрация: 01.01.2007
Алматы
Сообщений: 5,042


Jonas, а можно для английского автокада, данный макрос?
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 06.11.2008, 01:00
#100
Кулик Алексей aka kpblc
Moderator

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


Я бы искал / писал лисп... А так...
Код:
[Выделить все]
^C^C_properties;\;;_lw;2.5;;;
Ну и тому подобное...
Вроде так.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 06.11.2008, 05:45
#101
Jonas

конструктор машиностроитель
 
Регистрация: 14.05.2007
Новосибирск
Сообщений: 893


[quote=Кулик Алексей aka kpblc;306797]Я бы искал / писал лисп... А так...
QUOTE]

Не уютно лиспу в моей старой башке, к сожжалению.
А вообще было бы интересно получить инструмент динамического масштабирования линии.
Jonas вне форума  
 
Непрочитано 06.11.2008, 06:38
#102
dextron3

Фотограф
 
Регистрация: 01.01.2007
Алматы
Сообщений: 5,042


Кулик Алексей aka kpblc,

Код:
[Выделить все]
^C^C_properties;\;;_lw;2.5;;;
не работает что то...
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 06.11.2008, 08:15
#103
Кулик Алексей aka kpblc
Moderator

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


Jonas, как пример: http://forum.dwg.ru/showpost.php?p=298124&postcount=47
dextron3, я код писал сильно выпимши (у жены денб рождения был) и "насухую". Сейчас попробую подправить...
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 06.11.2008, 08:52
#104
Кулик Алексей aka kpblc
Moderator

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


Во, вроде так получится:
Код:
[Выделить все]
^C^C_change;\;_p;_s;2.5;;;\;_p;_s;5;;;\;_p;_s;10;;
Хотя черт его знает, я DIESEL'ем давно не игрался
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 07.11.2008, 16:43
#105
Composter

Отопление и вентиляция
 
Регистрация: 31.10.2008
Москва
Сообщений: 376


мож кто подскажет скрипт ,что бы при щелкании на текст он в конце текста вставлял вторую строку, уменьшенной высоты и смещенную вверх(либо какие нить другие символы). еще если можно что бы в этом скрипте можно было бы задавать высоту шрифта второй строки.и если можно, то что бы можно было выделить несколько объектов.
Composter вне форума  
 
Непрочитано 07.11.2008, 16:54
#106
Кулик Алексей aka kpblc
Moderator

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


Ни себе хрена... Оформляй полное ТЗ и новый топик в разделе "Программирование". Не забудь тлько показать, что сам делал.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 07.11.2008, 17:12
#107
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,760


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Во, вроде так получится:
Код:
[Выделить все]
^C^C_change;\;_p;_s;2.5;;;\;_p;_s;5;;;\;_p;_s;10;;
Хотя черт его знает, я DIESEL'ем давно не игрался
Это разве дизель?
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Непрочитано 08.11.2008, 21:22
#108
Кулик Алексей aka kpblc
Moderator

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


Krieger, а что же? Ну не лисп, это точно
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 09.11.2008, 10:40
#109
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,760


Я думал дизель, это когда скобочки с баксами и запятыми, типа:
Код:
[Выделить все]
$M=$(if,$(getvar,dimscale),$(*,$(getvar,dimscale),2),2)
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Непрочитано 09.11.2008, 11:23
#110
Кулик Алексей aka kpblc
Moderator

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


Может быть, спорить не стану
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 09.11.2008, 17:37
#111
dextron3

Фотограф
 
Регистрация: 01.01.2007
Алматы
Сообщений: 5,042


Кулик Алексей aka kpblc,
код
Код:
[Выделить все]
^C^C_change;\;_p;_s;2.5;;;\;_p;_s;5;;;\;_p;_s;10;;
не работает почемуто, что я делаю неправильно...
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 16.12.2008, 10:16
#112
Shoorup


 
Регистрация: 16.09.2006
Минск
Сообщений: 1,587
<phrase 1= Отправить сообщение для Shoorup с помощью Skype™


Очень часто для пометки того что уже проверил приходится менять цвет примитива.
Сделал кнопку для замены цвета на синий:
Код:
[Выделить все]
^C^C_change;\;_p;_c;5;;
можно добавить повторение
ну и цвет думаю тоже поменять не сложно
Код:
[Выделить все]
*^C^C_change;\;_p;_c;5;;
От меня попросили например создать кнопку замены цвета для уже выбранных объектов. На вопрос: "А чем тебе просто цвет выбрать не нравится?" - ответили что бывает выберешь кучу чего а цвет наскоряк выберешь не тот и по инерции эскейп. Приходится все заново выбирать.
Сделал ему так:
Код:
[Выделить все]
^C^C_change;_p;_c;5;;
Доработали ещё тут
__________________
Поезд который устал от ржавого здравомыслия рельсов...

Последний раз редактировалось Shoorup, 27.04.2012 в 14:15.
Shoorup вне форума  
 
Непрочитано 16.12.2008, 11:30
#113
Baldares


 
Регистрация: 17.10.2008
Саратов
Сообщений: 430


Розыск макроса!

"Рисование отрезка, подобного выбранному (слой, цвет, стиль линии, толщина)"

Благодарность гарантируется.
Baldares вне форума  
 
Непрочитано 16.12.2008, 15:42
#114
Shoorup


 
Регистрация: 16.09.2006
Минск
Сообщений: 1,587
<phrase 1= Отправить сообщение для Shoorup с помощью Skype™


Код:
Пробуй!
__________________
Поезд который устал от ржавого здравомыслия рельсов...
Shoorup вне форума  
 
Автор темы   Непрочитано 16.12.2008, 15:58
#115
zenon

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


_offset
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 16.12.2008, 16:44
#116
andrew_ro

Светопрозрачные конструкции, проектирование
 
Регистрация: 29.07.2008
Сообщений: 47


Всем привет.
Может кто знает как создать такой макрос:
имеем несколько вхождений динамического блока в виде прямоугольника с одной операцией - полярное растяжение (стойки и ригели каркаса). Нужно выделить несколько вхождений блока и из ком. строки задать новое значение distance. Блоки должны растягиваться ортогонально (естественно только в одном направлении).
Или подскажите как добраться из командной строки до свойства distance (доступно в палитре свойств).
_-ch;_p; - не отображает это свойство. У меня локализованный AutoCAD 2006.
andrew_ro вне форума  
 
Непрочитано 16.12.2008, 16:57
#117
Baldares


 
Регистрация: 17.10.2008
Саратов
Сообщений: 430


Цитата:
Сообщение от Shoorup Посмотреть сообщение
Код:
Пробуй!
Цитата:
Сообщение от zenon Посмотреть сообщение
_offset
Шустрики
Это все лишние телодвижения.
Вот нашел, в ruCADe есть такая команда, рисования "такого же" объекта. Причем она шурует все примитивы, в том числе блоки, тексты и т.д.
Где бы лиспик на нее найти...
Макросиком тут похоже не обойтись.
Baldares вне форума  
 
Непрочитано 16.12.2008, 17:05
#118
ытя


 
Регистрация: 23.09.2005
СПб
Сообщений: 418


2Baldares
http://dwg.ru/dnl/4357
ытя вне форума  
 
Непрочитано 16.12.2008, 17:28
#119
Baldares


 
Регистрация: 17.10.2008
Саратов
Сообщений: 430


ытя, ф точку!
Еще бы исходничек глянуть.
Спасибо. Раньше что-то недоглядел в данлоаде.

Offtop: У меня такое чувство, что это чей-то второй ник. Как может быть с 2005 года 115 сообщений. Удивительно. ытя, Вы меня извините, просто ИМНО
Baldares вне форума  
 
Непрочитано 17.12.2008, 11:57
#120
ытя


 
Регистрация: 23.09.2005
СПб
Сообщений: 418


Offtop: ник (мой) единственный
ытя вне форума  
 
Непрочитано 19.12.2008, 11:10
#121
Hans667

сети
 
Регистрация: 12.04.2007
SPb
Сообщений: 534
Отправить сообщение для Hans667 с помощью AIM Отправить сообщение для Hans667 с помощью Skype™


Доброго времени суток всем форумчанам.Помогите написать макрокоманду для следущих действий: хочу создать кнопку чтобы вылезала страница в интернете. получиолось только ^C^C_start;firefox;...../т.е. дальше появляется окно браузера и в автокаде команды не действуют.Подскажите как быть?
__________________
Errare humanum est, insipientis perseverare
Hans667 вне форума  
 
Непрочитано 19.12.2008, 15:13
#122
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,760


Цитата:
Сообщение от andrew_ro Посмотреть сообщение
Всем привет.
Может кто знает как создать такой макрос:
имеем несколько вхождений динамического блока в виде прямоугольника с одной операцией - полярное растяжение (стойки и ригели каркаса). Нужно выделить несколько вхождений блока и из ком. строки задать новое значение distance. Блоки должны растягиваться ортогонально (естественно только в одном направлении).
Или подскажите как добраться из командной строки до свойства distance (доступно в палитре свойств).
_-ch;_p; - не отображает это свойство. У меня локализованный AutoCAD 2006.
В свойствах поменяй и все.
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Непрочитано 19.12.2008, 15:23
#123
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,760


Вроде еще не было тут такого...
Установка угла атрибута в блоках в нуль, обрывать через esc:
Код:
[Выделить все]
*^C^C_-Attedit;;;;;\;_Angle;0;;
Смыкание линий:
Код:
[Выделить все]
^C^C_fillet;_R;0.0;
Поворот с опорным углом:
Код:
[Выделить все]
(defun c:kr () (setq ss (ssget)) (command "_rotate" ss "" pause "_r" (getvar "lastpoint") pause));kr
Выноска с мультитектом:
Код:
[Выделить все]
^C^C_Leader;\\;;;
Разрыв линии по двум точкам и отрисовка по ним отрезка
Код:
[Выделить все]
^C^C(setq A (ssget));_single;\(setq pt1 (getpoint));\(setq pt2 (getpoint pt1));\_break;!A;!pt1;!pt2;_line;!pt1;!pt2;;
Включение и выключение полноэкранного режима с включением необдимых для работы палитр (добавить - убрать по вкусу)
Код:
[Выделить все]
(if (= (getvar "CLEANSCREENSTATE") 0) (vl-cmdf "_CleanScreenON" "_dashboard" "_SheetSet" "_externalreferences" "_adcenter" "_ToolPalettes" "_properties") (vl-cmdf "_CleanScreenOFF"))
Хотя макросы сейчас использую в основном чтобы запускать лиспы...
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Непрочитано 19.12.2008, 17:54
#124
dextron3

Фотограф
 
Регистрация: 01.01.2007
Алматы
Сообщений: 5,042


Krieger, а как можно масштаб в СПДС с помощью макроса менять? (мне никто так и не ответил...()
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 19.12.2008, 18:37
#125
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,760


Был бы у меня СПДС, может и посмотрел бы. А так лучше выкинь его.
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Непрочитано 16.01.2009, 17:03
#126
acyxou


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


Мужэки, а как вам такой макрос?
Код:
[Выделить все]
^C^C_TILEMODE;1;z;o;l;;
Короче, используя этот макрос вы мигом перепрыгиваете в пространство модели к последнему созданному там элементу. Иногда бывает удобно при работе в модели листа через вьюпорт. Попробуйте
acyxou вне форума  
 
Непрочитано 16.01.2009, 17:53
#127
acyxou


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


Цитата:
Установка угла атрибута в блоках в нуль, обрывать через esc:
Код:
[Выделить все]
*^C^C_-Attedit;;;;;\;_Angle;0;;
У меня не работает почему то. вот че говорит:
[FONT="Courier New"]Command: _-Attedit
Edit attributes one at a time? [Yes/No] <Y>:
Enter block name specification <*>:
Enter attribute tag specification <*>:
Enter attribute value specification <*>:
Select Attributes:
0 attributes selected.*Invalid*[/FONT]
acyxou вне форума  
 
Непрочитано 16.01.2009, 18:15
#128
kha

BIM, С#, AutoCAD, LISP
 
Регистрация: 15.03.2006
Дуброво
Сообщений: 656


Назначил наиболее часто используемые команды на кнопки мышки. Если чего не хватает - пользуюсь панелями инструментов. Казалось бы, можно спокойно с кружкой чая в левой руке.
Ан нет! На escape периодически приходится жать, для чего требуется:
1. оторвать руку от ручки кружки
2. поднять
3. переместить её, чтобы указательный палец был над кнопкой Esc
4. нажать на кнопку
5. выполнить действия 1 - 3 в обратном порядке.

Мне это жутко надоело, в результате сделал кнопку Esc на панели инструментов со следующим макросом:

Код:
kha вне форума  
 
Непрочитано 16.01.2009, 18:21
#129
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,760


Цитата:
Сообщение от acyxou Посмотреть сообщение
У меня не работает почему то. вот че говорит:
[FONT="Courier New"]Command: _-Attedit
Edit attributes one at a time? [Yes/No] <Y>:
Enter block name specification <*>:
Enter attribute tag specification <*>:
Enter attribute value specification <*>:
Select Attributes:
0 attributes selected.*Invalid*[/FONT]
Так атрибуты-то выбери.
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Непрочитано 16.01.2009, 18:59
#130
acyxou


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


Krieger ну я не совсем деблоид и понимаю что автокаду надо мышкой показывать какие объекты я хочу изменить Сам дорубился что выбирать надо секущей рамкой, тогда атрибуты выбираются.... И вообще слишком много кликов приходится делать для достижения желаемого, по моему лучше использовать лисп.
acyxou вне форума  
 
Непрочитано 16.01.2009, 19:58
#131
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,760


Какой нафиг рамкой, надо персонально каждый атрибут (не блок) ткнуть.
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Непрочитано 16.01.2009, 22:00
#132
acyxou


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


Ну так я персонально каждый атрибут рамкой и выбирал.... По другому у меня никак не выбирается.... Вобщем с этой задачей на ура справился лисп под названием Attrot
acyxou вне форума  
 
Непрочитано 17.01.2009, 07:40
#133
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,760


Да грюж не рамкой, блин. Один раз ткнуть по атрибуту квадратиком выделения.
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Непрочитано 20.01.2009, 15:25
#134
Baldares


 
Регистрация: 17.10.2008
Саратов
Сообщений: 430


Нужен макрос на снятие ассоциативности со всех штриховок чертежа.

Или как с ней бороться. У нее ведь непредсказуемое поведение.
Baldares вне форума  
 
Непрочитано 20.01.2009, 15:55
#135
Cosinus

Белая и черная магия в строительстве
 
Регистрация: 02.02.2007
Воронеж
Сообщений: 168
Отправить сообщение для Cosinus с помощью Skype™


Так как макросы должны облегчать жизнь проектировщика, написал вот такой
^c^c_goto;_beer\\;
Но че-то он не работает. Пишет
"money nil" или "larek not found"
Мож че поправить?
Cosinus вне форума  
 
Непрочитано 20.01.2009, 17:13
#136
acyxou


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


Цитата:
Сообщение от Cosinus Посмотреть сообщение
Так как макросы должны облегчать жизнь проектировщика, написал вот такой
^c^c_goto;_beer\\;
Но че-то он не работает. Пишет
"money nil" или "larek not found"
Мож че поправить?
Странно, у меня все работает...... акад 2009
acyxou вне форума  
 
Непрочитано 21.01.2009, 13:56
#137
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,553
<phrase 1= Отправить сообщение для wetr с помощью Skype™


Цитата:
Сообщение от Cosinus Посмотреть сообщение
Так как макросы должны облегчать жизнь проектировщика, написал вот такой
^c^c_goto;_beer\\;
Но че-то он не работает. Пишет
"money nil" или "larek not found"
Мож че поправить?
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Непрочитано 23.01.2009, 12:46
#138
Sazanoff_e

А я тут это...погулять вышел...
 
Регистрация: 28.03.2007
Москва - от слова Моск?
Сообщений: 227
<phrase 1=


)) смени команду на "_vodka" и допиши "_halyava!"
__________________
Рожденный проектировать ГОСТов не читает. (с)Туманов А.А.
Sazanoff_e вне форума  
 
Непрочитано 27.01.2009, 09:23
#139
AlphaGeo


 
Сообщений: n/a


Имеется макрос, преобразующие с помощью Express Текст в Мтекст и выставляющий выравнивание текста "Середина оп центру":
Код:
[Выделить все]
^C^C_Select;_Single;\_Txt2mtxt;_Previous;;_justifytext;_Last;;_MC
Но хотелось бы, чтобы у этого макроса было продолжение, а именно: ширина (в AutoCAD 2008 Рус - "пользовательская ширина", в AutoCAD 2007 Eng - "Width") текста должна выставляться равной 10 мм. Никак не могу найти команду, с помощью которой это можно сделать. Господа форумчане, подскажите, чем тут следует воспользоваться?
 
 
Непрочитано 27.01.2009, 10:01
#140
VVA

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


AlphaGeo, Ширина - это 41 поле mtexta. Без проверок

Код:
[Выделить все]
^C^C_Select;_S;\_Txt2mtxt;_P;;_justifytext;_L;;_MC;(entmod(subst(cons 41 10)(assoc 41 (entget(entlast)))(entget(entlast))))
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 27.01.2009 в 10:30.
VVA вне форума  
 
Непрочитано 27.01.2009, 10:18
#141
AlphaGeo


 
Сообщений: n/a


VVA, спасибо Определенно могу сказать, что работает. Но только после выполнения макроса в Мтексте полностью исчезает содержимое...
Может, проблема в том, что у меня простой AutoCAD 2008 Кus без SP и всяких навесок?
 
 
Непрочитано 27.01.2009, 10:31
#142
VVA

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


AlphaGeo, Там в макросе очепятка. Исправил #140
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 27.01.2009, 10:41
#143
AlphaGeo


 
Сообщений: n/a


Все отлично, VVA! Спасибо огромное!
 
 
Непрочитано 27.01.2009, 18:10
#144
Cosinus

Белая и черная магия в строительстве
 
Регистрация: 02.02.2007
Воронеж
Сообщений: 168
Отправить сообщение для Cosinus с помощью Skype™


Строит вертикальную или горизонтальную xline на расстоянии от указываемой точки. Расстояние ввожу с клавиатуры, предварительно указав мышкой направление. Можно нарисовать несколько линий, каждый раз вводя расстояние от предыдущей.

^C^C_Xline;_h;_move;_last;@;\;

^C^C_Xline;_v;_move;_last;@;\;
Cosinus вне форума  
 
Непрочитано 02.02.2009, 11:43
#145
acyxou


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


подскажите как после выполнения данного макроса очистить командную строку? Я имею в виду куда вставить слово princ так чтоб выполненная команда не отображалась в командной строке. Все испробовал, ниче не получается....
Код:
[Выделить все]
^C^C(progn(if(= c:PP_P nil)(load "PrintersPathsSwapping.lsp"))(c:PP_P))
acyxou вне форума  
 
Непрочитано 02.02.2009, 11:59
#146
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,251


Цитата:
Сообщение от acyxou Посмотреть сообщение
подскажите как после выполнения данного макроса очистить командную строку? Я имею в виду куда вставить слово princ так чтоб выполненная команда не отображалась в командной строке. Все испробовал, ниче не получается....
Код:
[Выделить все]
^C^C(progn(if(= c:PP_P nil)(load "PrintersPathsSwapping.lsp"))(c:PP_P))
Может так?
Код:
[Выделить все]
^C^C(progn (setq Old_CMDECHO (getvar "CMDECHO")) (setvar "CMDECHO" 0) (if (= c:PP_P nil) (load "PrintersPathsSwapping.lsp")) (c:PP_P) (setvar "CMDECHO" Old_CMDECHO) (setq Old_CMDECHO nil) (princ))
Makswell вне форума  
 
Непрочитано 02.02.2009, 12:10
#147
VVA

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


acyxou, Посмотри переменную MENUECHO (в меню переключатель ^P)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 02.02.2009, 12:33
#148
acyxou


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


Ребят, спасибо! Оба варианта работают!
acyxou вне форума  
 
Непрочитано 02.02.2009, 21:31
#149
ie.spb

Инженер
 
Регистрация: 21.08.2007
Сообщений: 558
<phrase 1=


Подскажите. Не могу понять почему включается дин ввод. Написал простой макрос для вставки блока C^C^_-insert;1122;\;;; и назначил горячую клавишу. Так вот при первом нажатии дин ввод включается при повторном нажатии выключается. Что надо сделать чтобы он не включался. Замучился уже.
__________________
Склероз нельзя вылечить, но о нем можно забыть.
(Ф. Раневская)
ie.spb вне форума  
 
Непрочитано 02.02.2009, 22:55
#150
Кулик Алексей aka kpblc
Moderator

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


Может, макрос переписать на более верный вариант?
Код:
[Выделить все]
^C^C_.-insert;1122;\;;;
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 02.02.2009, 22:56
#151
Donhuan

Проектировщик СС
 
Регистрация: 24.06.2008
Минск
Сообщений: 134
<phrase 1=


Код:
[Выделить все]
^C^C._-insert 1122 \;;;
Сорри, повтор Прошу удалить.
Donhuan вне форума  
 
Непрочитано 03.02.2009, 06:38
#152
ie.spb

Инженер
 
Регистрация: 21.08.2007
Сообщений: 558
<phrase 1=


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Может, макрос переписать на более верный вариант?
Код:
[Выделить все]
^C^C_.-insert;1122;\;;;
Спасибо все работает!!! Неужели проблема в точке?
__________________
Склероз нельзя вылечить, но о нем можно забыть.
(Ф. Раневская)
ie.spb вне форума  
 
Непрочитано 03.02.2009, 06:53
#153
ie.spb

Инженер
 
Регистрация: 21.08.2007
Сообщений: 558
<phrase 1=


Еще вопрос: можно сделать чтобы этот макрос повторялся при нажатии пробела. А то выполняется последняя команда insert
__________________
Склероз нельзя вылечить, но о нем можно забыть.
(Ф. Раневская)
ie.spb вне форума  
 
Непрочитано 03.02.2009, 08:21
#154
AlphaGeo


 
Сообщений: n/a


Цитата:
Сообщение от Djonikbishkek Посмотреть сообщение
Еще вопрос: можно сделать чтобы этот макрос повторялся при нажатии пробела. А то выполняется последняя команда insert
Можно зациклить макрос, поставив * (звездочку) в начале. Выход по Esc или запуску другой команды.
Код:
[Выделить все]
*^C^C_.-insert;1122;\;;;
 
 
Непрочитано 03.02.2009, 08:22
#155
Кулик Алексей aka kpblc
Moderator

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


Djonikbishkek, проблема была не в точке. Обрати внимание на символы "^".
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 03.02.2009, 08:41
#156
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,251


Цитата:
Сообщение от Djonikbishkek Посмотреть сообщение
Еще вопрос: можно сделать чтобы этот макрос повторялся при нажатии пробела. А то выполняется последняя команда insert
Цитата:
Сообщение от AlphaGeo Посмотреть сообщение
Можно зациклить макрос, поставив * (звездочку) в начале. Выход по Esc или запуску другой команды.
Код:
[Выделить все]
*^C^C_.-insert;1122;\;;;
Или так.
Код:
[Выделить все]
^C^C(defun C:M-COMMAND () (command "_.-INSERT" "1122" pause "" "" ""));M-COMMAND
Makswell вне форума  
 
Непрочитано 03.02.2009, 10:39
#157
AlphaGeo


 
Сообщений: n/a


Makswell, что-то у меня не получается.
Код:
[Выделить все]
^C^C(defun C:DISTSECTION-COMMAND () (command "Рзмпарал" pause pause  "@0,-5" ""));DISTSECTION-COMMAND
Попробовал по аналогии, но не работает
 
 
Непрочитано 03.02.2009, 10:51
#158
Кулик Алексей aka kpblc
Moderator

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


А osmode не может вмешаться?
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 03.02.2009, 11:02
#159
AlphaGeo


 
Сообщений: n/a


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
А osmode не может вмешаться?
Это мне?
Если бы я еще знал, что такое osmode... По форуму пробежал пoиском - это переменная, управляющая привязкой?
 
 
Непрочитано 03.02.2009, 11:03
#160
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,251


AlphaGeo, что пишет в ком. строке?
Makswell вне форума  
 
Непрочитано 03.02.2009, 11:05
#161
ie.spb

Инженер
 
Регистрация: 21.08.2007
Сообщений: 558
<phrase 1=


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Djonikbishkek, проблема была не в точке. Обрати внимание на символы "^".
Вот блин. Точно. Куда только глаза смотрят. спасибо!!!
__________________
Склероз нельзя вылечить, но о нем можно забыть.
(Ф. Раневская)
ie.spb вне форума  
 
Непрочитано 03.02.2009, 11:07
#162
AlphaGeo


 
Сообщений: n/a


Цитата:
Сообщение от Makswell Посмотреть сообщение
AlphaGeo, что пишет в ком. строке?
Привет от ком.строки:
Код:
[Выделить все]
Команда:
Команда:
Команда: (defun C:DISTSECTION-COMMAND () (command "Рзмпарал" pause pause  
"@0,-5" ""))
C:DISTSECTION-COMMAND

Команда: DISTSECTION-COMMAND Рзмпарал
Начало первой выносной линии или <выбрать объект>:
Начало второй выносной линии:
Положение размерной линии или
[Мтекст/Текст/Угол]: @0,-5
Размерный текст = 3.4
Команда: DISTSECTION-COMMAND Неизвестная команда "DISTSECTION-COMMAND".  Для 
вызова справки нажмите F1.

Команда: nil

Последний раз редактировалось AlphaGeo, 03.02.2009 в 11:15.
 
 
Непрочитано 03.02.2009, 11:08
#163
ie.spb

Инженер
 
Регистрация: 21.08.2007
Сообщений: 558
<phrase 1=


Цитата:
Сообщение от Makswell Посмотреть сообщение
Или так.
Код:
[Выделить все]
^C^C(defun C:M-COMMAND () (command "_.-INSERT" "1122" pause "" "" ""));M-COMMAND
Вот спасибо, все работает отлично!!!
__________________
Склероз нельзя вылечить, но о нем можно забыть.
(Ф. Раневская)
ie.spb вне форума  
 
Непрочитано 03.02.2009, 11:28
#164
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,251


AlphaGeo, у тебя было лишнее "", надо так.
Код:
[Выделить все]
^C^C(defun C:DISTSECTION-COMMAND () (command "Рзмпарал" pause pause  "@0,-5" ));DISTSECTION-COMMAND;
А чтобы в конце в ком. строку не возвращалось лишнее nil, то надо ещё добавить (princ). Да и команду лучше записывать универсально для английского и локализованного Автокадов.
Код:
[Выделить все]
^C^C(defun C:DISTSECTION-COMMAND () (command "_.DIMALIGNED" pause pause  "@0,-5" ) (princ));DISTSECTION-COMMAND;

Последний раз редактировалось Makswell, 03.02.2009 в 11:34.
Makswell вне форума  
 
Непрочитано 03.02.2009, 11:36
#165
AlphaGeo


 
Сообщений: n/a


Цитата:
Сообщение от Makswell Посмотреть сообщение
AlphaGeo, у тебя было лишнее ""
Спасибо большое! Как всегда на такой мелочи попадаюсь...
Цитата:
Сообщение от Makswell
Да и команду лучше записывать универсально.
Это в смысле по-англицки и с "извлечением из ядра AutoCAD"? Да я всегда стараюсь так делать, но у меня установлен локализованный ACAD и не всегда нахожу переводы для команд.
 
 
Непрочитано 03.02.2009, 11:49
#166
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,251


Добавлю ещё.
Анализ макросов с использованием defun я рекомендую делать так.
Скопировать макрос в блокнот.
В блокноте преобразовать макрос ^C^C(defun C:Имя_Псевдокоманды () <код_лиспа>);Имя_Псевдокоманды в строку (progn <код_лиспа>) и запустить это выражение в ком. строке Автокада.
Для твоего случая:
Цитата:
Команда: (progn (command "Рзмпарал" pause pause "@0,-5" ""))
Рзмпарал
Начало первой выносной линии или <выбрать объект>:
Начало второй выносной линии:
Положение размерной линии или
[Мтекст/Текст/Угол]: @0,-5
Размерный текст = 33271
Команда: ОТРЕЗОК Первая точка: nil
Первая точка: *Прервано*
Видно, что команда "Рзмпарал" успешно завершилась и пошёл вызов последней выполненной команды. В моём случае это команда "ОТРЕЗОК". Следовательно одно "" здесь лишнее. Также выскакивает лишнее nil. Делаем так:
Цитата:
Команда: (progn (command "Рзмпарал" pause pause "@0,-5") (princ))
Рзмпарал
Начало первой выносной линии или <выбрать объект>:
Начало второй выносной линии:
Положение размерной линии или
[Мтекст/Текст/Угол]: @0,-5
Размерный текст = 21788
Команда:
Сейчас всё нормально. Можно сделать в блокноте обратное преобразование (progn <код_лиспа>) в выражение ^C^C(defun C:Имя_Псевдокоманды () <код_лиспа>);Имя_Псевдокоманды и повесить макрос на кнопку.

Добавлено:
Цитата:
Сообщение от AlphaGeo Посмотреть сообщение
Это в смысле по-англицки и с "извлечением из ядра AutoCAD"? Да я всегда стараюсь так делать, но у меня установлен локализованный ACAD и не всегда нахожу переводы для команд.
Иногда аутентичное имя команды можно узнать с помощью функции getcname
Цитата:
Команда: (getcname "Рзмпарал")
"_DIMALIGNED"
Makswell вне форума  
 
Непрочитано 03.02.2009, 11:51
#167
AlphaGeo


 
Сообщений: n/a


ОК, Makswell. Возьму этот метод на заметку.
 
 
Непрочитано 18.03.2009, 09:56
#168
Jonas

конструктор машиностроитель
 
Регистрация: 14.05.2007
Новосибирск
Сообщений: 893


Не получается!
Хочу написать макрос для динамического ввода проката используя программу В. Кондрата "Прокат".

С ком-строки работает -
_prokat;_explode;?;последний;;выдавить;?;последний;

Начинаю прописывать и пробовать и на этапе -
^C^C^_prokat;\\_explode;?;Последний; - глохнет.

пишет:
Команда: prokat

Точка вставки :
Угол поворота :

Команда: _explode

Выберите объект: ?


*Неверный выбор*
Требуется точка или Последний/Все/Группа

Подскажите пожалуйста!
Jonas вне форума  
 
Непрочитано 18.03.2009, 10:08
#169
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,251


Может так?
Код:
[Выделить все]
^C^C^_prokat;\\_explode;_last;
Makswell вне форума  
 
Непрочитано 18.03.2009, 10:45
#170
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,760


А последняя птичка (^) после "C" зачем?
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Непрочитано 18.03.2009, 11:07
#171
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,251


Да, она лишняя.
Makswell вне форума  
 
Непрочитано 18.03.2009, 11:07
#172
Jonas

конструктор машиностроитель
 
Регистрация: 14.05.2007
Новосибирск
Сообщений: 893


Цитата:
Сообщение от Krieger Посмотреть сообщение
А последняя птичка (^) после "C" зачем?
Незачем.
Работает ^C^C_prokat;\\_explode;_last;_extrude;_last;;

Большое спасибо.
Jonas вне форума  
 
Непрочитано 05.04.2009, 21:08
#173
victor.m4


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


Вопрос по AutoCAD 2006 офиц. русская версия: хотел сделать отдельную кнопку "Перспективная прекция", но что-то не получается написать макрос. Подскажите плиз...
victor.m4 вне форума  
 
Непрочитано 05.04.2009, 21:24
#174
AlphaGeo


 
Сообщений: n/a


victor.m4, Вам нужно готовое решение или помощь в поиске ошибки?
 
 
Непрочитано 05.04.2009, 23:06
#175
faeto1982


 
Регистрация: 30.03.2009
Сообщений: 53
Отправить сообщение для faeto1982 с помощью Skype™


господа подскажите пожалуйста макрокоманду вставки блока
и чтобы блок вставлялся через середину между точками в натуральном масштабе и без поворота.
faeto1982 вне форума  
 
Непрочитано 06.04.2009, 06:44
#176
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 9,836


Такие вещи надо делать самому. Как? Начни с http://dwg.ru/art/2 , есть книжка на эту тему в DL
Вставка блока обсуждалась в 150-х постах. И где-то здесь был хороший совет: вот ежели не получается, тогда сюда с вопросами
Vova вне форума  
 
Непрочитано 06.04.2009, 08:42
#177
LSN


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


Господа проектировщики подскажите пожалуйста в чем может быть дело.
Макрос для поворота атрибута в блоке не работает (прерывается автовыполнение после выбора атрибута и дальше уже необходимо забивать руками) на 2009 Acad'e хотя на 2006-2008 все работало.
Вот сам макрос: -Attedit;;;;;\_a;0;_n;
LSN вне форума  
 
Непрочитано 06.04.2009, 13:15
#178
AlphaGeo


 
Сообщений: n/a


LSN, проверил, у меня на ACAD 2008 все работает. Может так попробовать?
Код:
[Выделить все]
^C^C_-attedit;;;;;\_a;0;;

Последний раз редактировалось AlphaGeo, 06.04.2009 в 13:23.
 
 
Непрочитано 06.04.2009, 13:31
#179
LSN


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


Та же ерунда.
Вот что пишет в командной строке при выполнении.
Код:
[Выделить все]
Command: _-attedit

Edit attributes one at a time? [Yes/No] <Y>:

Enter block name specification <*>:

Enter attribute tag specification <*>:

Enter attribute value specification <*>:
Select Attributes:
1 found
//Вот здесь кажется что то не так пошло, а как исправить не понимаю пока
Select Attributes: _a  
Select Attributes: 0


*Invalid selection*
Expects a point or 
Window/Last/Crossing/BOX/Fence/WPolygon/CPolygon/Previous/AUto/Previous/AUto
Select Attributes:

1 attributes selected.
На 2008 у меня тоже работает.
LSN вне форума  
 
Непрочитано 06.04.2009, 13:38
#180
AlphaGeo


 
Сообщений: n/a


LSN, глупый вопрос, но очень хочется его задать, а ввод после выбора атрибутов (перед выбором опции Угол ) нажимаешь?
 
 
Непрочитано 06.04.2009, 13:53
#181
LSN


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


Цитата:
Сообщение от AlphaGeo Посмотреть сообщение
LSN, глупый вопрос, но очень хочется его задать, а ввод после выбора атрибутов (перед выбором опции Угол ) нажимаешь?
В макрокоманде
Код:
[Выделить все]
-Attedit;;;;;\_a;0;_n;
символ ; после и означает ввод. Но в 2009 Acad'e почему то не срабатывает.
LSN вне форума  
 
Непрочитано 06.04.2009, 14:02
#182
AlphaGeo


 
Сообщений: n/a


Не-не... LSN, Посмотри,
Код:
[Выделить все]
...
Select Attributes: _a  
...
Получается, что попытка активировать опцию Угол приходится еще на незаверщенную операцию выбора...
 
 
Непрочитано 06.04.2009, 14:34
#183
LSN


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


AlphaGeo, а почему тогда в 2008 работает? Я думаю это проблема 2009 када.
LSN вне форума  
 
Непрочитано 06.04.2009, 14:39
#184
AlphaGeo


 
Сообщений: n/a


LSN, а как ты завершаешь выбор объектов? Нажимаешь правую клавишу мыши? А может, она (ПКМ) настроена не так, как на 2008?

Добавлено:
В любом случае, мне кажется, проблема именно в процессе выбора объектов, а не в команде ATTEDIT или ее опциях. Вот только как решить эту проблему?
 
 
Непрочитано 06.04.2009, 14:59
#185
LSN


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


В общем случае завершаю ПКМ. Сейчас попробывал с помощью Enter - то же самое получается.
LSN вне форума  
 
Непрочитано 06.04.2009, 15:07
#186
AlphaGeo


 
Сообщений: n/a


Тогда я пас... Нужен кто-нибудь с ACAD 2009...
 
 
Непрочитано 06.04.2009, 16:10
#187
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 9,836


Макросы с редатированием атрибута не будут работать в 2009 поку не установлен SP-2
Vova вне форума  
 
Непрочитано 06.04.2009, 18:25
#188
victor.m4


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


Цитата:
Сообщение от AlphaGeo Посмотреть сообщение
victor.m4, Вам нужно готовое решение или помощь в поиске ошибки?
Я только начинаю подбираться к макросам. Посмотрел книгу "...Язык макрокоманд и создание кнопок...", но там не нашёл то, что мне нужно. Там, как я понял только для команд, которые "на поверхности", а как быть с теми что "по-глубже" в AutoCADе. Например, Перспектива : сначала
нужно вызвать "3М орбита", затем клик правой кнопкой, затем выбрать "Проекция" и потом уже по стрелке на "Перспективная". Если не затруднит выложите, пожалуйста, уже готовый вариант макроса для отдельной кнопки "Перспективная проекция" .
Мои варианты не работают:
^C^C_perspective;
'_3dorbit =*_perspective;
'_3dorbit _perspective;
victor.m4 вне форума  
 
Непрочитано 06.04.2009, 20:04
#189
AlphaGeo


 
Сообщений: n/a


victor.m4, может вот это подойдет
Код:
[Выделить все]
^C^C_Dview;\_camera;
Хотя, если честно, я нифига не понимаю в 3D...
 
 
Непрочитано 06.04.2009, 20:23
#190
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 9,836


Что ты называешь На поверхности? Там есть коды объемом до 8 строк. Кроме того в Заключение написано следующее:
Автор не ставил своей задачей предложить все команды, представленные в книге, каждому читателю..... Главной задачей является научить пользователя... самостоятельно строить команды "под себя"
Вот и пробуй строить.
Vova вне форума  
 
Непрочитано 06.04.2009, 22:56
#191
faeto1982


 
Регистрация: 30.03.2009
Сообщений: 53
Отправить сообщение для faeto1982 с помощью Skype™


пытался своими силами создать макрокоманду
вставка блока через середину между точками
но никак не могу избавится от запроса ввести масштаб и угол поворота
маштаб 1, угол 0
и как прописать если я захочу поменять мастаб или угол
*^C^C_insert;1122;_m2p;;;
faeto1982 вне форума  
 
Непрочитано 06.04.2009, 23:12
#192
AlphaGeo


 
Сообщений: n/a


To faeto1982
Значения масштаба и угла поворота по умолчанию:
Код:
[Выделить все]
*^C^C_-Insert;1122;_m2p;\\;;;
Задаваемые значения масштаба (один масштаб по обеим осям) и угла поворота:
Код:
[Выделить все]
*^C^C_-Insert;1122;_m2p;\\\;;\;
Задаваемые значения масштаба (разный масштаб по осям) и угла поворота:
Код:
[Выделить все]
*^C^C_-Insert;1122;_m2p;\\\;\;\;
 
 
Непрочитано 06.04.2009, 23:29
#193
faeto1982


 
Регистрация: 30.03.2009
Сообщений: 53
Отправить сообщение для faeto1982 с помощью Skype™


To AlphaGeo
Значения масштаба и угла поворота по умолчанию:

*^C^C_-Insert;1122;_m2p;\\;;;

огрмное спасибо в конце вроде лишняя точка с запятой стоит
faeto1982 вне форума  
 
Непрочитано 06.04.2009, 23:53
#194
victor.m4


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


Цитата:
Сообщение от Vova Посмотреть сообщение
..... Главной задачей является научить пользователя... самостоятельно строить команды "под себя"
Вот и пробуй строить.
Спасибо, помогли так помогли, научили так научили...
Это всё равно, что проходя мимо утопающего, сказать:
а тонешь - ну-ну, давай уж сам, тони самостоятельно!..

...Смысл изучать книгу, когда в ней нет того, чтобы научиться создавать именно те команды, которые нужны мне.

...Vova, проще было бы ответить: я не знаю, как создать такую кнопку...честнее...
victor.m4 вне форума  
 
Непрочитано 07.04.2009, 00:01
#195
Ser-grey


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


На счет кнопки перспектива, не знаю какая у вас версия, и правильно ли я вас понял, но иногда помогает такой подход: откройте все команды в разделе Customize User Interfase и внимательно просмотрите пиктограммы, там вы найдете очень много интересного, например кнопку перспектива с очень большим макросом:
$M=$(if,$(or,$(and,$(eq,$(getvar,"tilemode"),0),$(eq,$(getvar,"cvport"),1)),$(eq,$(getvar,"blockeditor"),1)),^C^C_perspective,$(if,$(eq,$(getvar,perspective),0),^C^C_perspective 1,^P(princ)^P)) версия 2009 английская.
Ser-grey вне форума  
 
Непрочитано 07.04.2009, 00:48
#196
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 9,836


Цитата:
Сообщение от victor.m4 Посмотреть сообщение
...
...Смысл изучать книгу, когда в ней нет того, чтобы научиться создавать именно те команды, которые нужны мне.
.
Но ты ведь только

Цитата:
Посмотрел книгу "...Язык макрокоманд и создание кнопок...",
И не нашел конкретной нужной тебе команды, и поспешил сообщить, что книга непригодна. Книга писалась на базе тех команд, которые применял автор, он не мог знать хотелки будущих читателей, ибо их (хотелок) миллион. Поэтому там дана методика построения макросов. В этой теме многое произросло из той книги, хотя ни одного, наверное, конкретного макроса в книге нет. То есть, либо забудь про книгу и долбай маросы сам, либо доверься автору и изучай ее.
Vova вне форума  
 
Непрочитано 07.04.2009, 06:39
#197
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,553
<phrase 1= Отправить сообщение для wetr с помощью Skype™


Цитата:
...Vova, проще было бы ответить: я не знаю, как создать такую кнопку...честнее...
victor.m4, Vova - автор этой самой книги, и уж он точно знает как...
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Непрочитано 07.04.2009, 08:42
#198
AlphaGeo


 
Сообщений: n/a


victor.m4, ну а где же критика в мой адрес?
 
 
Непрочитано 07.04.2009, 10:22
#199
Hans667

сети
 
Регистрация: 12.04.2007
SPb
Сообщений: 534
Отправить сообщение для Hans667 с помощью AIM Отправить сообщение для Hans667 с помощью Skype™


Подскажите как сделать кнопку чтобы загружалась из автокада интернет страница http://forum.dwg.ru/.Браузер FireFOX. Заранее благодарен.
__________________
Errare humanum est, insipientis perseverare
Hans667 вне форума  
 
Непрочитано 07.04.2009, 11:07
#200
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,663


Если Firefox является браузером по умолчанию, то можно для кнопки записать такой макрос:
Код:
[Выделить все]
 
^C^C_browser;forum.dwg.ru
В принципе запустится любой браузер, который считается в системе "По умолчанию".
Profan вне форума  
 
Непрочитано 07.04.2009, 14:18
#201
Hans667

сети
 
Регистрация: 12.04.2007
SPb
Сообщений: 534
Отправить сообщение для Hans667 с помощью AIM Отправить сообщение для Hans667 с помощью Skype™


т.е. вместо browser можно записать firefox?
__________________
Errare humanum est, insipientis perseverare
Hans667 вне форума  
 
Непрочитано 07.04.2009, 14:21
#202
VVA

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


Hans667, Установить firefox браузером по умолчанию и оставить browser
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 07.04.2009, 14:23
#203
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,663


Нет, нельзя. "_browser" - это команда AutoCAD'а. Она определяет, какой браузер является текущим и запускает его. Значит, предварительно надо в Windows назначить Firefox браузером по умолчанию.
Profan вне форума  
 
Непрочитано 07.04.2009, 14:32
#204
Hans667

сети
 
Регистрация: 12.04.2007
SPb
Сообщений: 534
Отправить сообщение для Hans667 с помощью AIM Отправить сообщение для Hans667 с помощью Skype™


Почему то подгрузил сейчас свой CUI файл (удаляю его ибо не разрешается), чтобы кнопку написать,а он мне пишет что тот -райт протекшн. И рид онли еще..чего такое произошло то?Все работает,а изменить нельзя
__________________
Errare humanum est, insipientis perseverare
Hans667 вне форума  
 
Непрочитано 07.04.2009, 14:41
#205
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,663


А что, Firefox по другому (стандартно) нельзя что ли запустить?
Profan вне форума  
 
Непрочитано 07.04.2009, 14:44
#206
Hans667

сети
 
Регистрация: 12.04.2007
SPb
Сообщений: 534
Отправить сообщение для Hans667 с помощью AIM Отправить сообщение для Hans667 с помощью Skype™


да это я на самом деле чтобы сразить наповал начальницу- мне не двг нужен был а русско-финский словарь.Я просто до этого спрашивал как сделать,все молчали,а как до двг дело дошло,так все сразу знают
З.Ы. А почему CUI то не редактируемым стал?
__________________
Errare humanum est, insipientis perseverare

Последний раз редактировалось Hans667, 07.04.2009 в 14:56.
Hans667 вне форума  
 
Автор темы   Непрочитано 07.04.2009, 15:39
#207
zenon

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


Макрос
Цитата:
^C^C-scalelistedit;_R;_Y;_E;
Чистит список масштабов.
спасибо Александру Ривилису
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 07.04.2009, 15:46
#208
VVA

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


zenon, Почитай еще здесь же, начиная с поста #70
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 07.04.2009, 15:53
#209
zenon

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


VVA, у меня просто 1 макросом, без лиспа
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 07.04.2009, 19:03
#210
victor.m4


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


Дело в том, что прежде чем задавать вопросы на уважаемом форуме, я поискал во встроенном Руководстве пользователя к AutoCADу 2006
(офиц. русская версия - справка на русском), по методике построения макросов там страниц 20-30. Но то, что мне нужно не нашёл. Затем
воспользовался поиском по форуму и нашёл много ссылок на упомянутую книгу. Скачал её. Но в ней обнаружил лишь то, что есть в Руководстве,
только размазано на 300 страниц. А того, что мне нужно в ней тоже нет...(Меня интересовало: как сделать отдельную кнопку "перспектива", как
изменить по умолчанию путём непосредственного ввода значение системной переменной LENSLENGTH, как в команды "быстрый выбор" и
"фильтр" добавить критерий "по материалу" и д.р.)...

AlphaGeo и Ser-grey, спасибо за участие, но к сожалению эти макросы не сработали в AutoCAD 2006 офиц. русская версия...
victor.m4 вне форума  
 
Непрочитано 07.04.2009, 19:50
#211
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,663


victor.m4, а ты AutoCAD-то знаешь? Для создания собственных макросов необходимо знать команды AutoCAD'а и их опции. Надо уметь создавать сами кнопки. И надо иметь терпение при проверке работы макроса.
Знаешь ли ты, как включить перспективу без употребления команды "_3dorbit" ("3-Орбита")?
Знаешь ли ты, что "материал" не является в AutoCAD 2006 свойством объекта?
Знаешь ли ты, что для того, чтобы изменить значение системной переменной, надо сначала набрать на клавиатуре ее название и нажать Enter?

Вот пример одной из моих программ для включения перспективы:
Код:
[Выделить все]
 
;************** PERROST.LSP *********************************************
;               Перспектива с высоты роста 
;               Громов В.В. Апрель 1999.
;
(defun C:PERROST ( / echo tsel hsel tkam hkam thc thk rast)
   (setq echo (getvar "CMDECHO"))
   (setvar "CMDECHO" 0)
   (princ "\n ПЕРСПЕКТИВА.")
   (princ "\n Параметр-РАССТОЯНИЕ от камеры до цели.")
   (setq tcel (getpoint "\n Укажите в плане точку ЦЕЛИ: "))
   (setq hcel 1000)
   (setq tkam (getpoint tcel "\n Укажите в плане точку КАМЕРЫ: "))
   (setq hkam 1800)
   (setq thc (list (nth 0 tcel) (nth 1 tcel) hcel))
   (setq thk (list (nth 0 tkam) (nth 1 tkam) hkam))
   (setq rast (distance thk thc))
   (command "_DVIEW" "_C" (list (- (car tcel) 24000) (- (cadr tcel) 24000))
                          (list (+ (car tcel) 24000) (+ (cadr tcel) 24000)) ""
                          "_PO" thc thk "_D" (* 2 rast) "_h" "_X")
   (setvar "CMDECHO" echo)
   (princ)
)
Если код будет сохранен в файле perrost.lsp, то макрос для кнопки может иметь вид:
Код:
[Выделить все]
 
^C^C(if (not C:PERROST) (load "perrost")) PERROST

Последний раз редактировалось Profan, 07.04.2009 в 20:04.
Profan вне форума  
 
Непрочитано 07.04.2009, 20:45
#212
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 9,836


Цитата:
Сообщение от victor.m4 Посмотреть сообщение
я поискал во встроенном Руководстве пользователя к AutoCADу 2006
(офиц. русская версия - справка на русском), по методике построения макросов там страниц 20-30. Но то, что мне нужно не нашёл. Затем
воспользовался поиском по форуму и нашёл много ссылок на упомянутую книгу. Скачал её. Но в ней обнаружил лишь то, что есть в Руководстве,
только размазано на 300 страниц.
victor.m4, Ты мне льстишь! Когда писалась книга, был только автокад 2002, и в том руководстве я нашел всего несколько страниц про menu macro. Все остальное я выстрадал сам, имея под руками немного Омуры (несколько страничек) и Maximizing Autocad release 12, 1992, из которой почти ничего не взял. Таким образом, по твоим сведениям, автодеск взял мою книгу и сжал мои 300 стр до своих 20 для справки. Даже не знаю, гордиться-ли эти или подать на них в суд и стребовать денег. (если получится-поделюсь с тобой)
Для сведения: чтобы создать команду Copy-rotate я потратил 2 месяца, тупо разглядывая в метро листок с вариантами макроса, который не хотел работать, пока не понял, что надо сделать копию саму на себя. После этого принял решение написать брошюру. И она вылилась в книгу. Еще для сведения. На форуме, который тогда реставрировался, я предложил создать раздел Макросы, полагая, что их все знают и применяют, кроме меня. Раздел вскоре закрыли, так как не было ни сообщений, ни ответов на мои вопросы.

Последний раз редактировалось Vova, 07.04.2009 в 20:56.
Vova вне форума  
 
Непрочитано 08.04.2009, 16:56
#213
victor.m4


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


Profan
...Вообще, я работаю в 3D-Constructore 3.5. Это AutoCAD 2006 плюс параметрическое ядро от "Элекран-софт". Приложение, которое позволяет более быстро, чем в чистом ACADе проектировать мебель, создавать чертежи и спецификацию более автоматизированно и интеллектуально. Параметрика позволяет задавать условия изменения размеров как отдельных деталей, так и условия взаимодействия деталей в сборках. Достигается это путём ввода среды переменных в проектирование, а также путём использования математических и тригонометрических функций и многих других фич...Классная вещь, обожаю его...3D-Constructor существует как отдельный профиль в AutoCADе, называемый КМ. Путём экспорта из файла acad.cui в KM.cui я добавил в него многие ACADовские кнопки и панели... Но версия 3D-Constructor 3.5 работает только максимум с AutoCAD 2006... А в нём, вы конечно же знаете, рендеринг слабоват - невозможно добиться мягких теней... А хотелось бы получить более качественную визуализацию в 3DS MAX... Для последующего импорта dwg файла в 3DS MAX необходимо предварительно присвоить в 3D-Constructor-е трёхмерным объектам с различными материалами различный цвет-номер. Но в 3D-Constructor-е практически все основные трёхмерные объекты лежат в одном слое (слой KM_WORK и изменить это умолчание программы нельзя!). Вот для быстрого автоматизированного присвоения цвета и нужен был ФИЛЬТР по Материалу (которого нет в AutoCAD 2006), а вручную присваивать цвет трёхмерным объектам (которых в проекте более 200) это гемор...Так же для визуализации нужна отдельная кнопка "Перспектива" и возможность непосредственным вводом задавать фокусное расстояние. Просто когда уже имеешь качественную конструкторскую документацию хочется ещё больше -- качественную трёхмерную визуализацию... Человеку всегда хочется больше, чем есть... Про системные переменные вы верно сказали, но они ещё бывают с признаком "Только чтение", т.е. непосредственным вводом значения в командной строке изменить её нельзя. Так вот LENSLENGTH именно из таких...Просто почитав о макросах и решил, что можно немного модернизировать AutoCAD 2006. Но видимо здесь нужны более глубокие знания программирования...А лекций мне читать не надо, я просил ответа на свой вопрос, а не про изобретение "велосипеда" ...

P.S. Видимо придётся снять свои вопросы, ответа на них я так понял нет... Сейчас поставил AutoCAD 2009 офиц. русская версия. Да-а-а... Оказывается Autodesk уже давно сделал то, что мне надо... И отдельная кнопка "Перспектива", и задание фокусного расстояния, и ФИЛЬТР по Материалу и рендер с глобальным освещением уже приближается к 3DS MAX... Фантастика... Видимо кто-то уже попросил производителя о моих "глупостях" и он внедрил это стандартно... Спасибо Autodesk-у... Что ж теперь буду не в 3DS MAXе импортировать, а просто открывать файл dwg 2006 в AutoCAD 2009, гораздо проще...

для Vova
Тогда вообще не вижу смысла давать ссылки на эту книгу - на дворе уже 2009 год...
Миниатюры
Нажмите на изображение для увеличения
Название: image1.jpg
Просмотров: 265
Размер:	129.5 Кб
ID:	18528  
victor.m4 вне форума  
 
Автор темы   Непрочитано 08.04.2009, 17:17
#214
zenon

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


victor.m4, поставь еще 2010, еще больше удивишься
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 08.04.2009, 22:37
#215
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от victor.m4 Посмотреть сообщение
<...>Тогда вообще не вижу смысла давать ссылки на эту книгу - на дворе уже 2009 год...
А то, что она еще актуальна, уже не важно?
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 09.04.2009, 01:00
#216
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 9,836


Цитата:
Сообщение от victor.m4 Посмотреть сообщение
А лекций мне читать не надо, .... для Vova
Тогда вообще не вижу смысла давать ссылки на эту книгу - на дворе уже 2009 год...
Не надо прежде всего походя охаивать чужую работу, не разобравшись в ней. Ты признался, что нашел много ссылок на книгу. Будь так любезен, посчитай сколько раз ссылка шла от имени Vova.
Насчет того, насколько быстро устаревает автокадовская литература. Здесь есть специальная тема про книгу (если интересуешься, найду), там показано, сколько глав устарело. Всего одна, там не показана новая CUI. Зато этот пробел восполнен статьей на главной стр. нашего форума. Вот и прикинь, надо-ли давать на книгу ссылку
Vova вне форума  
 
Непрочитано 12.04.2009, 17:47
#217
Gecuba


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


Здравствуйте!
Цитата:
Сообщение от zenon Посмотреть сообщение
Улучшенная команда _Break, разрыв в одной точке с повтором по правой клавише мышки.
Прошу не пинать, если вопрос совсем дилетантский (потому как дилетантка я в программировании ;-).
Улучшенный макрос для команды "break" отлично работает в 2010 (конечно англ.) - т.е. не вырывает кусочки при повторе команды с помощью правой кнопки мышки. А вот в 2009 русс. - вырывает при первом же обращении к команде.
В чем может быть проблема? (Догадка - Может макрос написан для англ.версии када?)
Уточнение - 2009 и 2010 стоят на разных машинках.
Спасибо!

Последний раз редактировалось Gecuba, 12.04.2009 в 17:54.
Gecuba вне форума  
 
Непрочитано 12.04.2009, 18:31
#218
AlphaGeo


 
Сообщений: n/a


Цитата:
Сообщение от Gecuba Посмотреть сообщение
Догадка - Может макрос написан для англ.версии када?
По-моему, догадка правильная!
У меня на ACAD 2006 Рус команда работает в таком виде:
Код:
[Выделить все]
^C^C^P(defun c:break2 () (vl-cmdf "_break" pause "_f" pause "@")(princ));break2;
 
 
Непрочитано 12.04.2009, 18:42
#219
Gecuba


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


AlphaGeo, спасибо большое за помощь! Теперь работает!
Да, трудно неучем быть...

ПС А зацикливал кто-нибудь эту команду?..
Вставка "*" перед макросом не помогла.

Последний раз редактировалось Gecuba, 12.04.2009 в 19:16. Причина: Пришла в голову еще одна дилетантская идея...
Gecuba вне форума  
 
Непрочитано 12.04.2009, 21:03
#220
AlphaGeo


 
Сообщений: n/a


Цитата:
Сообщение от Gecuba Посмотреть сообщение
А зацикливал кто-нибудь эту команду?..
Вставка "*" перед макросом не помогла.
Это не простой макрос, без использования DIESEL (как я понимаю), а макрос-команда со своим именем. Его звездочкой не зациклишь, но зато можно вызвать повторно, как любую другую команду, нажав пробел или Enter (или правую клавишу мыши, если она настроена соотвествующим образом).
Чтобы использовать зацикленный макрос, его следует записывать в следующем виде:
Код:
[Выделить все]
*^C^C_break;\_f;\@;
 
 
Непрочитано 12.04.2009, 21:26
#221
Gecuba


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


AlphaGeo, Спасибо еще раз!
Вроде работает - очень удобно когда надо сразу в нескольких местах разорвать.

Последний раз редактировалось Gecuba, 12.04.2009 в 21:34.
Gecuba вне форума  
 
Непрочитано 18.05.2009, 09:53
#222
Juss_00

Инженер
 
Регистрация: 11.12.2007
Москва
Сообщений: 295


День добрый, вопрос глупый и простой, но что то не нашёл а надо срочно.

Сделал команду ^C^Cреген;реген (для своего дин блока, так как его надо дважды регенить что бы получить расчёт)

Но на большом чертеже понятно что регенить надо только один объект, либо выбрав, либо последний.

В автокаде команды Реген и Всереген (2010 русский)
Не могу найти команду коотрая бы регенерировал только один объект.

Подскажите научить помогите ) (возможное подчеркнуть)
__________________
Live as though tomorrow you will die,
Study as though you will live eternally.
Juss_00 вне форума  
 
Непрочитано 18.05.2009, 10:36
#223
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,251


Имелось ввиду обновление текстовых полей в блоке? Тогда тебе помодет команда _updatefield.
Makswell вне форума  
 
Непрочитано 18.05.2009, 11:33
#224
Juss_00

Инженер
 
Регистрация: 11.12.2007
Москва
Сообщений: 295


Спасибо! Эту команду я справшивл в "динамических блоках".
Терь напишу нормально этот макрос. )

Цитата:
^C^Cобнполе;последний;обнполе;последний;
Не получается что бы второй раз то же выделялся автоматически команндой "последний"
Посветуете?
__________________
Live as though tomorrow you will die,
Study as though you will live eternally.

Последний раз редактировалось Juss_00, 18.05.2009 в 11:44. Причина: Вопрос
Juss_00 вне форума  
 
Непрочитано 18.05.2009, 12:07
#225
Павлов Андрей

Инженер-строитель
 
Регистрация: 27.05.2004
Республика Беларусь
Сообщений: 62


Здравствуйте . А можно ли создать макрос , удлиняющий отрезок на указанную величину сразу в обе стороны , т.е. как по команде _lengthen DElta , указываешь отрезок , но в обе стороны ?
__________________
Andrey
Павлов Андрей вне форума  
 
Непрочитано 18.05.2009, 13:13
#226
AlphaGeo


 
Сообщений: n/a


Цитата:
Сообщение от Juss_00 Посмотреть сообщение
Спасибо! Эту команду я справшивл в "динамических блоках".
Терь напишу нормально этот макрос. )

Цитата:
^C^Cобнполе;последний;обнполе;последний;
Не получается что бы второй раз то же выделялся автоматически команндой "последний"
Посветуете?
Juss_00, может стоит делать это вот так:
Код:
[Выделить все]
^C^Cобнполе;последний;;обнполе;последний;;
?
 
 
Непрочитано 18.05.2009, 13:28
#227
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,663


Цитата:
Сообщение от Павлов Андрей Посмотреть сообщение
Здравствуйте . А можно ли создать макрос , удлиняющий отрезок на указанную величину сразу в обе стороны , т.е. как по команде _lengthen DElta , указываешь отрезок , но в обе стороны ?
Код:
[Выделить все]
;***********l_l.lsp - Удлинение отрезка в обе стороны
;                     на заданную величину.
;   Freeware. Автор Владимир Громов. Август 2005 г.
;
;   Если величину удлинения задать со знаком минус (-), то
;   вместо удлинения получим укорочение.
(defun C:L_L ( / tn tk delta flag ob line)
    (setvar "CMDECHO" 0)
    (setq delta (getreal "\n Величина удлинения линии (ENTER-отказ): "))
    (if delta
        (progn
        (setq flag T)
        (while flag
        (setq ob (entsel "\n Выберите отрезок (ENTER-завершить): "))
        (if ob
            (progn
            (setq line (entget (car ob)))
                  (if (= (cdr (assoc 0 line)) "LINE")
                  (progn
                  (setq tn (cdr (assoc 10 line)))
                  (setq tk (cdr (assoc 11 line)))
                  (command "_LENGTHEN" "_delta" delta tn tk "")
                  ); progn
                  ); if
             ); progn
                  (setq flag nil)
          ); if
        ); while
        ); progn
        (princ "\n Отказ.")
    ); if
(princ)
)
Если код сохранить в файле l_l.lsp, то макрос для кнопки может иметь вид
Код:
[Выделить все]
 
^C^C(if (not C:L_L) (load "l_l")) L_L
Profan вне форума  
 
Непрочитано 18.05.2009, 14:50
#228
Juss_00

Инженер
 
Регистрация: 11.12.2007
Москва
Сообщений: 295


AlphaGeo, нет. Прежде чем выложить пробывал такой вариант. Второй раз все равно просит указать объект.
__________________
Live as though tomorrow you will die,
Study as though you will live eternally.
Juss_00 вне форума  
 
Непрочитано 18.05.2009, 14:54
#229
AlphaGeo


 
Сообщений: n/a


Цитата:
Сообщение от Juss_00 Посмотреть сообщение
AlphaGeo, нет. Прежде чем выложить пробывал такой вариант. Второй раз все равно просит указать объект.
Что в командной строке пишет?

Добавлено:
Сейчас еще раз проверил, у меня работает... Никаких запросов нет.

Последний раз редактировалось AlphaGeo, 18.05.2009 в 15:01.
 
 
Непрочитано 18.05.2009, 15:26
#230
Павлов Андрей

Инженер-строитель
 
Регистрация: 27.05.2004
Республика Беларусь
Сообщений: 62


Profan , спасибо . Владимиру Громову - спасибо за лисп .
__________________
Andrey
Павлов Андрей вне форума  
 
Непрочитано 18.05.2009, 16:20
#231
VVA

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


Павлов Андрей, Вообще-то ты сказал спасибо одному и тому же человеку . Но лучше дважды сказать, чем дважды промолчать.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 18.05.2009, 16:37
#232
zenon

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


Может лучше так
Цитата:
^C^C_Updatefield;_Last;;_Updatefield;_Last;;
не у всех стоит русский кад
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 18.05.2009, 16:50
#233
AlphaGeo


 
Сообщений: n/a


Цитата:
Сообщение от zenon Посмотреть сообщение
Может лучше так
Код:
[Выделить все]
^C^C_Updatefield;_Last;;_Updatefield;_Last;;
не у всех стоит русский кад
zenon, какая разница? Juss_00 жалуется, что сам макрос не работает, а записан он также, хоть и на русском.
 
 
Непрочитано 18.05.2009, 18:19
#234
Juss_00

Инженер
 
Регистрация: 11.12.2007
Москва
Сообщений: 295


zenon, то же самое. (
В общем придумал как решить это. КОгда те блоки начинал делать только взялся за дин. блоки, теперь избалю от ссылки на "поля" и сделаю на "натуральные" объекты должно будет помочь.

AlphaGeo, не тот что вставил сюда, из полу рабочей кнопки взял первый раз обновлял, второй раз просил выделить объект.

У меня не получилось дважды регенить, обновлять последний объект, может только если применить фиктивное копирование получится. Дома попробую. =)
__________________
Live as though tomorrow you will die,
Study as though you will live eternally.
Juss_00 вне форума  
 
Непрочитано 18.05.2009, 18:23
#235
AlphaGeo


 
Сообщений: n/a


Juss_00, может тогда дело в твоем блоке? Выложил бы сюда. Да и что в командной строке выводится в процессе выполнения этого макроса?
 
 
Автор темы   Непрочитано 19.05.2009, 12:41
#236
zenon

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


Juss_00,
у меня все обновляет
попробуй может так пройдет
Цитата:
^C^C_Updatefield;_Previous;;_Updatefield;_Previous;;
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 19.05.2009, 12:58
#237
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,663


Этот макрос не должен работать, если перед его запуском не выбирались никакие объекты (поля), т.е. нет предыдущего набора.
Profan вне форума  
 
Непрочитано 19.05.2009, 17:37
#238
Juss_00

Инженер
 
Регистрация: 11.12.2007
Москва
Сообщений: 295


Само собой, но тестирвоал специально выбирая, разные объекты и перемещая несколько раз и его и другие объекты и с другими командами. Команды типо Копировать, переместить и прочее раотают нормально. А команды реген и обновитьполе нет, после первого выбора второй раз не находят последний объект.
__________________
Live as though tomorrow you will die,
Study as though you will live eternally.
Juss_00 вне форума  
 
Непрочитано 19.05.2009, 18:34
#239
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,663


А зачем в последнем макросе присутствует пробел в конце перед ;;? Это ведь соответствует ;;;.
Profan вне форума  
 
Непрочитано 16.06.2009, 07:19
#240
Jonas

конструктор машиностроитель
 
Регистрация: 14.05.2007
Новосибирск
Сообщений: 893


Для расчетов на прочность в среде Автокада не заменима команда _massprop но значение получаются в миллиметрах (поскольку модель в мм.)
а для дальнейших расчетов в основном удобней в сантиметрах (например в программе Александра Анисина "KarkasA"
http://www.karkasa.narod.ru/).
Приходиться делать следующее:
- выполнить сечение 3Д тела,
- выдавить на 10,
- масштабировать на 0,1,
- установить ПСК в ентр тяжести,
- и затем применять _massprop,
- после всего удалить не нужное.

Чтобы облегчить жизнь выстрадал макрос -

Код:
[Выделить все]
^C^C_section;\;xy;\'cal;p=@;_copybase;@;_last;;_extrude;@;;10;_scale;_last;;@;0.1;
_multicentroid2;_last;;;пск;начало;@;_erase;_last;;масс-хар;_last;;;_erase;_last;;
Выбираешь тело, указываешь точку сечения и получаешь текстовое окно с результатом.
После завершения команду в буфере обмена находиться сечение которое можно использовать для протокола, памятки и пр.

Для работы макроса нужно:
- чтобы расчетное сечение было в плоскости XY,
- если сечение составное - все объединить,
- должна стоять Лис-программа по отрисовке шара в цнтре тяжести. К сожжалению не помню автора и где брал, поэтому выкладываю здесь.


Код:
[Выделить все]
(defun c:multicentroid2 (/ centroid delta ents firstpoint firstpointmass length1 length12 mass secondpoint secondpointmass
       osmode aa1)
(vl-load-com)
  (defun centroid (entity /)
    (vlax-safearray->list (vlax-variant-value (vla-get-centroid (vlax-ename->vla-object entity))))
    ) ;_ end of defun
  (defun mass (entity /)
    (vla-get-volume (vlax-ename->vla-object entity))
    ) ;_ end of defun
  (if (setq ents (ssget '((0 . "3DSOLID"))))
    (progn
      (setq ents (vl-remove-if-not 'atom (mapcar 'cadr (ssnamex ents))))
      (setq firstpoint (centroid (car ents)))
      (setq firstpointmass (mass (car ents)))
      (if (setq ents (cdr ents))
  (progn
    (foreach n ents
      (setq secondpoint (centroid n))
      (setq secondpointmass (mass n))
      (setq length12 (sqrt (apply '+ (mapcar '(lambda (x) (* x x)) (mapcar '- firstpoint secondpoint)))))
      (setq length1 (/ (* secondpointmass length12) (+ firstpointmass secondpointmass)))

(if (and (= length1 length12)(= length1 0))(setq length12 1))

      (setq delta (mapcar '(lambda (x) (/ (* length1 x) length12)) (mapcar '- firstpoint secondpoint)))
      (setq firstpoint (mapcar '- firstpoint delta))
      (setq firstpointmass (+ firstpointmass secondpointmass))
      ) ;_ end of foreach
    ) ;_ end of progn
  ) ;_ end of if

(setq osmode (getvar "osmode")
      firstpoint (trans firstpoint 0 1))

(vla-startundomark (vla-get-activedocument (vlax-get-acad-object)))
(setvar "cmdecho" 0)
(setvar "osmode" 0)

(command "_.circle" firstpoint 20 ;Радиус сферы по умолчанию
   "_.erase" (entlast) "")
(vl-cmdf "_.circle" firstpoint)

(setvar "osmode" osmode)
(princ "\nРадиус сферы в центре масс <20>: ")
(if (vl-cmdf pause)(progn

(setq aa1 (cdr (assoc 40 (entget (entlast)))))
(setvar "osmode" 0)
(command "_.erase" (entlast) ""
   "_.sphere" firstpoint aa1
    ;Цвет сферы (или удалить строку)
   )
(setvar "osmode" osmode)
))

(setvar "cmdecho" 1)
(vla-endundomark (vla-get-activedocument (vlax-get-acad-object)))
      (princ)
      ) ;_ end of progn
    ) ;_ end of if
  ) ;_ end of defun

Все работает но если в сотавном сечении тела не касаются (хотя и объединяются), то считается только одно тело.
Причина в том что после выдавливания сечения (хотя оно и едино) получаем отдельные тела.

Будьте добры профи, может можно это решить?
И еще вопрос, можно ли как то извлекать данные из текстового окна програмно?

Последний раз редактировалось Кулик Алексей aka kpblc, 16.06.2009 в 14:47.
Jonas вне форума  
 
Непрочитано 26.06.2009, 13:45
#241
Juss_00

Инженер
 
Регистрация: 11.12.2007
Москва
Сообщений: 295


Подскажите как запустить окно свойств объекта в ком. строке?
Или каким образом менять свойства выброных элементов?
__________________
Live as though tomorrow you will die,
Study as though you will live eternally.
Juss_00 вне форума  
 
Непрочитано 26.06.2009, 16:44
#242
VVA

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


Juss_00,
1. _change (ИЗМЕНИТЬ)
2. _chprop (СВОЙСТВА)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 26.06.2009, 18:15
#243
Juss_00

Инженер
 
Регистрация: 11.12.2007
Москва
Сообщений: 295


Подскажите зачем в некоторых макросах пишут
Цитата:
_.-purge
с точкой перед минусом?

А также в
Цитата:
Regapps
в команде purge вычищает "нулевые объекты?
__________________
Live as though tomorrow you will die,
Study as though you will live eternally.
Juss_00 вне форума