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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > арифметические действия между двумя текстовыми элементами

арифметические действия между двумя текстовыми элементами

Ответ
Поиск в этой теме
Непрочитано 08.02.2007, 14:20 #1
арифметические действия между двумя текстовыми элементами
RЯков
 
Регистрация: 04.05.2006
Сообщений: 37

Здравствуйте! Может кто из специалистов программирования подскажет, вообще, выполнима ли такая задача:?: : Щелкаю на иконку в автокаде, автокад у меня спрашивает: укажите числа, ( я щелкаю по нескольким цифрам т.е. по текстам с числами), автокад спрашивает, сложить, вычесть (или чего ни будь еще, типа логарифма ,но хотя бы сложить и вычесть), я выбираю сложить и энтер тогда за курсором появляется новый текст и я указываю точку куда его поставить
Просмотров: 16552
 
Непрочитано 08.02.2007, 14:53
#2
den001

Инженер по автоматизации (строительство)
 
Регистрация: 05.05.2006
Люберцы
Сообщений: 241


Задача, ессно, выполнима, но ее нужно выполнять
P.S. Сумматор есть готовый, на VBA, нужен?
den001 вне форума  
 
Непрочитано 08.02.2007, 19:21
#3
Тим

инженер
 
Регистрация: 27.04.2006
Ростов-на-Дону
Сообщений: 33


http://dwg.ru/forum/viewtopic.php?t=8291
Посмотри здесь, много чего интересного
[/url]
Тим вне форума  
 
Автор темы   Непрочитано 09.02.2007, 06:47
#4
RЯков


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


За ссылочку спасибо буду разбираться...
VBA наверное надо... ммм давно искал повод спросить, что это и как его загружать
Еще раз спасибо!
RЯков вне форума  
 
Автор темы   Непрочитано 09.02.2007, 08:17
#5
RЯков


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


По поводу ссылки: Все что там выложенно не совсем подходит...
Мне бы вот отнимать из одного текста другой получать новый текст .
Коллеги посмотрели на то как легко можно два текста прибавлять и выдвиннули свои условия ...[sm3302]
т.е чтоб за одну команду можно было сделать несколько действий : расстояние умножить на уклон отнять предыдущую отметку .... :?:
Напоминю, что все результаты этого вычисления должны на листе отображаться как текст и далее участвовать в следующих действиях...
Еще раз спасибо !
RЯков вне форума  
 
Автор темы   Непрочитано 09.02.2007, 08:30
#6
RЯков


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


Да вот еще! Клево было бы еслиб арифметическое действие вводилось с клавиатуры
RЯков вне форума  
 
Непрочитано 09.02.2007, 09:00
#7
Pastor

это только кличка
 
Регистрация: 22.10.2006
Москва
Сообщений: 252


Дело за малым.
Надо написать членораздельное ТЗ, максимально подробное, с примерами того, что складывается или вычитается и что получается в результате. Описать то, какие вопосы хотелось бы получать от AutoCAD и в какой форме удобнее было бы на них отвечать и т.д. и т.п.
Тогда может кто и поможет...
Pastor вне форума  
 
Непрочитано 09.02.2007, 09:02
#8
Кулик Алексей aka kpblc
Moderator

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


> Pastor: Отлично! Полностью поддерживаю!
P.S. Сейчас выяснится, что стандартного калькулятора хватит за глаза
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 09.02.2007, 09:07
#9
den001

Инженер по автоматизации (строительство)
 
Регистрация: 05.05.2006
Люберцы
Сообщений: 241


RЯков
Извольте

Про внедрение было здесь (в том числе), заодно может и сами предлагаемые вещи пригодятся
http://dwg.ru/dnl/1929 (в комментариях)
http://dwg.ru/dnl/1931

А еще, в последнее время, мне понравилось запускать макросы через Lisp-команды. Тем более, что с подводными камнями, вроде, разобрались. Об этом здесь: http://dwg.ru/forum/viewtopic.php?t=11677, совсем свеженькая тема. Ежели чего не так - пишите, всегда рад помочь.
[ATTACH]1171001265.rar[/ATTACH]
__________________
Number
TextDuplicate
FieldToText
den001 вне форума  
 
