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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Нужны функции из ruCAD

Нужны функции из ruCAD

Ответ
Поиск в этой теме
Непрочитано 29.01.2008, 14:22 #1
Нужны функции из ruCAD
getr
 
Конструктор
 
Из тех ворот-откуда весь народ.
Регистрация: 06.04.2005
Сообщений: 361

Не поделится ли кто функциями из ruCAD'a - (ru-obj-undo-end) и (ru-obj-undo-begin), а то форум рукадовский не работает...спросить негде?
__________________
"Мнение не бывает ни истинным, ни ложным, а лишь полезным в жизни или бесполезным. ",- Ауробиндо
И не надо делать удивленных движений руками.
Просмотров: 3260
 
Непрочитано 29.01.2008, 14:28
#2
Кулик Алексей aka kpblc
Moderator

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


Если втупую:
Код:
[Выделить все]
(vla-startundomark (vla-get-activedocument (vlax-get-acad-object))); start-undo
(vla-endundomark (vla-get-activedocument (vlax-get-acad-object))); end-undo
В ruCAD'e, насколько я помню, указатель на активный документ вычисляется в момент старта, и потом просто не переопределяется.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 29.01.2008, 15:11
#3
getr

Конструктор
 
Регистрация: 06.04.2005
Из тех ворот-откуда весь народ.
Сообщений: 361
<phrase 1=


Щас попробую...
__________________
"Мнение не бывает ни истинным, ни ложным, а лишь полезным в жизни или бесполезным. ",- Ауробиндо
И не надо делать удивленных движений руками.
getr вне форума  
 
Автор темы   Непрочитано 29.01.2008, 15:52
#4
getr

Конструктор
 
Регистрация: 06.04.2005
Из тех ворот-откуда весь народ.
Сообщений: 361
<phrase 1=


К сожалению не прокатило...
__________________
"Мнение не бывает ни истинным, ни ложным, а лишь полезным в жизни или бесполезным. ",- Ауробиндо
И не надо делать удивленных движений руками.
getr вне форума  
 
Непрочитано 29.01.2008, 15:58
#5
Кулик Алексей aka kpblc
Moderator

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


Вот код из ruCAD'a книжной версии (надеюсь, ShaggyDoc на меня не обидится):
ru-obj-undo-begin.lsp:
Код:
[Выделить все]
;;; ************************************************************************
;;; * Компонент Интегрированной системы ruCAD
;;; *
;;; * Установка метки начала отката
;;; *
;;; * Copyright ©2004 ruCAD Group
;;; *		Сергей Зуев   (ShaggyDoc)
;;; *		Пётр Лоскутов (Alaspher)
;;; *		Николай Полещук
;;; * http://www.kurganobl.ru/cad
;;; * РАЗРЕШАЕТСЯ ИСПОЛЬЗОВАНИЕ В КОММЕРЧЕСКИХ ПРОГРАММНЫХ ПРОДУКТАХ
;;; * ТОЛЬКО ПРИ ПОСТАВКЕ ЧАСТЕЙ ПРОДУКТА, ИСПОЛЬЗУЮЩИХ НАСТОЯЩИЙ КОМПОНЕНТ,
;;; * С ИСХОДНЫМИ ТЕКСТАМИ
;;; *
;;; ************************************************************************


