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

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

Где ошибка в моем макросе для полилинии в локал. версии AutoCAD?

Ответ
Поиск в этой теме
Непрочитано 09.07.2010, 11:40 #1
Где ошибка в моем макросе для полилинии в локал. версии AutoCAD?
Nosferatu
 
Регистрация: 07.09.2009
Сообщений: 27

Здравствуйте. Буду краток.
была у меня самописная команда "^C^C_PEDIT _j" (join).
Делала она следующее - соединяла отрезки в полилинию.
Соответственно работала только при значении переменной PEDITACCEPT, равной "1". В новом 2010 русском PEDIT вообще не работает. Вместо нее ПОЛРЕД... Только вот "^C^C_ПОЛРЕД _д" (добавить) не работает. Подскажите как написать команду в 2010 русском для соединения отрезков и арок в полилинию ОДНИМ НАЖАТИЕМ КНОПКИ. Официальный путь, как понятно из текста, я знаю. Заранее спасибо.
__________________
"А кто не курит сосиски, тот лох!" (с)

Последний раз редактировалось Nosferatu, 09.07.2010 в 15:33.
Просмотров: 13818
 
Непрочитано 09.07.2010, 11:48
#2
Кулик Алексей aka kpblc
Moderator

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


Не понимаю, кто мешает использовать все же старый путь, не заморачиваясь с локализацией?
Код:
[Выделить все]
^C^C_.pedit;_j;
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 09.07.2010, 11:58
#3
Nosferatu


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


Вах! Кулик Алексей aka kpblc, работает! А можно вкратце - что делает точка и точка с запятой?
Кстати, большое спасибо :-)
__________________
"А кто не курит сосиски, тот лох!" (с)
Nosferatu вне форума  
 
Непрочитано 09.07.2010, 12:01
#4
KSI


 
Регистрация: 19.03.2004
Калининград
Сообщений: 1,842


; - соответствует Enter
KSI вне форума  
 
Непрочитано 09.07.2010, 12:03
#5
Кулик Алексей aka kpblc
Moderator

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


Тю, так это стандартные вещи.
Знак подчеркивания перед командой - выполнение оригинального имени. Добавление точки туда же - выполнение внутреннего имени команды, забыв про возможные переопределения команд.
Подчеркивание перед опцией (сокращенного или полного наименования опции) - тоже вызов оригинального (то бишь английского) написания опции.
Точка с запятой - имитация нажатия Enter в языке макросов (см.В.Свет, "AutoCAD - язык макрокоманд и создание кнопок"; есть в Download)/
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 09.07.2010, 12:08
#6
Profan


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


Цитата:
В новом 2010 русском PEDIT вообще не работает.
С чего бы это она не работает? В локализованных версиях перед командами на английском языке пишется подчерк "_". А вот перед русскими командами подчерк как раз не пишется. Поэтому написать вот такую чепуху
Цитата:
"^C^C_ПОЛРЕД _д"
мог только этот, как его...
Твоя самописная команда в какой версии AutoCAD'а работала? В версиях 2006-2011 она не работает. Да и не должна работать, если внимательно изучить опции команды "_PEDIT" ("ПОЛРЕД").
Алексей, а ты пробовал вводить опцию "_j" сразу после ввода команды "_.pedit"?
Profan вне форума  
 
Автор темы   Непрочитано 09.07.2010, 12:17
#7
Nosferatu


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


Кулик Алексей aka kpblc и KSI, большое спаибо за ценную информацию.
"мог только этот, как его..." - я не претендую на гениальность и совершенное знание AutoCAD. То, что я кнопочку эту в 2006-2008 сам дописывал воспринималось в моем отделе как что-то сродни магии.
Profan, я Вас не оскорблял и от Вас жду того же. И на "ты" мы не переходили.
__________________
"А кто не курит сосиски, тот лох!" (с)
Nosferatu вне форума  
 
Непрочитано 09.07.2010, 12:23
#8
nikе

конструктор Лего
 
Регистрация: 21.10.2005
Краснодар
Сообщений: 204


М-да! Нужно раз и навсегда отучить локализаторов переводить команды на русский, дабы избежать разжигания русофобских настроений и прочего экстремизма. Пусть берут пример с того же Bricscad, где в локализованной версии команды на русский никто не переводил...
nikе вне форума  
 
