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

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

Нужен LISP для суммы длин отрезков линни

Ответ
Поиск в этой теме
Непрочитано 26.02.2004, 10:13
Нужен LISP для суммы длин отрезков линни
ilka_t
 
Москва
Регистрация: 20.01.2004
Сообщений: 154

Подскажити где можно скачать или поделитись если у кого есть такое.

Полилиния не подходит т.к. эти отрезки разбросаны по всему чертежу, а надобы выбрав несколько линий узнать их общую длинну.
Просмотров: 140323
 
Непрочитано 19.06.2007, 18:22
#81
VVA

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


*** Удалено *** Повторение поста № 80
VVA вне форума  
 
Непрочитано 21.06.2007, 16:48
#82
Джек

Строительство
 
Регистрация: 03.09.2003
Нижний Новгород
Сообщений: 81
<phrase 1=


Всем привет!!!
Я вот пользуюсь программой который сделал автор Крыс. Спасибо ему огромное!!!!! 8)
Код:
[Выделить все]
(defun c:mlen2 (/ adoc selset layer_list init _kpblc-string-subst 
item sum_len)
  (vl-load-com)
  (setq  adoc  (vla-get-activedocument (vlax-get-acad-object))
  sum_len  0.0
  ) ;_ end of setq
  (vla-startundomark adoc)
  (if
    (setq ent (entsel "\nУкажите примитив, с которого брать слой 
<Выход> : "))
     (progn
       (setq selset (ssget (list (assoc 8 (entget (car ent))))))
       (while (and selset
       (> (sslength selset) 0)
       ) ;_ end of and
   (setq item (ssname selset 0))
   (ssdel item selset)
   (setq item    (vlax-ename->vla-object item)
         sum_len (+ sum_len
        (if (vlax-property-available-p item 'length)
          (vla-get-length item)
          (cond
            ((= (strcase (vla-get-objectname item) t) "acdbarc")
             (vla-get-arclength item)
             )
            ((= (strcase (vla-get-objectname item) t) "acbcircle")
             (* pi 2.0 (vla-get-radius item))
             )
            (t 0.0)
            ) ;_ end of cond
          ) ;_ end of if
        ) ;_ end of +
         ) ;_ end of setq
   ) ;_ end of while
       (setq sum_len_m (/ sum_len 1000.0)) ;; перевод мм в м
       (setq sum_len_m_10% (* 1.1 sum_len_m))
       (alert
	 (strcat "\n Общая длина примитивов " (rtos sum_len 2 2) " мм"
		 "\n или "(rtos sum_len_m 2 2)" м. "
                 "\n С учетом коэфф. запаса " (rtos sum_len_m_10% 2 2)" м."
		 		 ) ; end strcat
	 ); end alert
       ) ;_ end of progn
     ) ;_ end of if
  (vla-endundomark adoc)
  (princ)
  ) ;_ end of defun
Программа хорошая , но есть не большие замечания, не видно (забываешь) с какого слоя выбирается объекты.
Можно переделать программу чтоб она считала отрезки, полилинии , только ВКЛЮЧЕННЫХ слоев и выдавала список.
Например:
Слой 1 – общая длина ХХ
Слой 11 – общая длина ХХХ
Спасибо. Джек.
Джек вне форума  
 
Непрочитано 21.06.2007, 17:59
#83
VVA

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


>Джек Так чего остановился на mlen2? далее есть и mlen3 от Евгения Елпанова.
LISP. Подсчет длины линий на определенном слое

Последний раз редактировалось VVA, 02.07.2010 в 14:24.
VVA вне форума  
 
Непрочитано 21.06.2007, 18:48
#84
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,143


VVA

протестировал по полной
спасибо лисп работает так, как и хотелось,
:wink: :wink: :wink: :wink: :wink: :wink:

и за лисп с массивами отдельное спасибоспасибо
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 22.06.2007, 09:50
#85
Джек

Строительство
 
Регистрация: 03.09.2003
Нижний Новгород
Сообщений: 81
<phrase 1=


VVA спасибо за совет!
Но хотелось не много по другому!!!!!!
Хотелось чтоб программа считала отрезки, полилинии , только ВКЛЮЧЕННЫХ слоев и выдавала список.
:roll: Например:
Слой 1 – общая длина ХХ
Слой 11 – общая длина ХХХ
Спасибо. Джек.
Джек вне форума  
 
Непрочитано 06.08.2007, 14:52
#86
F5623


 
Регистрация: 06.08.2007
Тула
Сообщений: 1


А как сделать так, чтобы результаты выводились не только в командной строке, а еще и возле курсора?
F5623 вне форума  
 
Непрочитано 12.02.2008, 19:12
#87
МИНЗДРАВ

Oxypropane welder
 
Регистрация: 29.01.2008
Unix
Сообщений: 750


Что делать с этими кодами, что-бы суммарную длинну выделенных линий посчитать?
Нельзя, что-нибудь без программирования для пользователя выложить?

Последний раз редактировалось МИНЗДРАВ, 12.02.2008 в 19:34. Причина: Глупые умники достают!!!
МИНЗДРАВ вне форума  
 
Непрочитано 12.02.2008, 21:44
#88
Кулик Алексей aka kpblc
Moderator

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


Что делать: dwg.ru/art/8
Без программирования: нет. Ну или руками выписывать на бумажку длины и потом складывать.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 12.02.2008, 23:52
#89
Dym


 
Регистрация: 27.09.2005
Двинскъ
Сообщений: 586
Отправить сообщение для Dym с помощью Skype™


штучка от Александра Ривилиса
особо хороша в паре этим

Последний раз редактировалось Dym, 12.02.2008 в 23:59.
Dym вне форума  
 
Непрочитано 13.02.2008, 20:07
#90
МИНЗДРАВ

Oxypropane welder
 
Регистрация: 29.01.2008
Unix
Сообщений: 750


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
dwg.ru/art/8
Прочитал. Применил. Но ни один код не работает!
Что-то пишет там, шевелится. Но заветного числа, я не вижу (ничего похожего в наборе символов там нет).
Подскажите где это самое число видно должно быть?
Может оно где, в специальном укромном файле сохраняется?
МИНЗДРАВ вне форума  
 
Непрочитано 14.02.2008, 09:16
#91
VVA

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


Что применил-то? Советую #89
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 14.02.2008, 09:56
#92
kubik67

гл. констр.
 
Регистрация: 05.10.2007
Санкт-Петербург
Сообщений: 83


на сайте выложен хороший калькулятор - calcacad - он суммирует и длину линий, и многое другое. Поищи в даунлоаде, я постоянно им пользуюсь.
kubik67 вне форума  
 
Непрочитано 15.02.2008, 17:04
#93
Mikha

Highway Design
 
Регистрация: 16.09.2007
Tver
Сообщений: 27


>>МИНЗДРАВ
Посмотри здесь http://dwg.ru/dnl/2733
и здесь http://dwg.ru/dnl/486

Последний раз редактировалось Mikha, 15.02.2008 в 17:14.
Mikha вне форума  
 
Непрочитано 27.03.2008, 10:19
#94
VDeNisV


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


Всё хорошо, а вот можно ли сделать так, чтоб считал он примитивы в разных слоях отдельно и в Exel бы такую табличку отправлял (название файла, имя слоя, длинна примитивов). Если не сложно
VDeNisV вне форума  
 
Непрочитано 27.03.2008, 12:28
#95
VVA

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


А ты сходи по ссылке из #83 на последнюю страничку и почитай про mlen4 и mlen41
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 27.03.2008, 12:47
#96
VDeNisV


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


Спасибо огромное! То что нужно!
VDeNisV вне форума  
 
Непрочитано 21.04.2008, 03:37
#97
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,653


а можно сделать наоборот: имеется линия, откладываем нужный размер от ее начала, и она разрывается в этом месте???
skkkk вне форума  
 
Непрочитано 21.04.2008, 18:08
#98
МИНЗДРАВ

Oxypropane welder
 
Регистрация: 29.01.2008
Unix
Сообщений: 750


Цитата:
Сообщение от skkkk Посмотреть сообщение
имеется линия, откладываем нужный размер от ее начала, и она разрывается в этом месте???
Это легко достигается встроенными средствами AutoCada/
МИНЗДРАВ вне форума  
 
Непрочитано 26.04.2008, 06:29
#99
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,653


VVA, подскажите пожалуйста, как поменять в вашем лиспе с поста 62 точку на запятую в результате?

МИНЗДРАВ, А для непрямой полилинии есть возможность обойтись встроенными средствами??Расскажите пожалуйста)

VVA, и еще просьба....подскажите, как записать ответ в готовый текст (оверрайт вроде), предварительно приплюсовав к нему число....Заранее спасибо:-)

Последний раз редактировалось Кулик Алексей aka kpblc, 26.04.2008 в 14:31.
skkkk вне форума  
 
Непрочитано 28.04.2008, 10:07
#100
VVA

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


skkkk,
1. Добавил код в #62
3. Там такой возможности не предусматривалось. Быстро можно взять код с поста #366 И воспользоваться командой sumTE. Правда настройка разделителя (точка или запятая) будет в новой версии.
Цитата:
А для непрямой полилинии есть возможность обойтись встроенными средствами??Расскажите пожалуйста)
Команда разметь (_measure) откладывает расстояния вдоль оси выбранного примитива. Это может быть и "кривая" полилиния или не менее "кривой" сплайн
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Нужен LISP для суммы длин отрезков линни

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

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