Jump to content

определение общей длины нескольких отрезков


Recommended Posts

Возможно вопрос детский, но нигде не могу найти функции определение общей длины нескольких отрезков. Ну, то есть, если в Автокаде мне необходимо узнать общую длину скажем 10-ти отрезков мне было достаточно их выделить нажать "свойства" и в свойствах отображалась общая (суммарная) длина этих 10-ти отрезков. Подскажите пож. реализовано ли что-то подобное в nanocad?

P.S. nanocad 5.1. Free

Edited by Аккорд
Link to comment
Share on other sites

насколько показывают эксперименты - нет. и дело не в антикварном нанокаде 5.1

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

вот загрузил я здоровенный чертеж. нажал "выбрать все". а там и линии, и кружочки, и размеры и черт лысый. и что я должен показать вместо длины?
вот для текста, например - что? кому-то понадобится длина бэйзлайна  - это допустим, выглядит логично. а как только это делается многострочный текст - это уже становится логично гораздо меньше. а то еще и кому-то захочется увидеть длину контура буквы (а если это тру-тайп - то еще и площадь)...

собственно, вопрос совершенно законный - и отчасти даже логичный. но... куммулятивные свойства - штука очень сильно неоднозначная. и, к слову сказать, небыстрая.
если речь идет о глобальном механизме, который аж прямо встроен - для него должны быть сформулированы понятные и адекватные правила. мы вполне можем высосать их из пальца - но едва ли это правильно.
вот для примера - только общая длина линий? а чего это! полилинии тоже надо учесть. а у полилиний есть дуговые сегменты - значит считаем и дуги... а раз дуги - то и окружности тоже не стоит обходить стороной.  а там в очереди стоят эллипсы со сплайнами, а также спирали и прочие кривые - а чем они хуже? а еще у меня трехмерка есть - там у каждого тела есть ребра... считаем? или как? и если считаем - то у цилинда считаем что - две длины окружности по торцам, или еще и боковинку?

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

а дальше объемы подойдут...

в общем, это я все к чему хорошего универсального решения - тут не видится. если я не прав - аппелирйуте, обсудим.
а для любой частной задачки... сосчитать длину кусочком скрипта - не фокус. единственный вопрос - а как сосчитать длину RAY\XLINE, которые бесконечны по определению :)

Link to comment
Share on other sites

Это все-таки антикварный нанокад 5.1. Не помню, в какой версии добавили. Но сейчас есть команды ОБЩДЛ и ОБЩПЛ.

  • Like 1
Link to comment
Share on other sites

Благодарю за ответы. Возможно я не разобрался, но тему с антикварной версией я не понял... Я решил попробовать поработать в nanocad, вошел на оф сайт увидел версии доступные для скачивания. Версий доступных для скачивания по сути 2: NANOCAD PLUS 20.0  и 

NANOCAD 5.1 . Рассудив что для двухмерного проектирования "на попробовать"  достаточно версии без "3D моделирование и зависимости" и скачал NANOCAD 5.1 . Я и предположить не мог что в разделе оф сайта могут быть устаревшие версии. Что я сделал не так? Нужно было качать NANOCAD PLUS 20.0 ?  По поводу ответа Lion007 : мне кажется Вы усложняете... В 90 % задач достаточно общей длины однотипных объектов (отрезок+ дуга или суммарная длина полилиний) либо же площади/периметра замкнутых объектов

Edited by Аккорд
Link to comment
Share on other sites

5 часов назад, Аккорд сказал:

Возможно я не разобрался, но тему с антикварной версией я не понял...

- nanoCAD 5.1 это бесплатная версия которая не обновлялась лет этак 6.

- nanoCAD 20 это современная платформа. чтобы сложилось впечатление о nanoCAD сегодняшнего дня надо смотреть ее. и да конечно она платная. все модули в т.ч. 3D моделирования опциональны и не обязательны к приобретению/использованию.

Link to comment
Share on other sites

В 08.05.2020 в 18:05, Аккорд сказал:

Возможно вопрос детский, но нигде не могу найти функции определение общей длины нескольких отрезков. Ну, то есть, если в Автокаде мне необходимо узнать общую длину скажем 10-ти отрезков мне было достаточно их выделить нажать "свойства" и в свойствах отображалась общая (суммарная) длина этих 10-ти отрезков. Подскажите пож. реализовано ли что-то подобное в nanocad?