Непрочитано 09.07.2010, 12:28
#9
T-Yoke

Артиллерист - вертолётчик. Дипломированный инженер-механик. Technologist
 
Регистрация: 29.11.2004
Где-то около Москвы
Сообщений: 16,754
Отправить сообщение для T-Yoke с помощью Skype™


Цитата:
Сообщение от Nosferatu Посмотреть сообщение
Кулик Алексей aka kpblc и KSI, большое спаибо за ценную информацию.
"мог только этот, как его..." - я не претендую на гениальность и совершенное знание AutoCAD. То, что я кнопочку эту в 2006-2008 сам дописывал воспринималось в моем отделе как что-то сродни магии.
Profan, я Вас не оскорблял и от Вас жду того же. И на "ты" мы не переходили.
Так значит в названии темы неточность? И не "Русский AutoCAD" виноват, а чьи-то кривые ручки
__________________
«Артиллерия не токмо грохот, но и наука!» Пётр I
T-Yoke вне форума  
 
Непрочитано 09.07.2010, 13:08
#10
Profan


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


Цитата:
Сообщение от Nosferatu Посмотреть сообщение
...
"мог только этот, как его..." - я не претендую на гениальность и совершенное знание AutoCAD. То, что я кнопочку эту в 2006-2008 сам дописывал воспринималось в моем отделе как что-то сродни магии.
Profan, я Вас не оскорблял и от Вас жду того же. И на "ты" мы не переходили.
Ты меня оскорбил до глубины души своим названием темы. Ну, да ладно.
Я утверждаю, что макрос
^C^C_.pedit;_j;
ни в какой версии корректно работать не будет, потому что пропущена опция "_m" ("н") для выбора объектов. Так что, Nosferatu, приведи-ка, пожалуйста, протокол выполнения этого макроса.
Profan вне форума  
 
Непрочитано 09.07.2010, 13:19
#11
BM60


 
Регистрация: 08.02.2008
Где-то
Сообщений: 8,460


Offtop: Nosferatu, мне тоже, кстати, не нравится злое название темы!
Profan, вполне допускаю, что в оригинале макрос верный, поскольку его действие "воспринималось ... сродни магии", но в теме ввиду, полагаю, срочной спешки написано автором неверно. Бывает, ничего страшного, он же начинает только программировать. Зато остальным урок полезный.
__________________
Я дарю не рыбу, а удочку и море.
www.zodchii.ws,
Библиотеки электронных книг
Download

Последний раз редактировалось BM60, 09.07.2010 в 16:25.
BM60 вне форума  
 
Автор темы   Непрочитано 09.07.2010, 14:16
#12
Nosferatu


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


Макрос работает. Протокол выполнения это что за фрукт такой, где его берут? А при продолжении бестактных высказываний диалог я прекращу.
__________________
"А кто не курит сосиски, тот лох!" (с)
Nosferatu вне форума  
 
Непрочитано 09.07.2010, 14:24
#13
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от Profan Посмотреть сообщение
Алексей, а ты пробовал вводить опцию "_j" сразу после ввода команды "_.pedit"?
Не пробовал и пробовать не хочу. Мне намного проще подобные вещи выполнять в режиме обычной команды, не связываясь с созданием макросов и изменением системных переменных )
Цитата:
Сообщение от Nosferatu Посмотреть сообщение
Протокол выполнения
После окончания работы макроса нажать F2 и скопировать содержимое текстового окна.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 09.07.2010, 14:43
#14
BM60


 
Регистрация: 08.02.2008
Где-то
Сообщений: 8,460


Offtop: Nosferatu, а книга, между прочим, В.Света (из №5) самая востребованная для таких случаев среди всех кадчиков всего мира, и это удобнее ответов с форума...
Offtop: Алексей, переименуй, пож-ста, тему в "Где ошибка в моем макросе для полилинии в локализованной версии AutoCAD". Ну зла не хватает видеть "зло"...
__________________
Я дарю не рыбу, а удочку и море.
www.zodchii.ws,
Библиотеки электронных книг
Download