Непрочитано 09.02.2007, 09:11
#10
den001

Инженер по автоматизации (строительство)
 
Регистрация: 05.05.2006
Люберцы
Сообщений: 241


Крыс
Да нет, вещь-то, в обчем, предлагается нужная, только вот писать некогда. Да и мне она не особо нужна (поэтому, собственно, у меня этого и нет )
den001 вне форума  
 
Автор темы   Непрочитано 09.02.2007, 09:45
#11
RЯков


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


Не знаю куда более подробно и членораздельно хмм :shock:
И как тут может справиться калькулятор??:
Вернее с этим конечно сейчас и справляеться калькулятор, и хорошо когда "намлук"( чтоб текст скопировать и в текст вставить ), а то "некоторым" удобнее под рукой машинку иметь следовательно опечатки и ошибки...[sm1711 ]
А предлагается действительно калькулятор, который работает с текстовыми элементами ...
Еще раз попытаюсь объяснить :[sm2504]
Давлю на кнопочку-выберите число-выбираю, ставлю знак,-выберите число-выбираю,ставлю знак-ит.д. выбираю,ставлю знак, энтер,-укажите точку вставки-указываю
все счастливы
Спасибо!
RЯков вне форума  
 
Автор темы   Непрочитано 09.02.2007, 09:54
#12
RЯков


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


> Pastor: Отлично! Полностью поддерживаю!
P.S. Сейчас выяснится, что стандартного калькулятора хватит за глаза

Типа такой я не понял намека ... [sm1710]
RЯков вне форума  
 
Непрочитано 09.02.2007, 10:30
#13
Олег К.

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


Рискну-ка я выложить свой вариант решения этой задачи. Это одна из первых моих серьезных программ (изучаю ЛИСП не так уж давно), но работать должен в AutoCADe от 2000 до 2007. Если гуру ЛИСПа найдут время посмотреть код и прокомментировать (ну да, побить за непрофессионализм), буду рад.
Нужно загрузить прогу в КАД, запуск командой TextCalc.
[ATTACH]1171006212.rar[/ATTACH]

Забыл сказать, что выполняются только простые действия: +, -, * и /. Для вывода результата в текстовый объект необходимо наличае уже готового текста. Можно изменить существующий текст, либо создать новый (в этом случае прога просит указать текст-образец).
Олег К. вне форума  
 
Автор темы   Непрочитано 09.02.2007, 11:01
#14
RЯков


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


Вот это спасибо так спасибо ... не думал что она такая т.ть. здоровая !!получиться ...хмм , но все равно то что нужно!
Тока я наверное уберу те строчки, где прописано выбрать знак после запятой ты не против?
RЯков вне форума  
 
Непрочитано 09.02.2007, 13:56
#15
Олег К.

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


>> RЯков
Извини, что не ответил сразу. Не всегда нахожусь на своем рабочем месте (да и обед пропускать нельзя ).
Цитата:
Тока я наверное уберу те строчки, где прописано выбрать знак после запятой ты не против?
В смысле, количество цифр в числе после запятой? Да пожалуйста. Только посмотри внимательно, там дальше переменная textprecision используется при создании текста, вместо неё поставить нужную цифру. Эта конструкция используется в двух местах. И еще убери 3-ю и 9-ю строки в начальном комментарии :wink: .

Сейчас перечитал 5-й пост - "расстояние умножить на уклон отнять предыдущую отметку...". У программы есть такая особенность: если первым в тексте стоит не цифра, а любой другой символ (хоть пробел или "+"), число будет записано как ноль. Как-то не подумал, что будут складывать высотные отметки (там ведь "+" или "-" перед числом) и сделал по-простому.

А насчет объема кода - это да-а, сам удивился когда дописал. Впрочем, если убрать комментарии и проверки ошибок, можно уменьшить на 2/3. Но не стоит, не стоит.
Олег К. вне форума  
 
