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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > И снова просьба по ЛИСПам!!!

И снова просьба по ЛИСПам!!!

Закрытая тема
Поиск в этой теме
Непрочитано 27.07.2005, 22:46 #1
И снова просьба по ЛИСПам!!!
Gostushev
 
проектирование КМ, КМД
 
Регистрация: 02.05.2005
Сообщений: 25

Коллеги и в первую очередь Лентяй!!!
Обрисовываю ситуацию - спецификации в акаде делаем самым "дедовским" способом - они есть набор линий и текста, причем текс для каждой ячейки таблицы свой. Можете меня ругать и опускать, но лучшей системы контроля за тем что делаешь не вижу. когда переправишь все цифирки в спецификации задумаешься что делаешь. Так вот, когда все строчки заполнены нужно посчитать скажем общую массу изделия, для этого нужно сложить все цифирки из столбца "масса всех детале". Процесс в принципе не сложный но иногда можно ошибиться, ошибка все равно вылазит когда составляешь выборку металла, и поэтому она неприятна. Вот бы прогу которая просила бы выделить какой то набор текстовых строчек, а потом бы суммировала цифры из каждой строчки друг с другом. И было бы вообще круто если текст можно было выделять одной рамкой за раз или щелкать по разным текстовым областям. Вот. Надеюсь понятно объяснил что хочу :-) Жду комментариев и предложений.
Просмотров: 3526
 
Непрочитано 27.07.2005, 23:18
#2
ZZZ

электрик
 
Регистрация: 11.03.2005
Киев
Сообщений: 157


Код:
[Выделить все]
;;;;;;Сумма значений текста
(defun c:CalcTXTVal(/ nab i)
  (print "Выберите текстовые объекты среди которых будет произведененна калькуляция")
  (setq	nab (ssget '((0 . "TEXT")))
	i   0)
  (while (/= (sslength nab) 0)
    (setq i (+ i
	       (atof (vl-string-subst
		       "."
		       ","
		       (cdr (assoc 1 (entget (ssname nab 0))))))))
    (ssdel (ssname nab 0) nab))
  (print (strcat "Сумма = " (rtos i 2 2)))
  (princ))
__________________
Когда под рукой нет ничего кроме молотка - всё вокруг кажется гвоздями...
Выбор правильного инструмента - залог успеха в любом деле.
ZZZ вне форума  
 
Непрочитано 27.07.2005, 23:49
#3
Лентяй

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


В первом приближении наваял сей код. Приду домой - додумаю дальше.
Код:
[Выделить все]
(defun C:tmass ( / val)
  (setq cmd (getvar "CMDECHO"))
  (setvar "CMDECHO" 0)
  (prompt "\n Selecl numbers to add: ")
  (ssget)
  (setq adoc (vla-get-ActiveDocument (vlax-get-acad-object))
	ass (vla-get-ActiveSelectionSet adoc)
	tm 0)
  (vlax-for txt ass
    (if (and (= (vla-get-objectname txt) "AcDbText")
	      (not (null (setq val (vla-get-TextString txt)))));and
      (setq tm (+ tm (atof val)))));vlax-for
  (princ (strcat "\nTotal Mass: " (rtos tm) " kg. "))
  (setvar "CMDECHO" cmd)
);end
Лентяй вне форума  
 
Непрочитано 28.07.2005, 11:59
#4
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,835
<phrase 1=


ИМХО
Всё-таки спецификации чертежа, в том числе и эту, надо делать программным путем. А не путем складывания указанных ТЕКСТов.
Alan вне форума  
 
Непрочитано 28.07.2005, 15:22
#5
EasyD


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


To >Gostushev

Я тут Вам скинул на емелю кой чё... Посмотрите на досуге, если поможет буду оч рад
EasyD вне форума  
 
Автор темы   Непрочитано 28.07.2005, 20:35
#6
Gostushev

проектирование КМ, КМД
 
Регистрация: 02.05.2005
Сообщений: 25


Всем спасибо за содействие, очень вам всем признателен. Если вам не сложно буду придумывать еще задачки :-)
Gostushev вне форума  
Закрытая тема
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > И снова просьба по ЛИСПам!!!

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