Последний раз редактировалось BM60, 09.07.2010 в 15:15.
BM60 вне форума  
 
Непрочитано 09.07.2010, 15:00
#15
Кулик Алексей aka kpblc
Moderator

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


BM60, автор захочет - переименует
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 09.07.2010, 15:17
#16
BM60


 
Регистрация: 08.02.2008
Где-то
Сообщений: 8,460


Не захочет, я уверен. Если только на "зло" мне и Profan'y переименует.
BM60 вне форума  
 
Автор темы   Непрочитано 09.07.2010, 15:19
#17
Nosferatu


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


Цитата:
Сообщение от BM60 Посмотреть сообщение
Offtop: Nosferatu, а не проще ли тебе ответ в Хелпе найти? Или кому-то из нас удобно из него сюда переписывать.
А книга, между прочим, В.Света (из №5) самая востребованная для таких случаев среди всех кадчиков всего мира, неужели проще ждать ответов с форума...
Простите, если кого затруднил. Благодаря этому прекраному форуму я реально быстро получил нужный мне ответ.


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
BM60, автор захочет - переименует
Автор давно хочет, понял и признает свою ошибку, вот только не знает как переименовать тему

Теперь протокол:

"Команда: Противоположный угол:
Команда:
Команда:
Команда:

Задайте параметр [Замкнуть/Добавить/Ширина/Вершина/СГладить/СПлайн/Убрать
сглаживание/Типлин/оБратить/Отменить]:

Выберите объекты: Противоположный угол: найдено: 4

Выберите объекты:
Добавлено сегментов: 3

Задайте параметр [Замкнуть/Добавить/Ширина/Вершина/СГладить/СПлайн/Убрать
сглаживание/Типлин/оБратить/Отменить]: *Прервано*"
__________________
"А кто не курит сосиски, тот лох!" (с)
Nosferatu вне форума  
 
Непрочитано 09.07.2010, 15:28
#18
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от Nosferatu Посмотреть сообщение
вот только не знает как переименовать тему
Как переименовать тему?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 09.07.2010, 15:30
#19
AlphaGeo


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


Цитата:
Сообщение от Nosferatu Посмотреть сообщение
Теперь протокол:

"Команда: Противоположный угол:
Команда:
Команда:
Команда:

Задайте параметр [Замкнуть/Добавить/Ширина/Вершина/СГладить/СПлайн/Убрать
сглаживание/Типлин/оБратить/Отменить]:

Выберите объекты: Противоположный угол: найдено: 4

Выберите объекты:
Добавлено сегментов: 3

Задайте параметр [Замкнуть/Добавить/Ширина/Вершина/СГладить/СПлайн/Убрать
сглаживание/Типлин/оБратить/Отменить]: *Прервано*"
Что-то «протокол» какой-то «рваный»... Не видно ни запускаемых команд, ни выбираемых их опций.
 
 
Автор темы   Непрочитано 09.07.2010, 15:37
#20
Nosferatu


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


Цитата:
Сообщение от BM60 Посмотреть сообщение
Не захочет, я уверен. Если только на "зло" мне и Profan'y переименует.
Вы приписываете мне агрессию, которую сами себе придумали.
Цитата:
Сообщение от AlphaGeo Посмотреть сообщение
Что-то «протокол» какой-то «рваный»... Не видно ни запускаемых команд, ни выбираемых их опций.
Если есть способ достать более детализированный протокол, напишите, я его запостю.
Хочу отметить, что все работает, и, в принципе вопрос снят, всем спасибо!
Кстати,
Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Не пробовал и пробовать не хочу. Мне намного проще подобные вещи выполнять в режиме обычной команды, не связываясь с созданием макросов и изменением системных переменных )
у меня работа связана с частым применением этого гм, макроса. Я экономлю не только и не столько время, сколько нервы. Себе и отделу. Ваш макрос УЖЕ помог 4 инженерам.
__________________
"А кто не курит сосиски, тот лох!" (с)
Nosferatu вне форума  
 
Непрочитано 09.07.2010, 16:06
#21
BM60


 
Регистрация: 08.02.2008
Где-то
Сообщений: 8,460


