Здравствуйте! Уважаемые форумчане, хотел задать следующий вопрос. Может ли кто ни будь помочь в написании лиспа или подсказать, если таковой лисп уже имеется. От программирования я пока далек :-(. В 3D модели я хочу создать трубы сделанные динамическим блоком. Задача лиспа: я выбираю одну трубу. Затем, через команду «выбрать подобные» выбираю остальные трубы данного диаметра и ввожу команду лиспа, который бы подсчитывал суммарную длину L всех выделенных труб (рис.1). Вот, например, я скачивал лисп SUMLINE, который подсчитывает длину выделенных отрезков, полилиний и дуг. Хотелось бы иметь лисп, который считает длину дин. блоков. Файл с трубами прилагаю (Создавал не я. Скачал на просторах интернета). Пожалуйста помогите!
Решено! Перейти к решению.
Решено: kpblc2000. Перейти к решению.
Решено: Alexander.Rivilis. Перейти к решению.
@Valerik_73_ wrote:
... Может ли кто ни будь помочь в написании лиспа или подсказать, если таковой лисп уже имеется. От программирования я пока далек :-(...
Если от программирования далёк, то в чем должна заключаться помощь в написании?
Відповідь корисна? Клікніть на "ВПОДОБАЙКУ" цім повідомленням! | Do you find the posts helpful? "LIKE" these posts!
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям!
На ваше запитання відповіли? Натисніть кнопку "ПРИЙНЯТИ РІШЕННЯ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ"
Alexander Rivilis / Александр Ривилис / Олександр Рівіліс
Programmer & Teacher & Helper / Программист - Учитель - Помощник / Програміст - вчитель - помічник
Facebook | Twitter | LinkedIn
Как вариант (дальше продвигайся сам):
(defun C:TubeLenSum ( / len bref props prop ss) (setq len 0.0) (vl-load-com) (setq ss (ssget '((0 . "INSERT")))) (foreach e (ssnamex ss) (if (= 'ename (type (cadr e))) (progn (setq bref (vlax-ename->vla-object (cadr e))) (setq props (vlax-safearray->list (vlax-variant-value (vla-getdynamicblockproperties bref)))) (foreach prop props (if (= (vla-get-PropertyName prop) "L") (progn (setq len (+ len (vlax-variant-value (vla-get-Value prop)))) )) ) )) ) (setq ss nil) (princ "\nСуммарная длина выбранных труб: ") (princ len) (princ) )
Відповідь корисна? Клікніть на "ВПОДОБАЙКУ" цім повідомленням! | Do you find the posts helpful? "LIKE" these posts!
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям!
На ваше запитання відповіли? Натисніть кнопку "ПРИЙНЯТИ РІШЕННЯ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ"
Alexander Rivilis / Александр Ривилис / Олександр Рівіліс
Programmer & Teacher & Helper / Программист - Учитель - Помощник / Програміст - вчитель - помічник
Facebook | Twitter | LinkedIn
Александр, спасибо большое! Наверное, в моей просьбе можно было разглядеть нотку наглости. Простите меня! Больше я надеялся, что данный лисп уже кем то писался. Мы разрабатываем газовые котельные и там имеется большое количество труб и арматуры. Я подумал, что можно упростить процесс подсчета спецификации путем подсчета труб через лисп, а арматуры через блоки с атрибутами. То что вы написали мне подошло! Еще раз спасибо вам! Очень признателен! Скажите пожалуйста, а сложно ли научиться писать лиспы? И есть ли литература с которой можно начать? Я смотрел возможности лиспов и некоторые (скачанные из интернета) довольно часто применяю в работе. Как я понял с ними можно существенно облегчить и ускорить свой труд.
@Valerik_73_ wrote:
...Скажите пожалуйста, а сложно ли научиться писать лиспы? И есть ли литература с которой можно начать? ...
Я не знаю что такое "писать лиспы" 🙂 Правильно это называется "писать программы на VisualLisp". Научиться писать программы нельзя - можно постоянно учиться и совершенствоваться в этом деле. Я программирую под AutoCAD уже почти 30 лет (правда последние лет 15 не на VisualLisp).
Литература есть. Например, AutoLISP и Visual LISP в среде AutoCAD (2006)
Відповідь корисна? Клікніть на "ВПОДОБАЙКУ" цім повідомленням! | Do you find the posts helpful? "LIKE" these posts!
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям!
На ваше запитання відповіли? Натисніть кнопку "ПРИЙНЯТИ РІШЕННЯ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ"
Alexander Rivilis / Александр Ривилис / Олександр Рівіліс
Programmer & Teacher & Helper / Программист - Учитель - Помощник / Програміст - вчитель - помічник
Facebook | Twitter | LinkedIn
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям! | Do you find the posts helpful? "LIKE" these posts!
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
Алексей Кулик aka kpblc | Aleksei Kulik aka kpblc Facebook | LinkedIn
autolisp.ru
Техническая поддержка программистов Autodesk в СНГ
Библиотека пользовательских lisp-функций | Custom Lisp-function library
Извините за мою неграмотность! Мне бы хоть простые научиться писать. По типу того, что вы для меня написали (хотя я точное не знаю простой он или нет, но выглядит просто). Спасибо за литературу! 🙂
Можно в Вашем случае обойтись и без лиспов, воспользовавшись извлечением данных, раз трубы сделаны динблоками.
По ссылке уроки по созданию блоков с атрибутами, что позволит в дальнейшем получать автособираемые спецификации https://www.youtube.com/playlist?list=PLF5lNUttdW4MEQWUI4kgDMgfLtW7hbvbS
Не нашли то, что искали? Задайте вопросы в сообществе или поделитесь своими знаниями.