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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Как сосчитать сумму цифр из отдельных мтекстов (и лисп для подсчета спецификаций)

Как сосчитать сумму цифр из отдельных мтекстов (и лисп для подсчета спецификаций)

Ответ
Поиск в этой теме
Непрочитано 26.01.2008, 13:15
Расчет спецификаций из мтекстов
Red Nova
 
ՃԱՐՏԱՐԱԳԵՏ, Տ.Գ.Թ.
 
Торонто
Регистрация: 23.10.2007
Сообщений: 1,974

Я не пользуюсь таблицами AutoCADа, черчу ячейки, в них по мтексту. Вопрос как оперативно соcчитать сумму цифр их содержимого. Слышал есть такой калькулятор, по моему calcacad называется, но на 2008-й Cad не идет. Что делать?

Добавлено.
Постепенно форум перешел в разработку липа для расчета спецификаций из мтекстов, и расчет суммы из мтекстов стал просто полезной добавкой к расчету спецификации. Последний вариант программы находится тут

Последний раз редактировалось Red Nova, 13.03.2009 в 10:11.
Просмотров: 154614
 
Непрочитано 19.02.2008, 10:38
#61
Олег К.

Инженер-теплотехник
 
Регистрация: 17.08.2006
Смоленск
Сообщений: 307


Что интересно, в панельке свойств объекта около длины, площади и тп есть значок калькулятора, т.е. это значение можно ввести в калькулятор при его вызове. А вот из калькулятора указать нужное значение уже не получается (AutoCAD 2006). Недоработочка, однако.
А вообще, я никогда не пользовался этим калькулятором, еще с 14-го привык вычисления вести в комстроке через функции лиспа.
Олег К. вне форума  
 
Автор темы   Непрочитано 19.02.2008, 14:50
#62
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, Տ.Գ.Թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,974
Отправить сообщение для Red Nova с помощью Skype™


Цитата:
Что интересно, в панельке свойств объекта около длины, площади и тп есть значок калькулятора, т.е. это значение можно ввести в калькулятор при его вызове. А вот из калькулятора указать нужное значение уже не получается
Вот и я об этом. А может к встроенному калькулятору можно довеску сделать?
Red Nova вне форума  
 
Непрочитано 19.02.2008, 15:51
#63
VVA

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