Offtop: Любо-дорого теперь прочесть заголовок, начало и конец этой темы.
__________________
Я дарю не рыбу, а удочку и море.
www.zodchii.ws,
Библиотеки электронных книг
Download
BM60 вне форума  
 
Непрочитано 09.07.2010, 16:08
#22
Кулик Алексей aka kpblc
Moderator

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


Nosferatu, скажу честно: мне будет проще сделать лисп типа
Код:
[Выделить все]
(vl-load-com)

(defun c:mod-ped (/ adoc selset sysvar prec)
  (vla-startundomark (setq adoc (vla-get-activedocument (vlax-get-acad-object))))
  (setq sysvar (mapcar
                 (function
                   (lambda (x / res)
                     (setq res (cons (car x) (getvar (car x))))
                     (setvar (car x) (cdr x))
                     res
                     ) ;_ end of lambda
                   ) ;_ end of function
                 '(("peditaccept" . 1)
                   ("cmdecho" . 0)
                   )
                 ) ;_ end of mapcar
        ) ;_ end of setq
  (if (and (= (type (setq selset (vl-catch-all-apply
                                   (function
                                     (lambda ()
                                       (ssget)
                                       ) ;_ end of lambda
                                     ) ;_ end of function
                                   ) ;_ end of vl-catch-all-apply
                          ) ;_ end of setq
                    ) ;_ end of type
              'pickset
              ) ;_ end of =
           (= (type (setq prec (vl-catch-all-apply
                                 (function
                                   (lambda ()
                                     (cond
                                       ((getdist "\nТочность соединения <0.0> : "))
                                       (t 0.)
                                       ) ;_ end of cond
                                     ) ;_ end of lambda
                                   ) ;_ end of function
                                 ) ;_ end of vl-catch-all-apply
                          ) ;_ end of setq
                    ) ;_ end of type
              'real
              ) ;_ end of =
           ) ;_ end of and
    (vl-catch-all-apply
      (function
        (lambda ()
          (command "_.pedit" "_m" selset "" "_j" prec "")
          ) ;_ end of lambda
        ) ;_ end of function
      ) ;_ end of vl-catch-all-apply
    ) ;_ end of if
  (foreach item sysvar
    (setvar (car item) (cdr item))
    ) ;_ end of foreach
  (vla-endundomark adoc)
  (princ)
  ) ;_ end of defun
И использовать его.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 09.07.2010, 16:32
#23
Profan


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


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

Теперь протокол:

"Команда: Противоположный угол:
Команда:
Команда:
Команда:

Задайте параметр [Замкнуть/Добавить/Ширина/Вершина/СГладить/СПлайн/Убрать
сглаживание/Типлин/оБратить/Отменить]:

Выберите объекты: Противоположный угол: найдено: 4

Выберите объекты:
Добавлено сегментов: 3

Задайте параметр [Замкнуть/Добавить/Ширина/Вершина/СГладить/СПлайн/Убрать
сглаживание/Типлин/оБратить/Отменить]: *Прервано*"
Это не протокол выполнения макроса, а куски какие-то, выдраные неизвестно откуда. Автор темы мистифицирует форумчан.
Вот реальный протокол выполнения макроса ^C^C_.pedit;_j;
Код:
[Выделить все]
Команда: _.pedit
Выберите полилинию или [Несколько]: _j

*Неверный выбор*
Требуется точка или Рамка/Последний/Секрамка/БОКС/Все/Линия/РМн-угол/СМн-угол
Выберите полилинию или [Несколько]:
Выберите полилинию или [Несколько]: *Прервано*
Profan вне форума  
 
Автор темы   Непрочитано 09.07.2010, 16:56
#24
Nosferatu


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


Цитата:
Сообщение от Profan Посмотреть сообщение
Это не протокол выполнения макроса, а куски какие-то
что вы все на меня нападаете?
мне сказали после выполнения команды нажать F2 и скопировать оттуда непонятные слова, я так и сделал! Вообще, вначале был простой вопрос и сразу был правильный ответ. Зачем пошла лабуда про кривые руки и то, что макрос, который работает, работать в принципе не может, когда я его уже 3 года юзаю, я не понимаю! Теперь я что-то мистифицирую... Да елы-палы!
__________________
"А кто не курит сосиски, тот лох!" (с)
Nosferatu вне форума  
 