P.S. nanocad 5.1. Free


В nanoCAD 5.1 ничего такого нет. Бесплатную версию, насколько я понимаю, давно никто не дорабатывает.

В nanoCAD 20.x есть соответствующий функционал в (Лента - Главная - Утилиты - Сведения), (Меню - Сервис - Сведения - Общая длина) или (Команда - CLENGTH, ОБЩДЛ).

P.S.
В nanoCAD 5.1, насколько я понимаю, подгрузить LISP вообще нельзя.

А так, вот пример кода;

;|

TLEN.LSP - Total LENgth of selected objects
(c) 1998 Tee Square Graphics

|;

(defun C:TLEN (/ ss tl n ent itm obj l)
  (setq ss (ssget)
        tl 0
        n (1- (sslength ss)))
  (while (>= n 0)
    (setq ent (entget (setq itm (ssname ss n)))
          obj (cdr (assoc 0 ent))
          l (cond
              ((= obj "LINE")
                (distance (cdr (assoc 10 ent))(cdr (assoc 11 ent))))
              ((= obj "ARC")
                (* (cdr (assoc 40 ent))
                   (if (minusp (setq l (- (cdr (assoc 51 ent))
                                          (cdr (assoc 50 ent)))))
                     (+ pi pi l) l)))
              ((or (= obj "CIRCLE")(= obj "SPLINE")(= obj "POLYLINE")
                   (= obj "LWPOLYLINE")(= obj "ELLIPSE"))
                (command "_.area" "_o" itm)
                (getvar "perimeter"))
              (T 0))
          tl (+ tl l)
          n (1- n)))
  (alert (strcat "Total length of selected objects is " (rtos tl)))
  (princ)
)

 

Edited by A.Kudrjashov
  • Like 1
Link to comment
Share on other sites

В 14.05.2020 в 11:47, A.Kudrjashov сказал:

В nanoCAD 5.1, насколько я понимаю, подгрузить LISP вообще нельзя.

Можно. А не можете в Вашем коде перевести сообщения командной строки с непонятного языка на русский? Буду с удовольствием пользоваться и вспоминать Вас с благодарностью.

PS И хорошо бы добавить в код функцию отображения результата вычисления в лог, который вызывается клавишей F2.

Edited by ПГС-Проект
PS
Link to comment
Share on other sites

15 часов назад, ПГС-Проект сказал:

Можно. А не можете в Вашем коде перевести сообщения командной строки с непонятного языка на русский?


.... если я правильно понял.
TLEn_2.lsp
 

  • Like 1
  • Haha 1
Link to comment
Share on other sites

  • 2 years later...

Можно все-таки вывести результат вычисления общдл на экран без нажатия клавиши F2, при скрытой командной строке? Я пользуюсь только дин-вводом.

При выполнении команды общдл на долю секунды на экране появляется какое-то окошко, но оно быстро сворачивается и результат суммы отрезков можно увидеть только в командной строке. 

Link to comment
Share on other sites

Воспользуйтесь INQUIRE. Там выбираете периметр - Несколько объектови указываете ваши отрезки. Результат будет в окошке команды.

  • Like 3
Link to comment
Share on other sites

В 07.07.2022 в 14:11, User12345 сказал:

Можно все-таки вывести результат вычисления общдл на экран без нажатия клавиши F2

Наверное можно. Если, конечно, для вас не принципиально именно использование Lisp, а не пользоваться функционалом платформы.

Варианты:

 

 

Длина отрезков, полилиний и окружностей.dwg

  • Like 3
Link to comment
Share on other sites

Спасибо.

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

 

добавлено через 9 минут

MCAD,

В автокаде я пользовался lisp GeomProps и selsim, загружались они через arx, но в нанокаде к сожалению они не могут быть использованы, поэтому приходится пользоваться функционалом платформы. Было бы круто иметь аналогичные по работе  lisp в нанокаде

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Tell a friend

    Love Официальный форум компании Нанософт Разработка? Tell a friend!
×
×
  • Create New...