Аккорд Posted May 8, 2020 Report Share Posted May 8, 2020 (edited) Возможно вопрос детский, но нигде не могу найти функции определение общей длины нескольких отрезков. Ну, то есть, если в Автокаде мне необходимо узнать общую длину скажем 10-ти отрезков мне было достаточно их выделить нажать "свойства" и в свойствах отображалась общая (суммарная) длина этих 10-ти отрезков. Подскажите пож. реализовано ли что-то подобное в nanocad? P.S. nanocad 5.1. Free Edited May 8, 2020 by Аккорд Quote Link to comment Share on other sites More sharing options...
Lion007 Posted May 9, 2020 Report Share Posted May 9, 2020 насколько показывают эксперименты - нет. и дело не в антикварном нанокаде 5.1 теоретически - ноль проблем. практически... я запросто могу представить, зачем это может понадобиться. но есть нюанс... есть пресловутый инспектор (который свойства). он показывает свойства выбранных объектов. если их несколько - то можно попробовать показать их куммулятивные свойства. вопрос только в том, как их сосчитать? объекты бывают сугубо разные, а свойство - одно на всех. вот загрузил я здоровенный чертеж. нажал "выбрать все". а там и линии, и кружочки, и размеры и черт лысый. и что я должен показать вместо длины? вот для текста, например - что? кому-то понадобится длина бэйзлайна - это допустим, выглядит логично. а как только это делается многострочный текст - это уже становится логично гораздо меньше. а то еще и кому-то захочется увидеть длину контура буквы (а если это тру-тайп - то еще и площадь)... собственно, вопрос совершенно законный - и отчасти даже логичный. но... куммулятивные свойства - штука очень сильно неоднозначная. и, к слову сказать, небыстрая. если речь идет о глобальном механизме, который аж прямо встроен - для него должны быть сформулированы понятные и адекватные правила. мы вполне можем высосать их из пальца - но едва ли это правильно. вот для примера - только общая длина линий? а чего это! полилинии тоже надо учесть. а у полилиний есть дуговые сегменты - значит считаем и дуги... а раз дуги - то и окружности тоже не стоит обходить стороной. а там в очереди стоят эллипсы со сплайнами, а также спирали и прочие кривые - а чем они хуже? а еще у меня трехмерка есть - там у каждого тела есть ребра... считаем? или как? и если считаем - то у цилинда считаем что - две длины окружности по торцам, или еще и боковинку? а кто-то захочет площадь... а ее как считать - только для замкнутых кривых, или для трех отдельных линий, которые треугольник образуют тоже? и для плоского замкнутого сплайна посчитать площадь не фокус, хоть и не быстро - а если он пространственный? а дальше объемы подойдут... в общем, это я все к чему : хорошего универсального решения - тут не видится. если я не прав - аппелирйуте, обсудим. а для любой частной задачки... сосчитать длину кусочком скрипта - не фокус. единственный вопрос - а как сосчитать длину RAY\XLINE, которые бесконечны по определению Quote Link to comment Share on other sites More sharing options...
yum Posted May 12, 2020 Report Share Posted May 12, 2020 Это все-таки антикварный нанокад 5.1. Не помню, в какой версии добавили. Но сейчас есть команды ОБЩДЛ и ОБЩПЛ. 1 Quote Link to comment Share on other sites More sharing options...
Аккорд Posted May 13, 2020 Author Report Share Posted May 13, 2020 (edited) Благодарю за ответы. Возможно я не разобрался, но тему с антикварной версией я не понял... Я решил попробовать поработать в nanocad, вошел на оф сайт увидел версии доступные для скачивания. Версий доступных для скачивания по сути 2: NANOCAD PLUS 20.0 и NANOCAD 5.1 . Рассудив что для двухмерного проектирования "на попробовать" достаточно версии без "3D моделирование и зависимости" и скачал NANOCAD 5.1 . Я и предположить не мог что в разделе оф сайта могут быть устаревшие версии. Что я сделал не так? Нужно было качать NANOCAD PLUS 20.0 ? По поводу ответа Lion007 : мне кажется Вы усложняете... В 90 % задач достаточно общей длины однотипных объектов (отрезок+ дуга или суммарная длина полилиний) либо же площади/периметра замкнутых объектов Edited May 13, 2020 by Аккорд Quote Link to comment Share on other sites More sharing options...
Ivanco Posted May 13, 2020 Report Share Posted May 13, 2020 5 часов назад, Аккорд сказал: Возможно я не разобрался, но тему с антикварной версией я не понял... - nanoCAD 5.1 это бесплатная версия которая не обновлялась лет этак 6. - nanoCAD 20 это современная платформа. чтобы сложилось впечатление о nanoCAD сегодняшнего дня надо смотреть ее. и да конечно она платная. все модули в т.ч. 3D моделирования опциональны и не обязательны к приобретению/использованию. Quote Link to comment Share on other sites More sharing options...
A.Kudrjashov Posted May 14, 2020 Report Share Posted May 14, 2020 (edited) В 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 May 14, 2020 by A.Kudrjashov 1 Quote Link to comment Share on other sites More sharing options...
Аккорд Posted May 14, 2020 Author Report Share Posted May 14, 2020 Благодарю всех откликнувшихся. Теперь всё понятно. Quote Link to comment Share on other sites More sharing options...
ПГС-Проект Posted May 18, 2020 Report Share Posted May 18, 2020 (edited) В 14.05.2020 в 11:47, A.Kudrjashov сказал: В nanoCAD 5.1, насколько я понимаю, подгрузить LISP вообще нельзя. Можно. А не можете в Вашем коде перевести сообщения командной строки с непонятного языка на русский? Буду с удовольствием пользоваться и вспоминать Вас с благодарностью. PS И хорошо бы добавить в код функцию отображения результата вычисления в лог, который вызывается клавишей F2. Edited May 18, 2020 by ПГС-Проект PS Quote Link to comment Share on other sites More sharing options...
A.Kudrjashov Posted May 19, 2020 Report Share Posted May 19, 2020 15 часов назад, ПГС-Проект сказал: Можно. А не можете в Вашем коде перевести сообщения командной строки с непонятного языка на русский? .... если я правильно понял.TLEn_2.lsp 1 1 Quote Link to comment Share on other sites More sharing options...
ПГС-Проект Posted May 19, 2020 Report Share Posted May 19, 2020 1 час назад, A.Kudrjashov сказал: .... если я правильно понял. Спасибо! Всё так. Quote Link to comment Share on other sites More sharing options...
User12345 Posted July 7, 2022 Report Share Posted July 7, 2022 Можно все-таки вывести результат вычисления общдл на экран без нажатия клавиши F2, при скрытой командной строке? Я пользуюсь только дин-вводом. При выполнении команды общдл на долю секунды на экране появляется какое-то окошко, но оно быстро сворачивается и результат суммы отрезков можно увидеть только в командной строке. Quote Link to comment Share on other sites More sharing options...
yum Posted July 7, 2022 Report Share Posted July 7, 2022 Воспользуйтесь INQUIRE. Там выбираете периметр - Несколько объектови указываете ваши отрезки. Результат будет в окошке команды. 3 Quote Link to comment Share on other sites More sharing options...
MCAD Posted July 8, 2022 Report Share Posted July 8, 2022 В 07.07.2022 в 14:11, User12345 сказал: Можно все-таки вывести результат вычисления общдл на экран без нажатия клавиши F2 Наверное можно. Если, конечно, для вас не принципиально именно использование Lisp, а не пользоваться функционалом платформы. Варианты: Длина отрезков, полилиний и окружностей.dwg 3 Quote Link to comment Share on other sites More sharing options...
User12345 Posted July 8, 2022 Report Share Posted July 8, 2022 Спасибо. Только немного не то, я бы хотел, выбрав по образцу на чертеже линии, получить их сумму длин в окошке (которое на долю секунды, как я писал ранее появляется), а чтобы использовать эту функцию, мне нужно выбрать по образцу линии, скопировать их на пустой место и только тогда использовать "inquire", больше действий, легче использовать команду "общдл" и посмотреть в командную строку. добавлено через 9 минут MCAD, В автокаде я пользовался lisp GeomProps и selsim, загружались они через arx, но в нанокаде к сожалению они не могут быть использованы, поэтому приходится пользоваться функционалом платформы. Было бы круто иметь аналогичные по работе lisp в нанокаде 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.