Для внешних калькуляторов можно значение посылать в clipboard.
Код:
[Выделить все]
;  ! ***************************************************************************
;; !                           copyToclipboard
;; ! ***************************************************************************
;; ! Function : Copy text to clipboard
;; ! Argument : 'str'     - String
;; ! Returns  : nil
;; ! ****************************************************************************
(defun copyToclipboard ( str / ieobj cbrd)
  (setq ieobj (vlax-get-or-create-object
                      "InternetExplorer.Application"
                      )
             )
 (vlax-invoke ieobj 'navigate2 "about:blank")
 (vlax-invoke
(setq cbrd (vlax-get (vlax-get (vlax-get ieobj 'document) 'parentwindow)
'clipboarddata
))
'setdata
"text"
str
)
(vlax-release-object ieobj)  
)
Использование:
(copyToclipboard "12345")
Ну и соответсвенно в калькуляторе вставить из буфера. Подводные камни могут быть в том, что использует внешнее приложение в качестве разделителя дробной и целой части (. или ,)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 20.02.2008, 23:04
#64
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, Տ.Գ.Թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,974
Отправить сообщение для Red Nova с помощью Skype™


VVA – Как я понял копируется в буфер то что вводишь между кавычками, скажем написал (copyToclipboard "12345"), копируется 12345, если написал (copyToclipboard "gameover"), копируется gameover . Только не понял где это применять? Ведь если вводить что-то в ком строку, но легче это дело сразу в калькулятор ввести. Может я чего не понял?
Меня интересует как ввести в буфер какой–ни–будь параметр объекта AutoCAD. Скажем длину отрезка, или что еще. При этом надо избежать того чтоб сначала эта цифра выходила в ком строке, а-то в таком случае и copy paste сойдет.
Если на счет лиспа я что-то не верно понял прошу уточнить.
Red Nova вне форума  
 
Непрочитано 21.02.2008, 09:33
#65
VVA

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


Ну так это и имелось ввиду. Есть куча лиспов, считывающих длинну, площадь выбранных примитивов. В конец к ним добавляешь copyToclipboard, и полученный результат копируется в буфер
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 21.02.2008, 11:23
#66
dextron3

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


VVA, вопрос не в тему конечно, есть ли такой лисп который округляет текстовые приметивы: 3.1459873 было, 3.15 стало, выбор рамочкой все числа,
размеры исходных текстовых приметивово остаются теже, меняется только
содержание...

буду благодарен
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 21.02.2008, 12:09
#67
VVA

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


Выбирай
http://www.caduser.ru/forum/index.ph...#message223183
http://dwg.ru/f/showthread.php?t=3114
http://dwg.ru/dnl/28
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 13.05.2011 в 16:27.
VVA вне форума  
 
Непрочитано 21.02.2008, 19:22
#68
dextron3

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


VVA, спасибо за первую ссылку, там твой лисп TOKR!
(примеч. автора: используется для округления чисел полученных
в НумЛук калькуляторе, так как встроенный округлитель
работает не совсем так как нужно округляет нормально,
но когда большое число разделяет пробелами,
что для автокада не допустимо пример: 123 282 000.00,
потом с этим числом математические операции не возможно произвести)
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 21.02.2008, 19:52
#69
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, Տ.Գ.Թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,974
Отправить сообщение для Red Nova с помощью Skype™


Tokr работает только для текса, VVA, может сделаешь вариант для мтекста, а еще лучше скрестить tokr + sumt, так, чтоб если после завершения выделения текстов нажать enter, то разницы никакой от стандартных действий sumt, но если вместо enter зайти в подменю, можно выбрать любое значение округления от 0 до 9. Да и еще, по умолчанию хорошо бы настроить sumt, чтоб он ответ выдавал округленным с одной цифрой после запятой. Смогём?
Red Nova вне форума  
 
Автор темы   Непрочитано 22.02.2008, 14:53
#70
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, Տ.Գ.Թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,974
Отправить сообщение для Red Nova с помощью Skype™


Пока VVA думает, у меня еще одна мысль возникла. У меня спецификации “нарисованы”. Часто в спецификациях надо бывает умножить все цифры одного столбца на все цифры второго, и ответ записать в третьем. Можно ли так модифицировать sumt, чтоб когда выбираешь два столбца с мтекстами, то цифры с одинаковой координатой У умножаются друг на друга, потом отмечаешь третий столбец с мтекстами, и результаты умножений вписываются в третий столб, при этом результат вычисления каждой строки вписывается в мтекст на против (у ответов та же координата Y что и у умножаемых цифр).
Red Nova вне форума  
 
Непрочитано 22.02.2008, 16:00
#71
VVA

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


1. По поводу tokr + sumt - думаю
2. По поводу хорошо бы настроить sumt, чтоб он ответ выдавал округленным с одной цифрой после запятой - уже все настроено. Просто мне нравятся 2 цифры.
Кто со мной не согласен, тот в коде из поста #55 ищет строчки, начинающиеся с
(operate_text ... [типа (operate_text '+ t 2) ], так вод 2 - это и есть количество знаков округления.
3. По поводу часто в спецификациях надо бывает умножить все цифры одного столбца на все цифры второго dextron3 такая мысль пришла раньше. Такой лисп есть, причешу - выложу
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 22.02.2008, 17:57
1 | #72
VVA

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


Короче так. Всех защитников - с праздником, полузащитников - с полупраздником, нападающих пропускаем. В честь столь знаменательного события, а так же по причине окончания заседания нашего дружного коллектива, находясь в приподнятом настроении, в здравом уме и твердой памяти выкладываю на растерзание сей опус. Измененные и дополненные команды:
SumTN - суммирование тестов в новый текст
SumTE - суммирование тестов в существующий текст
MulTN - умножение тестов в новый текст
MulTE - умножение тестов в существующий текст
TOKR - округление текста
MulTC - перемножение текстов столбцами
Из всего самой большой модификации подверглась TOKR. Округляет тексты, мтексты. Причем мтексты разбирает по параграфам, округляет, потом обратно собирает, снося при этом форматирование. Если в тексте есть поле, то оно перепишется его округленным значением. Я заложил возможность пропустать тексты с полями (игнорировать их), но пока не активизировал. Для активизации нужно найти в коде сточку
(text-round item okr t) и заменить на (text-round item okr nil)
*** Добавлено
MulTCv2 - перемножение текстов столбцами вариант 2 (одной рамкой)
sumTSet - установки округления и высоты новых текстов
*** Добавлено 03.03.2008
Изменения в сортировке+Beta-версия команды SPEC
*** Добавлено 04.03.2008
Чуть подправленная версия SPEC + GRPSP по ТЗ #110
*** Добавлено 04.03.2008 №2
Ноль в массе всех деталей краснеет
*** Добавлено 04.03.2008 №3
Если в длине последний символ М (русское или английское), регистр значения не имеет, то значение длины умножается на 1000
***Добавлено 05.03.2008
Можно обрабатывать 4 или 5 столбцов в команде SPEC, если текст начинается с цифры, то считается что это лист
Вложения
Тип файла: rar SumT.rar (244.2 Кб, 315 просмотров)
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 05.03.2008 в 16:54. Причина: Изменения
VVA вне форума  
 
Автор темы   Непрочитано 22.02.2008, 20:53
#73
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, Տ.Գ.Թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,974
Отправить сообщение для Red Nova с помощью Skype™


Присоединяюсь к поздравлениям. За лисп спасибо, оценил. Вот тока теперь постоянно с начала идет запрос по поводу округления, а я люблю когда попроще. Попробовал пошарить в лиспе, поменял в некоторых строчках значения на 1 (по аналогии с твоим советом), но напортачил и делу не помог.
Прошу выложить версию с прежним параметром округления по умолчанию для всех функций (у тебя ведь 2 было). А вопрос округления оставить только у TOKR (ну там уж точно без этого никак).
По поводу MulTC, тоже оценил, правда ты пошел другим путем, как я понимаю акцент тут стоит не на координате, а на очередности, в результате надо сначала отметить первый столб, потом второй, потом третий, если же акцент стоял на координате, то можно бы было отметить первые два столбца сразу (а может и все 3 сразу, если глубоко подумать). Мелочь конечно и в общем несущественно два действия или три, но как-то всегда думаешь о самом кратком пути.
В остальном все путем. Спасибо за труд.
Red Nova вне форума  
 
Непрочитано 22.02.2008, 22:55
#74
dextron3

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


VVA, с днем защитника отечества тебя!
Предложения:
1. Не пойму для чего при вставвке текста нужно вводить размер (высоту букв),
почему не берется высота суммирующихся текстов? (или это кому то особо важно)
по аналогии с TextMath калькулятором

2. Последние две команды сверхнеобходимые и нужные, вдвойне спасибо

3. Твои лисп приложения самые рабочие
__________________
инженер проектировшик с опттом программа авто гад образование высшие

Последний раз редактировалось dextron3, 22.02.2008 в 23:13.
dextron3 вне форума  
 
Автор темы   Непрочитано 22.02.2008, 23:20
#75
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, Տ.Գ.Թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,974
Отправить сообщение для Red Nova с помощью Skype™


Мне в голову пришла развратная мысль . А как на счет создать лисп для расчета всей спецификации разом. Сказано конечно чересчур глобально, и может показаться на первый взгляд необдуманно, но давайте поподробнее.
Возьмем к дискуссии расчет веса одного лишь элемента, пусть это будит листовая сталь. В строке спецификации данные о элементе записываются так (в отдельных мтекстах).

Марка -5х350
Длина 500
Количество 5
Вес ?
Вес всех ?

Вариант не по госту, но рассмотрим его.
Чему равен вес одной детали
5*350*500*(7.85E-6)=6,9кг
Вес всех деталей
6,9*5=34,3 (если не учесть неокругленный вариант то 34,5, но мы ведь люди точные)

И так задача сводится к тому чтоб взять и помножить из первого текста 5 и 350, помножить их потом на второй текст, ответ вписать в четвертый текст, потом помножить его на количество, и вписать в последний текст, при этом предполагается что тексты веса уже существуют, надо их переписать.
Таким образом надо игнорировать и х из первого текста (не знаю возможно ли это). Прибавлю что x может быть как русской так и английской буквой.
В общем идейка вполне на грани бредового , но если с этой задачей справится, то не далеко и с арматурой и с профилем разобраться.
Red Nova вне форума  
 
Непрочитано 23.02.2008, 07:42
#76
dextron3

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


Red Nova, лучше бы в ЕКСЕЛЕ все это сделать, но перенос в автокад почемуто не корректен, жду пока толковую программу выпустят для
правильного пренеоса в Екселл, существующие средства автокада не годятся,
не забывай там куча профилей а не только один лист

Сделай пока не придумали как я:

1. Создай спеку для всех толщин
2. Сделай последний дополнительный столбик с массой одного метра погонного или квадратного
3. И потом тупо перемножай, а в лайаутах эти цыфры не показывай как бы отрезай
4. я так для дерева сделал
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 23.02.2008, 10:49
#77
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, Տ.Գ.Թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,974
Отправить сообщение для Red Nova с помощью Skype™


dextron3, не очень понял, дай файл посмотреть. А про профили я пока молчу чтоб VVA не очень надоесть, про это я после скажу, тока ты ему пока не говори, секрет.
Red Nova вне форума  
 
Непрочитано 23.02.2008, 15:47
#78
dextron3

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


тут секрета нет вот скриншот обычные цыфры и математика с ними:
а профили считаю на металлургическом калькуляторе
Миниатюры
Нажмите на изображение для увеличения
Название: Snap1.jpg
Просмотров: 269
Размер:	73.5 Кб
ID:	3675  
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 23.02.2008, 17:10
#79
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, Տ.Գ.Թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,974
Отправить сообщение для Red Nova с помощью Skype™


dextron3, Понял, а не пробовал последний столбик в непечатаемый слой кинуть, так и думать как урезать на листе не надо.

Последний раз редактировалось Red Nova, 23.02.2008 в 17:22.
Red Nova вне форума  
 
Непрочитано 23.02.2008, 17:49
#80
dextron3

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


Red Nova, я в лайаутах черчу поэтому не видно данного столбца
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Как сосчитать сумму цифр из отдельных мтекстов (и лисп для подсчета спецификаций)

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сейсмозащита и сейсмоизоляция существующих, построенных зд. IANationalInformAgentstvo Прочее. Архитектура и строительство 216 20.01.2015 16:51
Предложения по расчетным моделям сооружений aldt Расчетные программы 8 06.07.2009 17:53
Мониторы LCD CRT Разное 94 17.06.2008 10:51
ЮМОР 2006 =) Perezz!! Разное 1122 04.01.2007 00:46