Непрочитано 09.07.2010, 16:59
#25
Кулик Алексей aka kpblc
Moderator

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


Nosferatu, тихо-тихо Ты лучше скажи, мой лиспик исключил из рассмотрения или нет?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 09.07.2010, 17:12
#26
sasha_lif

Дизайнер-конструктор
 
Регистрация: 29.05.2004
Kiev
Сообщений: 1,179
<phrase 1=


Nosferatu, если часто пользуешся часто pedit, то попробуй
PL-JOIN
из
Новые команды для работы с полилинией. http://dwg.ru/dnl/607
Цитата:
PL-JOIN -Объединение полилиний чохом
PL-JOIN3D -Объединение 3D полилиний
Позволит объединять не по одному контуру, очень классная штука!
__________________
Kiev, Ukraine
sasha_lif вне форума  
 
Непрочитано 09.07.2010, 17:29
#27
Profan


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


Nosferatu, это уже дело принципа. Я всяких макросов в свое время горы понаделал. Не работает у меня этот макрос ни в одной версии. О каких непонятных словах ты пишешь, если у тебя русская версия? Тогда хоть словами опиши, что у тебя выполняется после нажатия кнопки с этим макросом.
А вот как выглядит протокол выполнения команды "_pedit" для 4 отрезков при PEDITACCEPT, равной 1 (AutoCAD 2006 РУС, AutoCAD 2011 РУС):
Код:
[Выделить все]
Команда: _pedit
Выберите полилинию или [Несколько]: Н
Выберите объекты: Противоположный угол: найдено: 4
Выберите объекты:
Задайте опцию [Замкнуть/Разомкнуть/Добавить/Ширина/СГладить/СПлайн/Убрать 
сглаживание/Типлин/Отменить]: Д
Способ добавления = Удлинить
Значение допуска или [Способ] <0.0000>: 0
Добавлено сегментов: 3
Задайте опцию [Замкнуть/Разомкнуть/Добавить/Ширина/СГладить/СПлайн/Убрать 
сглаживание/Типлин/Отменить]:
Команда:
Нет, что-то он не договаривает.
Profan вне форума  
 
Автор темы   Непрочитано 09.07.2010, 19:12
#28
Nosferatu


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Nosferatu, тихо-тихо Ты лучше скажи, мой лиспик исключил из рассмотрения или нет?
Кулик Алексей aka kpblc, это для меня очень сложно, но большое Вам человеческое спасибо за попытку помочь

Цитата:
Сообщение от Profan Посмотреть сообщение
Не работает у меня этот макрос ни в одной версии.
у меня и моих коллег работает в версии:"^C^C_.pedit;_j;"


Цитата:
Сообщение от Profan Посмотреть сообщение
Тогда хоть словами опиши
Описываю.
Есть два отрезка, концы которых совпадают. Отрезки не лежат на одной прямой. Выделяем первый, нажимаем кнопочку, выделяем оба (или все, если их больше). Затем пробел или интер. Он все еще в режиме команды, поэтому жмем Esc. Готов поспорить, так заработает. :-)

Цитата:
Сообщение от sasha_lif Посмотреть сообщение
Nosferatu, если часто пользуешся часто pedit, то попробуй
PL-JOIN
из
Новые команды для работы с полилинией. http://dwg.ru/dnl/607

Цитата:




PL-JOIN -Объединение полилиний чохом
PL-JOIN3D -Объединение 3D полилиний




Позволит объединять не по одному контуру, очень классная штука!
sasha_lif, спасибо, в понедельник обязательно посмотрю
__________________
"А кто не курит сосиски, тот лох!" (с)
Nosferatu вне форума  
 
Непрочитано 09.07.2010, 22:06
2 | #29
Profan


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


Nosferatu.
Вот это важно:
Цитата:
Выделяем первый, нажимаем кнопочку, выделяем оба (или все, если их больше).
При таком порядке действий макрос действительно работет.
А теперь попробуй вот такой макрос:
Код:
[Выделить все]
^C^C_.select;\_.pedit;_m;_p;;_j;;;
Здесь предварительно ничего выделять не надо, сразу нажимаем кнопку.
Profan вне форума  
 
