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

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

Возникла необходимость в суммировании большого количества чисел и забивать каждое число в формулу очень нудно и долго

Ответ
Поиск в этой теме
Непрочитано 10.06.2006, 16:52
Возникла необходимость в суммировании большого количества чисел и забивать каждое число в формулу очень нудно и долго
Макс Тал.
 
строитель
 
СПб.
Регистрация: 13.03.2005
Сообщений: 216

Кто поможет воплотить идею в реальность?
Нужен лисп.
Охото чтобы команда спрашивала
1. Выберите числа, которые необходимо сложить.
2.После выделения запрос на место размещения результата.
3. Вставка результата.
Возникла необходимость в суммировании большого количества чисел и забивать каждое число в формулу очень нудно и долго.
У меня есть лисп который прибавляет к выделенным числам величину, которую указываешь в командной строке при запросе.
Просмотров: 30356
 
Непрочитано 12.10.2006, 13:25
#41
ShaggyDoc

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


Насчет соблюдения правил VVA прав. Надо придерживаться стандарта Автокада.

Если пользователь введет "русскую" опцию при английской раскладке (вместо "Ч" - "X"), то получит сообщение об ошибке и повторное приглашение. А уж дело программиста обработать эту ситуацию.

Если у пользователя туго с клавиатурным вводом, он должен иметь возможность выбрать из контекстного меню. А уж дело программиста предусмотреть, чтобы контекстное меню автоматически дополнялось нужными опциями.

Предусматривать все варианты неправильной раскладки, да еще и ошибок при написании ("Чило", "Xicla") и т.п. не следует. Иначе программа никогда не будет написана.

А вот Выход лучше делать всегда (за исключением некоторых ситуаций) в качестве действия по умолчанию
"Укажите текст или [Число/Функция/Результат]< Выход>: "
ShaggyDoc вне форума  
 
Непрочитано 12.10.2006, 16:11
#42
Diman111

промышл проектант
 
Регистрация: 26.05.2005
Изовсехщелей
Сообщений: 323


В тему топика просьба - давно хотел найти но пока не нашел код реализующий следующий набор действий:
есть спецификация -
.............................|......Кол.......|..Масса..|
.............................|...ТР1.|.ТР2..|.............|

Двутавр...................158......259......236

т.е. есть ряды столбцов с массой и количеством
надо в итоге получить общий все каждого изделия ТР1 и ТР2.
путем выделения рамкой всего столца ТР1 - кол-во др рамкой всего столбца масса - в итоге имеем 2 массива которые надо перемножить и сложить.
НО
часть данных может содержать не число а "-" т.е. скажем уголок есть в тр1 а в тр2 его нет - следовательно стоит прочерк.
вот такая просьба
Diman111 вне форума  
 
Непрочитано 12.10.2006, 16:50
#43
Олег К.

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


