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

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

задача для LISP

Ответ
Поиск в этой теме
Непрочитано 18.08.2005, 13:07 #1
задача для LISP
RSD
 
Регистрация: 18.08.2005
Сообщений: 5

не знаю возможны ли математические операции в Акаде?
говорят в ЛИСП можно, а я не разбираюсь в ЛИСП, потому прошу мне помочь
стоит задача такого рода: на чертеже стоит размер, причем его значение берется из text override (напр 100) нужно чтобы к данному значению прбавилось значение другого размера (напр 40) и из этой суммы вычиталось еще значение (напр 5 задается вручную)
Просмотров: 2346
 
Непрочитано 18.08.2005, 16:15
#2
vk

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


....полученное значение забыть и никому не говорить....
(с) не помню чей

В принципе, сделать можно.
Если text override отсутствует или содержит не только число - тады как?
vk вне форума  
 
Непрочитано 18.08.2005, 21:45 Re: задача для LISP умельцев
#3
fixo

Lisp/VBA/VB.NET Hobbyist
 
Регистрация: 24.03.2005
Славен Град Петров
Сообщений: 367


Цитата:
Сообщение от RSD
не знаю возможны ли математические операции в Акаде?
говорят в ЛИСП можно, а я не разбираюсь в ЛИСП, потому прошу мне помочь
стоит задача такого рода: на чертеже стоит размер, причем его значение берется из text override (напр 100) нужно чтобы к данному значению прбавилось значение другого размера (напр 40) и из этой суммы вычиталось еще значение (напр 5 задается вручную)
Спробуй, может подойдет:
Код:
[Выделить все]
(defun C:tdm ()
(or adoc (setq adoc (vla-get-activedocument 
              (vlax-get-acad-object))))
(vla-endundomark adoc)
(vla-startundomark adoc)
(setq dm1 (vlax-ename->vla-object
	   (car (entsel
		  "\nВыбрать размер для экзекуции>>>\n"))))
(if (eq (vla-get-textoverride dm1) "")
  (setq item1 (vl-prin1-to-string (vla-get-measurement dm1)))
  (setq item1 (vla-get-textoverride dm1)))

(setq dm2 (vlax-ename->vla-object
	   (car (entsel
		  "\nКакой размер прибавим (Выбрать второй размер)>>>\n"))))
(if (eq (vla-get-textoverride dm2) "")
  (setq item2 (vl-prin1-to-string (vla-get-measurement dm2)))
  (setq item2 (vla-get-textoverride dm2)))
  
(setq item3 (getreal "\nСколько добавим (Введите число)?"))
(if (and item1 item2 item3)
(progn
(if (vlax-write-enabled-p dm1)     
(vlax-put-property  dm1
  'Textoverride
(- (apply '+ (mapcar 'atof (list item1 item2))) item3)))
(vla-update dm1)
(mapcar 'vlax-release-object  (list dm1 dm2))))
(vla-endundomark adoc)        
(princ)
)
fixo вне форума  
 
Автор темы   Непрочитано 22.08.2005, 08:48
#4
RSD


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


Спасибо
работает!!!
RSD вне форума  
 
Непрочитано 22.08.2005, 12:53
#5
Vook


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


Может с помощью полей это организовать?
Vook вне форума  
 
Непрочитано 22.08.2005, 12:59
#6
fixo

Lisp/VBA/VB.NET Hobbyist
 
Регистрация: 24.03.2005
Славен Град Петров
Сообщений: 367


Цитата:
Сообщение от Vook
Может с помощью полей это организовать?
Очень бы хотелось посмотреть одним глазом
Осчастливь собрата по несчастью

Fatty
fixo вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > задача для LISP

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

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