Автор темы   Непрочитано 10.07.2010, 10:26
#30
Nosferatu


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


Цитата:
Сообщение от Profan Посмотреть сообщение
Вот это важно
я подозревал, что в этом загвоздка.
В понедельник попробую, спасибо :-)
__________________
"А кто не курит сосиски, тот лох!" (с)
Nosferatu вне форума  
 
Непрочитано 10.07.2010, 13:02
#31
Profan


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


Nosferatu.
Еще замечания. Если вернуться к твоему макросу, то он не будет работать при отключенном предварительном выборе объектов (переменная PICKFIRST = 0). И, конечно, в случае удачной работы твоего макроса, обрывать комадну по Esc нет нужды, команда нормально завершится при нажатии Enter или пробела.
Profan вне форума  
 
Автор темы   Непрочитано 10.07.2010, 13:11
#32
Nosferatu


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


Цитата:
Сообщение от Profan Посмотреть сообщение
Еще замечания.
Буду знать, спасибо!
__________________
"А кто не курит сосиски, тот лох!" (с)
Nosferatu вне форума  
 
Непрочитано 10.07.2010, 19:35
#33
mnasoft

инженер
 
Регистрация: 07.07.2010
Украина
Сообщений: 2


Макрос, объединяющий объекты со смежными концами можно записать так:
^C^C(setq temp_Ss (ssget))(command "PEDITACCEPT" "1" "_pedit" (ssname temp_Ss 0) "j" temp_Ss "" "")
mnasoft вне форума  
 
Автор темы   Непрочитано 11.07.2010, 07:06
#34
Nosferatu


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


Цитата:
Сообщение от mnasoft Посмотреть сообщение
можно записать так
Не, Вы что издеваетесь? вообще ж ничего не понятно, как в лиспе Алексея! Но, все равно спасибо, маэстро
Раз пошла такая пьянка, скажите, пожалуйста - с чего лучше начать изучение темы написания макросов - с книги, которую мне посоветовали скачать в начале темы?
__________________
"А кто не курит сосиски, тот лох!" (с)
Nosferatu вне форума  
 
Непрочитано 11.07.2010, 07:37
#35
Profan


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


Да, советую эту книгу прочитать обязательно.
http://dwg.ru/dnl/3480
Profan вне форума  
 
Автор темы   Непрочитано 12.07.2010, 15:45
#36
Nosferatu


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


Цитата:
Сообщение от Profan Посмотреть сообщение
^C^C_.select;\_.pedit;_m;_p;;_j;;;
работает иделаьно, но для Вас это, скорее всего не новость

Цитата:
Сообщение от Profan Посмотреть сообщение
Да, советую эту книгу прочитать обязательно.
http://dwg.ru/dnl/3480
Спасибо, еще раз.
Считаю тему можно закрывать.
__________________
"А кто не курит сосиски, тот лох!" (с)
Nosferatu вне форума  
 
Непрочитано 12.07.2010, 17:20
#37
Profan


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


Цитата:
Сообщение от Nosferatu Посмотреть сообщение
работает иделаьно, но для Вас это, скорее всего не новость.
Да, не новость. Применение в макросе команды "_select" ("выбрать") помогает решить многие проблемы. Это связано не в последнюю очередь с тем, что единственная косая черта позволяет произвести многократный выбор объектов...
Profan вне форума  
 
Непрочитано 19.07.2010, 18:29
#38
Вуфля


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