Вот что значит неточно поставить вопрос! Исправляюсь:
(princ "\n Выберите текст для изменения: ")
(setq changeobj (entget (ssname (ssget "_:S" '((0 . "*TEXT"))) 0)) textlayer (cdr (assoc 8 changeobj)))
Можно ли избавиться от запроса “Select objects: ” именно в функции ssget ?

>> Лентяй.
Я конечно осознаю, что у ActiveX больше возможностей, но только еще начинаю разбираться в этих функциях (спасибо Н.Н. Полещуку и соавторам, их книги дошли (ощущение что действительно пешком) и до нашего города), хотя функции vla-get-lock не нашел ни в F1 ни в книгах. Как я понял, используется обычная vla-get- к которой добавляется нужное свойство? Может есть у Вас ссылки на документы в сети или форумы где это объясняется подробнее? Благодарю за помощь, буду использовать.

>> VVA и ShaggyDoc.
По поводу русских и английских опций команд. Строчка (initget "Число Функция Результат Выход X A H D _X A H D X A H D") появилась именно из-за того, что пользователь может забыть или не знать (не будете спорить, что такое возможно?) какая раскладка включена. И что бы не беспокоить его сообщениями типа “у вас не та раскладка, переключитесь!” дана возможность ввода на английском, хотя пользователь об этом и не подозревает (короче это и есть “проверка” на ошибочный ввод) С другой стороны, у меня почти весь acad.pgp дополнен русскими вариантами альясов “line” - “L” - “Д” и т.п., так что я посчитал этот вариант полезным.

Цитата:
Если у пользователя туго с клавиатурным вводом, он должен иметь возможность выбрать из контекстного меню. А уж дело программиста предусмотреть, чтобы контекстное меню автоматически дополнялось нужными опциями.
Вот как раз для контекстного ввода и даны в строке запроса (entsel "\n Укажите текст или [ Число / Функция / Результат / Выход]: ") опции в [ ] и через дробь. Далее возникают некоторые сложности: в ACAD2002 по правому клику вызывается контекстное меню с указанными опциями, в ACAD2006 правый клик игнорируется, но при включенном динамическом вводе около курсора висит текст запроса со значком (вроде как раскрывающийся список) при нажатии клавиши Win он раскрывается и доступны опции.
У меня на компе его раскрыть не получается, думаю из-за настройки открытия папок и документов по одному клику и скрывающейся панели Windows.
В связи с этим два вопроса:
1. Как в функции entsel сделать опции доступными сразу (в getkword’e список опций дается уже раскрытый)?
2. В какой сист. переменной пишется включен или отключен динамический ввод?

Цитата:
А вот Выход лучше делать всегда (за исключением некоторых ситуаций) в качестве действия по умолчанию
"Укажите текст или [Число/Функция/Результат]< Выход>: "
В этом случае я подумал, что пусть лучше пользователь осознанно выберет “Выход”, чем просто щелкнет Enter’ом. Далее идет проверка на наличие результата и запрашивается подтверждение выхода.

Попробую приложить файл программы, гляньте у кого время есть.
[ATTACH]1160657385.rar[/ATTACH]
Надо же, получилось (ну новичек я еще в сети ).
С нетерпением жду ответов и готов к конструктивной критике.
Олег К. вне форума  
 
Непрочитано 12.10.2006, 17:42
#44
VVA

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


>Diman111
Пробуй
Код:
[Выделить все]
(defun C:SUMTXT ( / nab pt1 pt2 i col mass SUM h)
(vl-load-com)
(initget 1)
(setq pt1  (getpoint "\nУкажите рамкой столбец количество. Первая точка: "))
(initget 1)  
(setq pt2  (getcorner pt1 "\nВторая точка: "))
(setq nab (ssget "_C" pt1 pt2 '((0 . "*TEXT"))))  
(if nab
  (progn
  (setq col (mapcar ' vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex nab))))
	col (vl-sort col '(lambda(x y)
	       (> (cadr (vlax-safearray->list (vlax-variant-value (vla-get-InsertionPoint x))))
	       (cadr (vlax-safearray->list (vlax-variant-value (vla-get-InsertionPoint y))))))))
  ));_if
(initget 1)
(setq pt1  (getpoint "\nУкажите рамкой столбец МАССА. Первая точка: "))
(initget 1)  
(setq pt2  (getcorner pt1 "\nВторая точка: "))
(setq nab nil nab (ssget "_C" pt1 pt2 '((0 . "*TEXT"))))  
(if nab
(setq mass (mapcar ' vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex nab))))
	mass (vl-sort mass '(lambda(x y)
	       (> (cadr (vlax-safearray->list (vlax-variant-value (vla-get-InsertionPoint x))))
	       (cadr (vlax-safearray->list (vlax-variant-value (vla-get-InsertionPoint y))))))))
  );_if
(if (and col mass)
  (if (= (length col)(length mass))
    (progn
      (setq i 0 SUM 0)
      (foreach item col
	(princ "\nCol=")(princ (atof(vla-get-TextString item)))
	(princ " Mas=")(princ (atof(vla-get-TextString (nth i mass))))
	(setq SUM (+ SUM (* (atof(vla-get-TextString item))
			    (atof(vla-get-TextString (nth i mass)))))
	      i (1+ i)))
        (initget 1)
        (setq pt1 (getpoint "\nТочка отрисовки текста: "))
        (if (zerop (cdr (assoc 40 (tblsearch "STYLE" (getvar "TEXTSTYLE")))))
        (COMMAND "_TEXT" pt1 (vla-get-Height (car col)) "0" (rtos SUM 2 3)) ;_ нулевая высота текста Будет запрос высоты
        (COMMAND "_TEXT" pt1 "0" (rtos SUM 2 3))  ;_ фиксированнная высота Запроса не будет
        );_end of if
      )
    (alert "Не совпадает кол-во текста в столбцах!") ))
(princ));_defun
Если данных нет, должно быть хоть что-то: "-", "нет" - любой текст.
Разделитель дробной части - точка, а не запятая (если нужно, можно подправить)
VVA вне форума  
 
Непрочитано 13.10.2006, 07:20
#45
Лентяй

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


Цитата:
Сообщение от Олег К.
>> Лентяй.
Я конечно осознаю, что у ActiveX больше возможностей, но только еще начинаю разбираться в этих функциях (спасибо Н.Н. Полещуку и соавторам, их книги дошли (ощущение что действительно пешком) и до нашего города),..
Тут, как всегда, главное нАчать. А когда раскусите все прелести - дальше само поцдет только так [sm200]
Цитата:
...хотя функции vla-get-lock не нашел ни в F1 ни в книгах. Как я понял, используется обычная vla-get- к которой добавляется нужное свойство? Может есть у Вас ссылки на документы в сети или форумы где это объясняется подробнее? Благодарю за помощь, буду использовать.
Вы поняли все правильно - это сокращенная форма записи выражения
Код:
[Выделить все]
 vlax-get-property object 'property_name
А объяснение имеется у того же Полещука - буквально на второй странице раздела ActiveX. Так что читайте мудрую книгу внимательно, и будет вам щастя. Успехов [sm804]
Лентяй вне форума  
 
Непрочитано 13.10.2006, 07:24
#46
ShaggyDoc

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


Цитата:
В этом случае я подумал, что пусть лучше пользователь осознанно выберет “Выход”, чем просто щелкнет Enter’ом. Далее идет проверка на наличие результата и запрашивается подтверждение выхода.
Вот в таких местах крепко думать надо. В стандартном интерфейсе, как правило, за редкими исключениями, пустой ввод ("просто щелкнет Enter'ом") приводит к завершению команды.

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

Возможно, в конкретном случае, выход нужен именно по опции, но тогда в командной строке должно быть отображено(в <Что будет при пустом вводе>), что же именно произойдет по умолчанию. Скорее всего это должна быть одна из популярных опций. Хотя самая популярная - как раз Выход.

И совсем не надо запрашивать дополнительное подтверждение выхода. Такая "мания величия" программ ("как, неужели Вы хотите меня покинуть") очень мешает в реальной работе.
ShaggyDoc вне форума  
 
Непрочитано 13.10.2006, 09:56
#47
VVA

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


Цитата:
(setq changeobj (entget (ssname (ssget "_:S" '((0 . "*TEXT"))) 0)) textlayer (cdr (assoc 8 changeobj)))
Можно ли избавиться от запроса “Select objects: ” именно в функции ssget ?
НЕТ
Цитата:
в ACAD2006 правый клик игнорируется
_options Закладка Пользовательские - настрой правый клик.
Цитата:
при нажатии клавиши Win он раскрывается и доступны опции
Раскрывается при нажатии "стрелки вниз"
Цитата:
В этом случае я подумал, что пусть лучше пользователь осознанно выберет “Выход”, чем просто щелкнет Enter’ом. Далее идет проверка на наличие результата и запрашивается подтверждение выхода
Для ф-ции entsel можно отделить мух и котлеты (промах и нажатие ENTER) Ниже пример, выход по нажатию ENTER.
Обрати внимание, что ((null oneobj) стоит выше ((listp oneobj) в cond, т.к. nil тоже список.
Код:
[Выделить все]
(setq next t)
(while next
  (initget "Число Функция Результат Выход X A H D _X A H D X A H D")
  (setq oneobj (entsel "\n Укажите текст или [ Число / Функция / Результат / Выход] <Выход>: "))
 (cond
   ((member oneobj '("Число" "X"))
    (alert "\nВы выбрали опцию Число"))
   ((member oneobj '("Функция" "A"))
    (alert "\nВы выбрали опцию Функция"))
   ((member oneobj '("Результат" "H"))
    (alert "\nВы выбрали опцию Результат"))
   ((member oneobj '("Выход" "D"))
    (alert "\nВы выбрали опцию Выход"))
   ((null oneobj) ;_Промахнулся или нажал ENTER?
    (setq ern (getvar "ERRNO"))
    (cond  ((= ern 7) ;;;Пустой выбор
	    (alert "Вы промахнулись\nНичего не выбрано"))
           ((= ern 52) ;;;Клавиша Ввод(выход)
	    (alert "Вы нажали ENTER\nДо свидания")(setq next nil)) 
	   (t (alert (strcat  "Номер ошибки ERRNO=" (itoa ern))))
	   )
    )
   ((listp oneobj)
    (alert (strcat "\nВы выбрали " (cdr(assoc 0 (entget (car oneobj)))))))

   (t nil)
   ))
Цитата:
Может есть у Вас ссылки на документы в сети или форумы где это объясняется подробнее? Благодарю за помощь, буду использовать.
http://www.jtbworld.com/lisp/layer-state.htm
http://www.menziengineering.ch/Downloads/Download.htm
http://www.arcada.com.ua/forum/viewf...c4e108effc725f
Там много всего вкусного

Последний раз редактировалось VVA, 19.09.2015 в 22:51.
VVA вне форума  
 
Непрочитано 13.10.2006, 10:04
#48
Diman111

промышл проектант
 
Регистрация: 26.05.2005
Изовсехщелей
Сообщений: 323


>VVA
Спасибо большое ))
с разделителями разберемся
Diman111 вне форума  
 
Непрочитано 13.10.2006, 11:38
#49
Олег К.

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


>> ShaggyDoc.
Цитата:
Вот в таких местах крепко думать надо. В стандартном интерфейсе, как правило, за редкими исключениями, пустой ввод ("просто щелкнет Enter'ом") приводит к завершению команды.
Это Вы про какой стандартный интерфейс: AutoCAD’a или RuCAD’a ? Если автокадовский, то взять хотя бы команды LINE и COPI – в первом запросе не написано, что они сделают при пустом вводе, но ведь делают!!

Цитата:
Если у вас выход по опции, то непонятно, глядя на командную строку, к чему же приведет пустой ввод (в текст программы я не заглядываю).
Возможно, в конкретном случае, выход нужен именно по опции, но тогда в командной строке должно быть отображено(в <Что будет при пустом вводе>), что же именно произойдет по умолчанию. Скорее всего это должна быть одна из популярных опций. Хотя самая популярная - как раз Выход.
Просто я взял за правило: если программа ничего не делает при пустом вводе – не писать <Действие при пустом вводе> (ну в самом деле, не писать же <Ничего>). В данном случае
(entsel "\n Укажите текст или [ Число / Функция / Результат / Выход]: ")
по нажатию ENTER или SPACE программа ничего не делает, просто будет повторен запрос.

Цитата:
И совсем не надо запрашивать дополнительное подтверждение выхода. Такая "мания величия" программ ("как, неужели Вы хотите меня покинуть") очень мешает в реальной работе.
А это не "мания величия". В какой-то момент пользователь хочет выйти из программы и набирает “Выход” или просто “В”, тогда :
- если проводились вычисления и есть результат – появится дополнительный запрос (getkword "\n Вы хотите выйти без сохранения результата вычислений? [Да / Нет] <Нет> :") ;
- если нет результата, либо он только что выведен на лист – выход без вопросов.
Мне кажется, так будет правильнее. В принципе, можно и не смотреть текст проги (лучше не смотрите, а то мне некуда помидоры складировать), достаточно запустить и погонять несколько раз. Наши “тетки” сразу поняли, что от них требуется в запросах.

>> ShaggyDoc и VVA.
Вот правда так и не решил: выносить опцию выхода на пустой ввод или нет "\n Укажите текст или [ Число / Функция / Результат ] <Выход>: "? Если выносить, то придется ставить анализ ERRNO, как рекомендует VVA.

Спасибо за ссылки, сижу изучаю :shock: . Чувствую себя мартышкой, изобретающей велосипед.
Олег К. вне форума  
 
Непрочитано 13.10.2006, 12:49
#50
ShaggyDoc

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


Цитата:
Это Вы про какой стандартный интерфейс: AutoCAD’a или RuCAD’a ? Если автокадовский, то взять хотя бы команды LINE и COPI – в первом запросе не написано, что они сделают при пустом вводе, но ведь делают!!
Так в Автокаде много ляпов встречается. В том числе неоднообразное оформление команд. Дисциплина трудовая у них слабовата...

Цитата:
Просто я взял за правило: если программа ничего не делает при пустом вводе – не писать <Действие при пустом вводе> (ну в самом деле, не писать же <Ничего>). В данном случае
(entsel "\n Укажите текст или [ Число / Функция / Результат / Выход]: ")
по нажатию ENTER или SPACE программа ничего не делает, просто будет повторен запрос.
Про то и речь, что плохое "правило" - возможность действия, причем стандартного есть, а не делается ничего. Пользователь-то не знает, что повторен запрос. Он думает, что почему-то ничего не происходит.
ShaggyDoc вне форума  
 
Непрочитано 13.10.2006, 14:54
#51
Олег К.

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


Ладно, критику осознал. Поставлю "Выход" на пустой ввод.
А как вы поступаете в таком случае, когда пустой ввод возможен но по нему ничего делаться не должно?
Можно конечно обрабатывать ERRNO (учесть не только Enter), но все равно ведь будет повторена строка запроса. Придется выдать пользователю сообщение "Недопустимый ввод", а то и расписать сообщения по каждой из ошибок. Ох-хо-хох. Был у меня такой опыт: составил програмку для подсчета длин объектов - заняла 25 строк с комментариями, поставил в нее обработку ошибок и Escape - в результате 111 строк. Вот и стал задумываться: когда это нужно, а когда - нет.

Кажись мы отклонились от темы, но надеюсь это простительно?
Олег К. вне форума  
 
Непрочитано 17.10.2006, 16:51
#52
water

инженер-проектировщик слаботочных систем
 
Регистрация: 01.07.2006
Сообщений: 16
<phrase 1=


может кто-нить поможет и мне с программкой? суть её в том, что бы в определённом порядке блоки расставлять. Если у знатоков программирования есть время и желание стучите icq 190103321. Заранее благодарна
water вне форума  
 
Непрочитано 17.10.2006, 16:57 Насмешила
#53
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,976


Цитата:
Сообщение от water
может кто-нить поможет и мне с программкой? суть её в том, что бы в определённом порядке блоки расставлять. Если у знатоков программирования есть время и желание стучите icq 190103321. Заранее благодарна
Сейчас все знатоки ЛИСПА кинутся вам помогать.
Отключайте сразу АСЬКУ, а то комп от перегрузки сломается.
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Непрочитано 17.10.2006, 17:04
#54
Кулик Алексей aka kpblc
Moderator

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


Спробуй, уже давно я его не проверял.
Код:
[Выделить все]
;|=============================================================================
*    Функция расстановки блоков по "матрице".
*    Параметры вызова:
*	delta	- шаг в единицах чертежа между блоками (одинаковый по x и по y)
*	max_col	- максимальное количество колонок в создаваемой матрице
*    Примеры вызова:
(_kpblc-block-replacer 10 10)	; сделать матрицу с шагом 10 мм, не более 10
				; блоков в строке
(_kpblc-block-replacer 100 10)	; шаг 100, не больше 10 блоков в строке.
=============================================================================|;
(defun _kpblc-block-replacer (delta      max_col	  /	     item
			    counter    row	  col	     temp_ins_point
			    )
  (setq	selset	(ssget '((0 . "INSERT")))
	counter	0
	row	0
	col	0
	) ;_ end of setq
  (repeat (sslength selset)
    (setq item		 (ssname selset counter)
	  counter	 (1+ counter)
	  temp_ins_point (list
			   (atof (rtos (* delta col)))
			   (atof (rtos (* delta row)))
			   0.0
			   ) ;_ end of list
	  col		 (1+ col)
	  ) ;_ end of setq
    (if	(> col max_col)
      (setq col	0
	    row	(1+ row)
	    ) ;_ end of setq
      ) ;_ end of if
    ;;(vla-put-insertionpoint (vlax-ename->vla-object item) temp_ins_point)
    (_kpblc-ent-modify-autoregen item 10 temp_ins_point t)
    ) ;_ end of repeat
  ) ;_ end of defun

;|=============================================================================
*    Функция модификации указанного бита примитива
*    Параметры вызова:
*	entity	- примитив, полученный через (entsel), (entlast) etc
*	bit	- dxf-код, значение которого надо установить
*	value	- новое значение
*	regen	- выполнять или нет регенерацию примитива сразу. t/ nil
*    Примеры вызова:
(_kpblc-ent-modify (entlast) 8 "0" t)	; перенести последний примитив на слой 0
(_kpblc-ent-modify (entsel) 62 10 nil)	; установить выбранному примитиву цвет 10
*    Возвращаемое значение:
*	примитив с модифицированным dxf-списком. Примитив перерисовывается в
* зависимости от значения ключа ext_regen
=============================================================================|;
(defun _kpblc-ent-modify-autoregen (ent	       bit	  value	     ext_regen
				    /	       ent_list	  old_dxf    new_dxf
				    layer_dxf70
				    )
  (setq ent (_kpblc-conv-ent-to-ename ent))
  (if (not
	(and
	  (or
	    (= (strcase (cdr (assoc 0 (entget ent))) nil) "STYLE")
	    (= (strcase (cdr (assoc 0 (entget ent))) nil) "DIMSTYLE")
	    (= (strcase (cdr (assoc 0 (entget ent))) nil) "LAYER")
	    ) ;_ end of or 
	  (= bit 100)
	  ) ;_ end of and 
	) ;_ end of not 
    (progn
      (setq ent_list (entget ent)
	    new_dxf  (cons bit
			   (if (and (= bit 62) (= (type value) 'str))
			     (if (= (strcase value) "BYLAYER")
			       256
			       0
			       ) ;_ end of if 
			     value
			     ) ;_ end of if 
			   ) ;_ end of cons 
	    ) ;_ end of setq 
      (if (not (equal new_dxf (setq old_dxf (assoc bit ent_list))))
	(progn
	  (entmod (if old_dxf
		    (subst new_dxf old_dxf ent_list)
		    (append ent_list (list new_dxf))
		    ) ;_ end of if 
		  ) ;_ end of entmod
	  (if ent_regen
	    (entupd ent)
	    (redraw ent)
	    ) ;_ end of if
	  ) ;_ end of progn 
	) ;_ end of if 
      ) ;_ end of progn 
    ) ;_ end of if 
  ent
  ) ;_ end of defun


(defun c:kpblc-block-replacer (/ delta max_col)
  (setq	delta	(getdist "\nУкажите расстояние между блоками : <25> ")
	max_col	(getint "\nУкажите максимальное количество столбцов : <10> ")
	) ;_ end of setq
  (if (not delta)
    (setq delta 25)
    ) ;_ end of if
  (if (not max_col)
    (setq max_col 10)
    ) ;_ end of if
  (_kpblc-block-replacer delta max_col)
  ) ;_ end of defun
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 17.10.2006, 17:09 Re: Насмешила
#55
water

инженер-проектировщик слаботочных систем
 
Регистрация: 01.07.2006
Сообщений: 16
<phrase 1=


Цитата:
Сообщение от DEM
Цитата:
Сообщение от water
может кто-нить поможет и мне с программкой? суть её в том, что бы в определённом порядке блоки расставлять. Если у знатоков программирования есть время и желание стучите icq 190103321. Заранее благодарна
Сейчас все знатоки ЛИСПА кинутся вам помогать.
Отключайте сразу АСЬКУ, а то комп от перегрузки сломается.
понимаю, что не все, но вруг кто-нибудь поможет, на свете много людей ...., а аська у меня спецом для общения по вопросам работы )
water вне форума  
 
Непрочитано 17.10.2006, 17:16
#56
water

инженер-проектировщик слаботочных систем
 
Регистрация: 01.07.2006
Сообщений: 16
<phrase 1=


создание матрицы не совсем подходит, хочу, что б блоки рассавлялись в соответствии с размерами конктного помещения
water вне форума  
 
Непрочитано 17.10.2006, 17:31
#57
Кулик Алексей aka kpblc
Moderator

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


water, я все понимаю, но телепат аппликайшн я снес вместе со старой машиной. Какая была задача - такое и было решение. Блоки "в определенном порядке", да еще и внутри помещений и ADT не расставляет. И потом, что значит "в определенном порядке"? Кто и как определяет этот порядок?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 17.10.2006, 21:51
#58
Лентяй

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


Цитата:
Сообщение от kpblc
water, я все понимаю, но телепат аппликайшн я снес вместе со старой машиной. Какая была задача - такое и было решение. Блоки "в определенном порядке", да еще и внутри помещений и ADT не расставляет. И потом, что значит "в определенном порядке"? Кто и как определяет этот порядок?
Начало программы должно быть таким:
Код:
[Выделить все]
(defun C:Bloki_marsh_po_mestam ( )
Лентяй вне форума  
 
Непрочитано 17.10.2006, 22:25
#59
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,976


Код:
[Выделить все]
(defun C:Bloki_marsh_po_mestam ( )
[/quote]
Уау Лентяй ентот код надо вписывать в АНАЛЫ AutoLispa
Мне до такого щагать и шагать
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Непрочитано 18.10.2006, 01:11
#60
Лентяй

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


Цитата:
Сообщение от DEM
Уау Лентяй ентот код надо вписывать в АНАЛЫ AutoLispa
Мне до такого щагать и шагать
DEM, в АНАЛЫ можно, разве что, запердолить. А вписать можно только в АННАЛЫ.
Лентяй вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Возникла необходимость в суммировании большого количества чисел и забивать каждое число в формулу очень нудно и долго

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

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