Автор темы   Непрочитано 09.02.2007, 15:12
#16
RЯков


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


Вот что называеться лучше день потерять потом зя пять минут долететь...
Клевая прога получилась
Тока вот как бы действия на клаву посадить, а не на контекстное меню.. тогда ваще высший пилотаж будет
RЯков вне форума  
 
Непрочитано 09.02.2007, 15:36
#17
Олег К.

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


Так ведь если отключить динамический ввод, все запросы выводятся в комстроку, соотв и ответы набираются с клавиатуры. У меня вообще динамич ввод всегда отключен, так и не привык к строке запроса возле курсора (поке еще этот курсор найдешь на экране). Зато комстрока высотой в 4 строчки - это считаю полезнее.
Олег К. вне форума  
 
Автор темы   Непрочитано 10.02.2007, 12:29
#18
RЯков


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


Ну это не суть..
Вчера и сегодня выполняю свою работу, за одно тестирую твой калькулятор ... сам конечнно такой сделать не смогу...
но ты просил критики- получай
( тока без обид я тока для пользы дела)
1) Алгоритм: команда, выбор текста или числа ... палец тянется нажать на знак- нажимаем (зачем подтверждение энтер?)
2)Следом открываеться диалоговое окно по умолчанию <выход>
хотя еслиб по умолчанию стояло число ,а ELSE текст ,а ELSE "укажите число- это не число" тогда КПД выросло бы на 30%
3)И далее не диалог, а IF энтер то результат изменить(ждет щелчка мышки по тексту), ELSER создает текст и уже тогда спрашивает укажите пример текста (т.е. один щелчек исправление два щелчка результат)
а ВООБЩЕ вчера правда за два часа на два раза(вылетал блок питания) работы выполнил которую мог бы делать наверное пол дня, но ошибок бы там было ... е мое
А ща попробую отключить, как ты говоришь, динамический ввод..
Хороших тебе выходных! еще раз спасибо!
RЯков вне форума  
 
Непрочитано 12.02.2007, 11:04
#19
Олег К.

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


... а техзадание все расширялось и усложнялось...

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

Теперь буду отвечать на критику, то есть оправдываться.
1. Выше я уже говорил, что не такой уж продвинутый программист, ковыряние с КАДом и программирование - это скорее хобби, помимо основной работы.
2. Зачем подтверждение энтер? Ну такова уж логика работы с КАДом. После набора команды, числа или еще чего в ответ на запрос - обязательно нажать Enter или Space. Тогда комп поймет, что ввод закончен и перйдет к обработке введенного значения (хотя что я объясняю, если ты работаешь в КАДе, то знать такое обязан).
3. Программа создавалась для юзеров, поэтому использовал наиболее простые функции, жесткое задание последовательности выполнения, постоянные проверки вводимых данных и подробные запросы с подсказками. Пока ни одна "обезьяна с гранатой" не смогла навернуть эту прогу.
4. Вначале прога была гораздо проще: выбирается действие, затем пользователь указывает тексты-числа с которыми это действие производится, и без лишних запросов. Показал у себя на работе продвинутым автокадчикам - "Нормально. А сделай так, чтобы знак действия менять в любой момент; и число с клавиатуры вводить; и вывод не только в комстроку, но и текст на чертеже менять/создавать новый; и чтобы количество цифр после запятой можно задавать было". Ну вот и результат. Вот и объем :shock: .
5. Алгоритм выполнения так и остался простым: выбираем текст с цифрой, автоматически запрашивается ввод действия; далее можно щелкать подряд на нужных текстах, а программа их все, скажем, просуммирует. Добавились только обвесы в виде опций.

Надеюсь, это прояснит, почему прога именно такая. Хотя не уверен, что стоило так расписывать, да ладно, пускай будет.
Олег К. вне форума  
 
Автор темы   Непрочитано 12.02.2007, 12:04
#20
RЯков


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


Пусть будет ! :P
RЯков вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > арифметические действия между двумя текстовыми элементами

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

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