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

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

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

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

Кто поможет воплотить идею в реальность?
Нужен лисп.
Охото чтобы команда спрашивала
1. Выберите числа, которые необходимо сложить.
2.После выделения запрос на место размещения результата.
3. Вставка результата.
Возникла необходимость в суммировании большого количества чисел и забивать каждое число в формулу очень нудно и долго.
У меня есть лисп который прибавляет к выделенным числам величину, которую указываешь в командной строке при запросе.
Просмотров: 30497
 
Непрочитано 19.10.2006, 09:35
#61
water

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


Жаль, что так никто и не отозвался ((
water вне форума  
 
Непрочитано 19.10.2006, 09:39
#62
Кулик Алексей aka kpblc
Moderator

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


Почему же? А посты с 57 и дальше? Ты сама-то можешь сказать, чего тебе надо? Только не общими словами.
btw, сделать "одну большую красную кнопку" с надписью "чтоб было клево" тебе не удастся. Максимум - большая зеленая кнопка с надписью "тебе уже клево"
---
Добавлено: Поправил пост (обшибся с обращением).
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 19.10.2006, 10:44
#63
water

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


Ну, значит хочу:
1- расстановку датчиков в соответстии с НПБ
2- расстановку оросителей с разводкой трубопровода в соответствии с НПБ
3- .... большую шоколадку и больше оперативки в мой рабочий комп

зы: как уже говорила, есть недоработанные решения, сама ничерта в етом не понимаю, но знаю где работает некорректно
water вне форума  
 
Непрочитано 19.10.2006, 11:18
#64
Кулик Алексей aka kpblc
Moderator

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


Ыыыы... Что такое НПБ - лично я БМП. Могу обеспечить только п.3.1
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 19.10.2006, 11:42 Ха
#65
DEM

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


Ну если
water
Ну, значит хочу:
Цитата:
1- расстановку датчиков в соответстии с НПБ
2- расстановку оросителей с разводкой трубопровода в соответствии с НПБ
то вам нужно СПМ по НПБ
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Непрочитано 19.10.2006, 11:53
#66
water

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


НПБ- нормы пожарной безопасности, типа датчик от стены на 4,5 м , между датчиками 9 м , при высоте помещения 3,5 м, одним оросителем защищается площать 12 м2

я бы на вашем месте , уважаемый kpblc, с такое лёгкостью не утверждала по поводу пункта 3.1 , по почте шоколадки не всегда доходят
water вне форума  
 
Непрочитано 19.10.2006, 19:43
#67
Лентяй

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


[quote="water"]НПБ- нормы пожарной безопасности, типа датчик от стены на 4,5 м , между датчиками 9 м , при высоте помещения 3,5 м, одним оросителем защищается площать 12 м2[quote]
Короче, девушка хочут заполучить решение системы УЛП средствами ЛИСП, которые, будучи интегрированы в САПР, эмулируются в большую розовую кнопку... Господа, тута ЛНП Канторович не пробегал?
Лентяй вне форума  
 
Непрочитано 19.10.2006, 23:27
#68
Apelsinov

Проектировщик ВК. LISP-любитель.
 
Регистрация: 15.12.2003
Москва
Сообщений: 1,189
<phrase 1=


Цитата:
Сообщение от water
НПБ- нормы пожарной безопасности, типа датчик от стены на 4,5 м , между датчиками 9 м , при высоте помещения 3,5 м, одним оросителем защищается площать 12 м2
На самом деле девушка подняла хорошую тему, вполне возможно, что расстановку спринклерных оросителей в плане по помещениям можно попытаться автоматизировать. Жаль только не смогла толком объяснить что же конкретно она хочет (ну с шоколадкой вроде разобрались).
water, попробуйте объяснить людям что конкретно вы хотите, подробно, с примерами и цитатами из нормативов, тогда, вас наверняка поймут и помогут. А еще интересно о каких имеющихся у Вас наработанных решениях идет речь, и что в них вас не устраивает.
А тему лучше переместить отсюда в отдельную, а то бардак.
__________________
apel.fas
Apelsinov вне форума  
 
Непрочитано 20.10.2006, 09:51
#69
water

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


Я не знаю как перевести тему в отдельную.
Попробую объяснить подробнее хотя бы по одному пункту что-же я хочу. Есть план помещений в нужном масштабе. Есть определённого вида блоки я рамкой выделяю площадь помещения и на этой площади блоки ставятся равномерно в нужном количестве. Блоки разные и требования к их расстановке тоже разные. Иногда есть необходимость ставить блоки попарно. Если кто-то может помочь подробно расскажу что и как должно стоять
water вне форума  
 
Непрочитано 20.10.2006, 11:35
#70
Олег К.

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


>> water
В самом деле, вопрос поставлен интересный, попробуйте создать новую тему (в низу страницы есть кнопочка "Новая тема").

Цитата:
Если кто-то может помочь подробно расскажу что и как должно стоять
Вы, главное, объясните подробно, что нужно - больше народа думать будет. А там уж кто додумается, тот и поможет. Кстати, уточните: вам нужна расстановка только блоков датчиков/оросителей или еще и разводка электро/водопроводной сети (в начале вопрос был о сети).
Пожалуйста, напишите какими нормативами Вы пользуетесь, да и "наработанные решения" неплохо бы сюда закинуть, если объем позволяет.
Олег К. вне форума  
 
Непрочитано 20.10.2006, 13:06
#71
water

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


см. тему "В помощь проектировщикам ОПС"
water вне форума  
 
Непрочитано 17.07.2009, 15:15
#72
Juss_00

Инженер
 
Регистрация: 11.12.2007
Москва
Сообщений: 295


Удалил
__________________
Live as though tomorrow you will die,
Study as though you will live eternally.

Последний раз редактировалось Juss_00, 20.07.2009 в 11:19.
Juss_00 вне форума  
 
Непрочитано 20.07.2009, 19:35
#73
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


INCDEC - http://dwg.ru/dnl/3716
gomer вне форума  
 
Непрочитано 20.12.2016, 21:33
#74
СерJант

Инженер
 
Регистрация: 12.10.2007
Россия, Энгельс
Сообщений: 40


Цитата:
Сообщение от _Andre_ Посмотреть сообщение
Вот так тогда

Код:
[Выделить все]
(defun ed_wrdcount (/ descript fnam txtstr txtspace lst lstp tvst)
  (vl-load-com)
  (if
    (setq lst (ssget (list '(0 . "TEXT") (cons 410 (getvar "ctab")))))
     (progn
       (setq txtspace (vla-objectidtoobject
			(vla-get-activedocument (vlax-get-acad-object))
			(vla-get-ownerid
			  (vlax-ename->vla-object (ssname lst 0))
			) ;_ end of vla-get-ownerid 
		      ) ;_ end of vla-ObjectIDToObject 
       ) ;_ end of setq 
       (setq lst (mapcar '(lambda (x) (cdr (assoc 1 (entget x))))
			 (vl-remove-if
			   'listp
			   (mapcar 'cadr
				   (ssnamex lst)
			   ) ;_ end of mapcar 
			 ) ;_ end of vl-remove-if 
		 ) ;_ end of mapcar 
       ) ;_ end of setq 

       (foreach	i lst
	 (if (not (assoc i lstp))
	   (setq lstp
		  (cons
		    (list i
			  (length
			    (vl-remove-if-not
			      '(lambda (x) (= i x))
			      lst
			    ) ;_ end of vl-remove-if-not 
			  ) ;_ end of length 
		    ) ;_ end of list 
		    lstp
		  ) ;_ end of cons 
	   ) ;_ end of setq 
	 ) ;_ end of if 
       ) ;_ end of foreach 
       (setq txtstr
	      (apply
		'strcat
		(mapcar
		  '(lambda (x)
		     (strcat (car x) " - " (itoa (cadr x))  "\\P")
		   )
		  (vl-sort lstp '(lambda (y1 y2) (> (car y1) (car y2))))
		) ;_ end of mapcar 
	      ) ;_ end of apply 
       ) ;_ end of setq 
       (if
	 (setq tvst (getpoint "\nSpecify start point of text:"))
	  (vla-addmtext txtspace (vlax-3d-point tvst) 10000 txtstr)
       ) ;_ end of if 
     ) ;_ end of progn 
  ) ;_ end of if 
  (princ)
)
Все равно сортирует не корректно
например:
Кр40 - 1
Кр4 - 1
Кр39 - 1
***
Кр32 - 1
Кр31 - 1
Кр30 - 1
Кр3 - 1
Кр29 - 1
Кр28 - 1
***
Кр21 - 1
Кр20 - 1
Кр2 - 1
Кр19 - 1
Кр18 - 1
***
Кр12 - 1
Кр11 - 1
Кр10 - 1
Кр1 - 1

можно как то это исправить?
СерJант вне форума  
 
Непрочитано 20.12.2016, 22:49
#75
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,035


так и в любом другом языке отсортирует аналогично) Хотите корректно - либо выравнивайте разрядность (к примеру, вместо Кр4 формируйте Кр04), либо по другому храните данные - отдельно строки и числа
Сергей812 вне форума  
 
Непрочитано 21.12.2016, 01:42
#76
Кулик Алексей aka kpblc
Moderator

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


Есть еще как минимум три варианта:
- если префикс один и тот же, написать свой лиспик
- если префикс может отличаться, то писать свой парсер
- найти (например, на theswamp.org) готовый код (кажется, от Lee Mac)
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 21.12.2016, 14:04
1 | #77
VVA

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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
найти (например, на theswamp.org) готовый код (кажется, от Lee Mac)
Здесь http://www.theswamp.org/index.php?topic=16564.0 и здесь http://www.cadtutor.net/forum/showth...nge-list/page2


Цитата:
Сообщение от СерJант Посмотреть сообщение
можно как то это исправить?
Так
Код:
[Выделить все]
(defun ed_wrdcount (/ descript fnam txtstr txtspace lst lstp tvst)
  (vl-load-com)
  (if
    (setq lst (ssget (list '(0 . "TEXT") (cons 410 (getvar "ctab")))))
     (progn
       (setq txtspace (vla-objectidtoobject
			(vla-get-activedocument (vlax-get-acad-object))
			(vla-get-ownerid
			  (vlax-ename->vla-object (ssname lst 0))
			) ;_ end of vla-get-ownerid 
		      ) ;_ end of vla-ObjectIDToObject 
       ) ;_ end of setq 
       (setq lst (mapcar '(lambda (x) (cdr (assoc 1 (entget x))))
			 (vl-remove-if
			   'listp
			   (mapcar 'cadr
				   (ssnamex lst)
			   ) ;_ end of mapcar 
			 ) ;_ end of vl-remove-if 
		 ) ;_ end of mapcar 
       ) ;_ end of setq 
       (setq lst (SortStringWithNumberAsNumber  lst nil))
       (foreach	i lst
	 (if (not (assoc i lstp))
	   (setq lstp
		  (cons
		    (list i
			  (length
			    (vl-remove-if-not
			      '(lambda (x) (= i x))
			      lst
			    ) ;_ end of vl-remove-if-not 
			  ) ;_ end of length 
		    ) ;_ end of list 
		    lstp
		  ) ;_ end of cons 
	   ) ;_ end of setq 
	 ) ;_ end of if 
       ) ;_ end of foreach 
       (setq txtstr
	      (apply
		'strcat
		(mapcar
		  '(lambda (x)
		     (strcat (car x) " - " (itoa (cadr x))  "\\P")
		   )
		 ;;; (vl-sort lstp '(lambda (y1 y2) (> (car y1) (car y2))))
		 (reverse lstp)
		) ;_ end of mapcar 
	      ) ;_ end of apply 
       ) ;_ end of setq 
       (if
	 (setq tvst (getpoint "\nSpecify start point of text:"))
	  (vla-addmtext txtspace (vlax-3d-point tvst) 10000 txtstr)
       ) ;_ end of if 
     ) ;_ end of progn 
  ) ;_ end of if 
  (princ)
)
;;Published http://www.theswamp.org/index.php?topic=16564.0
;;By VVA --  05.20.07 mods by CAB
;;Usage (SortStringWithNumberAsNumber '("A9" "A1" "A10" "B11" "B2" "B05") nil)
;;With ignore case (SortStringWithNumberAsNumber '("A9" "A1" "A10" "B11" "B2" "B05") t)
;;  CAB added Ignore Case Flag as an argument
;;Return ("A1" "A9" "A10" "B2" "B05" "B11")
;;;ListOfString - список строк
;;; IgnoreCase - t (игнорировать) или nil (нет) регистр символов
(defun SortStringWithNumberAsNumber (ListOfString IgnoreCase / NorStrs count)
;;;Function Normalize (add 0 befor number) number in string
;;; Count normalize symbols set in variable count
;;; CAB added count as an argument
  (defun NormalizeNumberInString (str count / ch i pat ret buf)
    (setq i   0
          pat '("0" "1" "2" "3" "4" "5" "6" "7" "8" "9")
          ret ""
    ) ;_ end of setq
    (while (/= (setq ch (substr str (setq i (1+ i)) 1)) "")
      (if (vl-position ch pat)
        (progn
          (setq buf ch) ;_ end of setq
          (while
            (vl-position (setq ch (substr str (setq i (1+ i)) 1)) pat)
             (setq buf (strcat buf ch))
          ) ;_ end of while
          (while (< (strlen buf) count) (setq buf (strcat "0" buf)))
          (setq ret (strcat ret buf))
        ) ;_ end of progn
      ) ;_ end of if
      (setq ret (strcat ret ch))
    ) ;_ end of while
    ret
  ) ;_ end of defun
  ;;-------------------------------------------------
  ;;  function to Count the longest number in string 
  ;;  CAB added to get the correct COUNT
  (defun getcount (lst / count pat)
    (setq count 0)
    (setq pat '("0" "1" "2" "3" "4" "5" "6" "7" "8" "9"))
    (mapcar
      '(lambda (str / i maxlen ch)
         (setq i 0 maxlen 0)
         (while (/= (setq ch (substr str (setq i (1+ i)) 1)) "")
           (if (vl-position ch pat) ; number
             (setq maxlen (1+ maxlen))
             (setq count  (max count maxlen) maxlen 0)
           )
         )
	 (setq count  (max count maxlen)) ;_<<< ADD 21.06.2007 by 
       )
      Lst
    )
    count
  )
  ;;===============================================
  (setq count   (GetCount ListOfString)
        NorStrs (mapcar '(lambda (x) (NormalizeNumberInString x count))
                        ListOfString)
  )
  (and IgnoreCase (setq NorStrs (mapcar 'strcase NorStrs)))
  (mapcar '(lambda (x) (nth x ListOfString)) (vl-sort-i NorStrs '<))
)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 21.12.2016, 18:27
#78
СерJант

Инженер
 
Регистрация: 12.10.2007
Россия, Энгельс
Сообщений: 40


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

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

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