Помогите! =( соединила отрезки один объект(полилиния) а как их разомкнуть обратно?? а то я с рамерами напутала...
Вуфля вне форума  
 
Непрочитано 19.07.2010, 18:43
#39
Profan


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


Пошутила, наверное...
Если чертеж еще не закрывался после объединения в одну полилинию, то можно последовательно отменить выполненные команды вплоть до нужной.
Если чертеж был сохранен 1 раз и закрыт, то надо искать файл *.bak.
Profan вне форума  
 
Непрочитано 19.07.2010, 18:52
#40
Вуфля


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


не пошутила. я весь день черчу одно задание..а когда стала размеры выстовлять увидела, что съехала по замерам=/ а может можно как то уменьшить стенки?
Вуфля вне форума  
 
Автор темы   Непрочитано 19.07.2010, 20:07
#41
Nosferatu


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


Вуфля, есть куча возможностей разомкнуть полилинию.
1) "Оборвать в точке" (функция в панели Modify или Редактирование)
2) "Взорвать" полилинию
3) и, мне кажется, самое правильное в таких ситуациях - отменить последнее действие стрелочкой на верхней панели или нажатием Ctrl+z
Да поправят меня более опытные коллеги, если я не прав. А про стенку вообще непонятно
__________________
"А кто не курит сосиски, тот лох!" (с)
Nosferatu вне форума  
 
Непрочитано 20.07.2010, 02:29
#42
Вуфля


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


у меня уже был сохранен документ. я сделала "взрыв" .. просто училась по русской версии, а работаю в англ.,не привычно=(
Вуфля вне форума  
 
Автор темы   Непрочитано 20.07.2010, 09:16
#43
Nosferatu


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


Офтоп: а может, все-таки, первоначальное название темы не совсем противоречит действительности? Русский АКАД, на мой взгляд, как коробка автомат - если на ней учился, на ней тебе и ездить. Переучиваться сложно.
__________________
"А кто не курит сосиски, тот лох!" (с)
Nosferatu вне форума  
 
Непрочитано 20.07.2010, 10:06
#44
Вуфля


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


да на работе то англ. версия, придется
Вуфля вне форума  
 
Непрочитано 20.07.2010, 12:10
#45
Dant


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


Есть классный макрос. Отрисовывает линию разрыва трубы всего за два клика. Основу взял с книги В. Света и потом доработал.

^C^C(Setq CL1 (Getvar "CLayer"));_CLayer;"BreakLine";(Setq Os (Getvar "Osmode"));_Osmode;0;(Setq P1 (Getpoint));_Nea;\(Setq P2 (Getpoint P1));_Per;\_Pline;'_Cal;P1;_Width;0;;_Arc;_Angle;-80;'_Cal;P3=(P1+P2)/2;'_Cal;P2;_Angle;80;'_Cal;P3;;(Setvar "Osmode" Os) (Setvar "CLayer" CL1)

В 5-м и 6-м AutoCADе все это работало безупречно. А в 10-м (английская версия) выполняется наполовину. Не могу понять в чем проблема. Может кто-то что-то подскажет? Ниже выполнение макроса:

Command: (Setq CL1 (Getvar "CLayer"))
"BreakLine"

Command: _CLayer

Enter new value for CLAYER <"BreakLine">: "BreakLine"

Command: (Setq Os (Getvar "Osmode"))
0

Command: _Osmode

Enter new value for OSMODE <0>: 0

Command: (Setq P1 (Getpoint))
_Nea
to (132871.0 37846.3 0.0)

Command: (Setq P2 (Getpoint P1))
_Per
to (133043.0 37846.3 0.0)

Command: _Pline

Specify start point: '_Cal
>>>> Expression: P1

Resuming PLINE command.

Specify start point: _Width

Invalid point.

Specify start point: 132870.53644554,37846.293094523,0

Current line-width is 0.0
Specify next point or [Arc/Halfwidth/Length/Undo/Width]: *Cancel*

Ошибка в том, что после получения первой точки Р1 из выражения калькулятора, он опять запрашивает первую точку - ПОЧЕМУ?
Dant вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Где ошибка в моем макросе для полилинии в локал. версии AutoCAD?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Возможно ли установить AutoCAD 2009 и 2010 в рамках одной системы и избежать конфликтов? anonymous AutoCAD 11 14.03.2012 10:36
Дуги из AutoCAD в ArchiCAD "выпрямляются"....(((Помогите пжста!Блондиню... anele_art AutoCAD 4 31.03.2010 05:45
AutoCad 2004 и 2008 на одной машине esquire_vik AutoCAD 3 07.05.2009 11:00
Нет ни одной панели AutoCAD 2009LT Mikhailka AutoCAD 2 23.02.2009 16:11
Как поставить два AutoCAD на одной машине? Chief Justice AutoCAD 6 24.07.2006 09:36