(defun ru-obj-undo-begin ()
    (vlax-invoke-method (ru-obj-get-active-document) 'StartUndoMark)
) ;_ end of defun
ru-obj-undo-end.lsp:
Код:
[Выделить все]
;;; ************************************************************************
;;; * Компонент Интегрированной системы ruCAD
;;; *
;;; * Установка метки конца отката
;;; *
;;; * Copyright ©2004 ruCAD Group
;;; *		Сергей Зуев   (ShaggyDoc)
;;; *		Пётр Лоскутов (Alaspher)
;;; *		Николай Полещук
;;; * http://www.kurganobl.ru/cad
;;; * РАЗРЕШАЕТСЯ ИСПОЛЬЗОВАНИЕ В КОММЕРЧЕСКИХ ПРОГРАММНЫХ ПРОДУКТАХ
;;; * ТОЛЬКО ПРИ ПОСТАВКЕ ЧАСТЕЙ ПРОДУКТА, ИСПОЛЬЗУЮЩИХ НАСТОЯЩИЙ КОМПОНЕНТ,
;;; * С ИСХОДНЫМИ ТЕКСТАМИ
;;; *
;;; ************************************************************************


(defun ru-obj-undo-end ()
    (vlax-invoke-method (ru-obj-get-active-document) 'EndUndoMark)
) ;_ end of defun
Те же действия. Абсолютно.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 29.01.2008, 20:14
#6
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Точно. Вариант Алексея - более "лисповский", использует функции. Второй вариант использует более универсальное обращение (но менее читабельное для Lisp). Результаты абсолютно одинаковы.
ShaggyDoc вне форума  
 
Автор темы   Непрочитано 30.01.2008, 10:10
#7
getr

Конструктор
 
Регистрация: 06.04.2005
Из тех ворот-откуда весь народ.
Сообщений: 361
<phrase 1=


Если не трудно прошу проверить где я ошибаюсь?Дело в том,что я скачал с инета книгу "Сергей Зуев, Н. Полещук САПР на базе AutoCAD",там в главе 25 на стр.821 заинтересовал меня листинг 25.5-"быстрое стирание".Я попытался сделать из него каманду для автокада,но почему-то не получается.Может где-то ошибка в моем тексте,так как качество текста книги,особенно листингов не очень хорошее.Правда вместо макроса из книги,чтобы не использовать функцию ru-app-load,за неимением таковой,- составил свой: ^C^C^P(if (= c:ru_rubber nil) (load "ru_rubber"));ru_rubber;
Да еще заменил в вышеуказанных функциях (ru-obj-get-active-document) на выражение (vla-get-activedocument (vlax-get-acad-object)) насколько я понял это то же самое.Ниже привожу листинг ru_rubber.lsp.
Код:
[Выделить все]
;;;*********************ru_rubber.lsp****************************
;;; Программа "Стирание ластиком"или "быстрое стирание"
;;; на основе листинга 25.5 из книги С. Зуева и Н. Полещук "САПР на базе AUTOCAD"
;;; Макрос для кнопки ^C^C^P(if (= c:ru_rubber nil) (load "ru_rubber"));ru_rubber; 
;;;
;;; ************************************************************************
;;; * Компонент Интегрированной системы ruCAD
;;; *
;;; * Установка метки начала отката
;;; *
;;; * Copyright ©2004 ruCAD Group
;;; *		Сергей Зуев   (ShaggyDoc)
;;; *		Пётр Лоскутов (Alaspher)
;;; *		Николай Полещук
;;; * http://www.kurganobl.ru/cad
;;; * РАЗРЕШАЕТСЯ ИСПОЛЬЗОВАНИЕ В КОММЕРЧЕСКИХ ПРОГРАММНЫХ ПРОДУКТАХ
;;; * ТОЛЬКО ПРИ ПОСТАВКЕ ЧАСТЕЙ ПРОДУКТА, ИСПОЛЬЗУЮЩИХ НАСТОЯЩИЙ КОМПОНЕНТ,
;;; * С ИСХОДНЫМИ ТЕКСТАМИ
;;; *
;;; ************************************************************************
(defun ru-obj-undo-begin ()
  (vlax-invoke-method
    (vla-get-activedocument (vlax-get-acad-object))
    'StartUndoMark
  )
) ;_ end of defun
;;; ************************************************************************
;;; * Компонент Интегрированной системы ruCAD
;;; *
;;; * Установка метки конца отката
;;; *
;;; * Copyright ©2004 ruCAD Group
;;; *		Сергей Зуев   (ShaggyDoc)
;;; *		Пётр Лоскутов (Alaspher)
;;; *		Николай Полещук
;;; * http://www.kurganobl.ru/cad
;;; * РАЗРЕШАЕТСЯ ИСПОЛЬЗОВАНИЕ В КОММЕРЧЕСКИХ ПРОГРАММНЫХ ПРОДУКТАХ
;;; * ТОЛЬКО ПРИ ПОСТАВКЕ ЧАСТЕЙ ПРОДУКТА, ИСПОЛЬЗУЮЩИХ НАСТОЯЩИЙ КОМПОНЕНТ,
;;; * С ИСХОДНЫМИ ТЕКСТАМИ
;;; *
;;; ************************************************************************
(defun ru-obj-undo-end ()
  (vlax-invoke-method
    (vla-get-activedocument (vlax-get-acad-object))
    'EndUndoMark
  )
) ;_ end of defun
***********************************
(defun START (/ key mode point selection *error*)
;;; Локальный обработчик ошибок
  (defun *error* (msg)
    (ru-obj-undo-end)
    (command "_.U")
    (princ "\пСтирание отменено\n.")
    (princ)
  ) ;_ end of defun

  (ru-obj-undo-begin)
  (setq	key 3
	mode т
  )
  (while (or (= key 3) (= key 5))
    (cond ((= key 3)
	   (princ
;;;Выхол показываем в виде результата действия по умолчанию, т. е. нажатия клавиши
;;;Enter. Фактически можно нажать любую клавишу, но не будем смущать "теток"
;;;двусмысленным предложением "Any key"

	     (if (setq mode (not mode))
	       "\пРежим ЛАСТИК (клик = приостановить стирание) <Выход>"
	       "\nУкажи точку для запуска режима ЛАСТИК <Выкод>"
	     )
	   )
	  )
	  ((not mode))
	  (Т
	   (if (setq selection (ssget (cadr point)))
	     (entdel (ssname selection 0))
	   ) ;_ end of if
	  )
    ) ;_ end of cond
    (setq key (car (setq point (grread Т 6 2))))
  ) ;_ end of while
  (princ "\nРабота команды завершена.")
  (ru-obj-undo-end)
  (princ)
) ;_ end of defun
**************************
(defun c:ru_rubber ()
  (START)
  (princ)
)
__________________
"Мнение не бывает ни истинным, ни ложным, а лишь полезным в жизни или бесполезным. ",- Ауробиндо
И не надо делать удивленных движений руками.

Последний раз редактировалось Кулик Алексей aka kpblc, 30.01.2008 в 10:19.
getr вне форума  
 
Непрочитано 30.01.2008, 10:27
#8
Кулик Алексей aka kpblc
Moderator

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


А надо было книгу покупать, а не скачивать Во-первых, код распознан неверно. Во-вторых, его тоже не помешает анализировать. Вот рабочий вариант:
Код:
[Выделить все]
;;; ************************************************************************
;;; * Компонент Интегрированной системы ruCAD
;;; *
;;; * Быстрое стирание объектов под курсором
;;; *
;;; * Copyright ©2004 ruCAD Group
;;; *		Сергей Зуев   (ShaggyDoc)
;;; *		Пётр Лоскутов (Alaspher)
;;; *		Николай Полещук
;;; * http://www.kurganobl.ru/cad
;;; * РАЗРЕШАЕТСЯ ИСПОЛЬЗОВАНИЕ В КОММЕРЧЕСКИХ ПРОГРАММНЫХ ПРОДУКТАХ
;;; * ТОЛЬКО ПРИ ПОСТАВКЕ ЧАСТЕЙ ПРОДУКТА, ИСПОЛЬЗУЮЩИХ НАСТОЯЩИЙ КОМПОНЕНТ,
;;; * С ИСХОДНЫМИ ТЕКСТАМИ
;;; *
;;; ************************************************************************

;;; * Компонент Интегрированной системы ruCAD
;;; *
;;; * Установка метки начала отката
;;; *
;;; * Copyright ©2004 ruCAD Group
;;; *		Сергей Зуев   (ShaggyDoc)
;;; *		Пётр Лоскутов (Alaspher)
;;; *		Николай Полещук
;;; * http://www.kurganobl.ru/cad
;;; * РАЗРЕШАЕТСЯ ИСПОЛЬЗОВАНИЕ В КОММЕРЧЕСКИХ ПРОГРАММНЫХ ПРОДУКТАХ
;;; * ТОЛЬКО ПРИ ПОСТАВКЕ ЧАСТЕЙ ПРОДУКТА, ИСПОЛЬЗУЮЩИХ НАСТОЯЩИЙ КОМПОНЕНТ,
;;; * С ИСХОДНЫМИ ТЕКСТАМИ
;;; *
;;; ************************************************************************
(defun ru-obj-undo-begin ()
  (vlax-invoke-method
    (vla-get-activedocument (vlax-get-acad-object))
    'startundomark
    ) ;_ end of vlax-invoke-method
  ) ;_ end of defun
;;; ************************************************************************
;;; * Компонент Интегрированной системы ruCAD
;;; *
;;; * Установка метки конца отката
;;; *
;;; * Copyright ©2004 ruCAD Group
;;; *		Сергей Зуев   (ShaggyDoc)
;;; *		Пётр Лоскутов (Alaspher)
;;; *		Николай Полещук
;;; * http://www.kurganobl.ru/cad
;;; * РАЗРЕШАЕТСЯ ИСПОЛЬЗОВАНИЕ В КОММЕРЧЕСКИХ ПРОГРАММНЫХ ПРОДУКТАХ
;;; * ТОЛЬКО ПРИ ПОСТАВКЕ ЧАСТЕЙ ПРОДУКТА, ИСПОЛЬЗУЮЩИХ НАСТОЯЩИЙ КОМПОНЕНТ,
;;; * С ИСХОДНЫМИ ТЕКСТАМИ
;;; *
;;; ************************************************************************
(defun ru-obj-undo-end ()
  (vlax-invoke-method
    (vla-get-activedocument (vlax-get-acad-object))
    'endundomark
    ) ;_ end of vlax-invoke-method
  ) ;_ end of defun

(defun start (/ key mode point selection *error*)
  (defun *error* (msg)
    (ru-obj-undo-end)
    (command "_.U")
    (princ "\nСтирание отменено\n")
    (princ)
    ) ;_ end of defun

  (ru-obj-undo-begin)
  (setq key 3
        mode t
        ) ;_ end of setq
  (while (or (= key 3) (= key 5))
    (cond ((= key 3)
           (princ
             (if (setq mode (not mode))
               "\nРежим ЛАСТИК (клик = приостановить стирание) <Выход>"
               "\nУкажи точку для запуска режима ЛАСТИК <Выход>"
               ) ;_ end of if
             ) ;_ end of princ
           )
          ((not mode))
          (t
           (if (setq selection (ssget (cadr point)))
             (entdel (ssname selection 0))
             ) ;_ end of if
           )
          ) ;_ end of cond
    (setq key (car (setq point (grread t 4 2))))
    ) ;_ end of while
  (princ "\nРабота команды завершена.")
  (ru-obj-undo-end)
  (princ)
  ) ;_ end of defun

(defun c:ru_rubber ()
  (start)
  (princ)
  ) ;_ end of defun
Как говорится, "найти 10 отличий" (хотя их меньше).
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 30.01.2008, 13:54
#9
getr

Конструктор
 
Регистрация: 06.04.2005
Из тех ворот-откуда весь народ.
Сообщений: 361
<phrase 1=


Спасибо,Алексей!Заработало после перевода в нижний регистр некоторых выражений,не думал что ошибка может быть именно в этом.А книгу купить в нашей дыре не возможно.
А как загнать часть текста сообщения(например код) в рамку с ползунком?
__________________
"Мнение не бывает ни истинным, ни ложным, а лишь полезным в жизни или бесполезным. ",- Ауробиндо
И не надо делать удивленных движений руками.
getr вне форума  
 
Непрочитано 30.01.2008, 14:06
#10
Кулик Алексей aka kpblc
Moderator

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


Ну было бы желание, выкрутиться можно Например, через ozon.ru заказать или colibri.ru - неважно.
Кстати, дело не в том, что я перевел все в нижний регистр совсем не в этом.
Цитата:
А как загнать часть текста сообщения(например код) в рамку с ползунком?
Если я правильно догадался, то вопрос в применении тэгов [code] и [/code]
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 30.01.2008, 15:02
#11
getr

Конструктор
 
Регистрация: 06.04.2005
Из тех ворот-откуда весь народ.
Сообщений: 361
<phrase 1=


Ну тогда скорей всего символ Т(true) был написан русской буквой.
А где [code] в торопях(трафик кончается) не увидел.
__________________
"Мнение не бывает ни истинным, ни ложным, а лишь полезным в жизни или бесполезным. ",- Ауробиндо
И не надо делать удивленных движений руками.
getr вне форума  
 
Непрочитано 30.01.2008, 16:03
#12
Кулик Алексей aka kpblc
Moderator

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


Можно просто вколачивать в быстрый ответ; или перейти в расширенный режим - там есть специальная кнопочка.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 30.01.2008, 18:15
#13
getr

Конструктор
 
Регистрация: 06.04.2005
Из тех ворот-откуда весь народ.
Сообщений: 361
<phrase 1=


Понял.Спасибо еще раз.
__________________
"Мнение не бывает ни истинным, ни ложным, а лишь полезным в жизни или бесполезным. ",- Ауробиндо
И не надо делать удивленных движений руками.
getr вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Нужны функции из ruCAD



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопросы по работе системы RuCAD Олег К. Прочее. Программное обеспечение 142 17.09.2019 05:06
Предложение: Готовые функции Apelsinov Библиотека функций 170 27.06.2010 23:51
Как связать две функции Holon Программирование 11 30.07.2007 13:32
Нужны чертежи резиновой женщины в Autocad// faysst AutoCAD 70 07.08.2006 18:24
нужны проекты высотных сооружений Gostushev Прочее. Архитектура и строительство 4 12.07.2005 13:19