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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Lisp для извлечения данных 3D тел созданных при помощи Extrude

Lisp для извлечения данных 3D тел созданных при помощи Extrude

Ответ
Поиск в этой теме
Непрочитано 18.03.2023, 20:20 #1
Lisp для извлечения данных 3D тел созданных при помощи Extrude
sashaooo
 
Регистрация: 10.03.2012
Сообщений: 76

Доброго времени суток. Добавляю вопрос к этой теме https://forum.dwg.ru/showthread.php?t=167721
Мне при помощи ChatGPT и нескольких вечеров удалось создать лисп который сохраняет параметры(центр,высота,ширина,длина) 3D тела типа BOX(ящик) в .txt файл, который я могу загружать в Aveva(lisp прикрепляю)
Код:
[Выделить все]
 
(setq file (open "centroid.txt" "w"))
(setq ss (ssget "X"))
(setq cnt (sslength ss))
(setq i 0)
(while (< i cnt)
  (setq en (ssname ss i))
  (setq vla (vlax-ename->vla-object en))
  (setq Centroid (vlax-get vla 'Centroid))
  (setq Position (vlax-get vla 'Position))
  (vla-GetBoundingBox vla 'minp 'maxp)
  (setq pmin (vlax-safearray->list minp))
  (setq pmax (vlax-safearray->list maxp))
  (setq D (* (ABS (- (nth 0 pmin) (nth 0 Centroid))) 2))
  (setq L (* (ABS (- (nth 1 pmax) (nth 1 Centroid))) 2))
  (setq H (* (ABS (- (nth 2 Centroid) (nth 2 Position))) 2))
  (write-line (strcat "NEW BOX") file)
  (write-line (strcat "POS X " (vl-princ-to-string (nth 0 Position))"mm Y " (vl-princ-to-string (nth 1 Position))"mm Z " (vl-princ-to-string (nth 2 Position))"mm") file)
  (write-line (strcat "XLEN " (vl-princ-to-string D)"mm") file)
  (write-line (strcat "YLEN " (vl-princ-to-string L)"mm") file)
  (write-line (strcat "ZLEN " (vl-princ-to-string H)"mm") file)
  (setq i (1+ i))
)

(close file)
(princ "Done.")
Тоже самое получится и с телами типа цилиндр,шар я думаю проблем не должно быть.
Но вот с телами созданные Extrude(выдавливанием),особенно тела у которых более 4 вершин, ни чего не получается..ChatGPT ни даёт разумного ответа,справочник Полещука просмотрел уже несколько раз,форумы в том числе англоязычные тоже не дают ответа..(хотя может быть не правильно ищу)
Подскажите возможно ли средствами Autolisp определить координаты вершин,когда их более 4, и высоту тела полученного операцией Выдавливание.
Спасибо,за любую информацию!
Просмотров: 1264
 
Непрочитано 19.03.2023, 16:40
#2
SetQ

конструктор
 
Регистрация: 21.07.2007
Петрозаводск
Сообщений: 1,982


Цитата:
Сообщение от sashaooo Посмотреть сообщение
Мне при помощи ChatGPT и нескольких вечеров удалось создать лисп
Вот бы я такое пятнадцать лет назад здесь прочитал. А ещё через пятнадцать лисп как латынь будет, наверное.

Цитата:
Сообщение от sashaooo Посмотреть сообщение
Подскажите возможно ли средствами Autolisp определить координаты вершин,когда их более 4, и высоту тела полученного операцией Выдавливание.
Конечно, возможно.
SetQ вне форума  
 
Автор темы   Непрочитано 19.03.2023, 17:25
#3
sashaooo


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


Не подскажите, каким образом?
sashaooo вне форума  
 
Непрочитано 19.03.2023, 18:05
1 | 1 #4
trir


 
Регистрация: 18.12.2010
Сообщений: 5,051


я в прошлой теме ссылку давал
Код:
[Выделить все]
 (defun acis-decode (s) ; decode an encrypted acis-string of dxf group 1
(apply (function strcat)
(mapcar
(function (lambda (c) ; decode one char
(cond ; by Owen Wengerd
((= c 32) " ")
((= c 86) "I")
(T (chr (boole 6 c 95))))))
(vl-string->list s))
)
)

(defun goACIS (/ ent entl)
(cond ((setq ent (car (entsel)))
(setq entl (entget ent))
(foreach n entl
(if (= 1 (car n))
(princ (acis-decode (cdr n)))
(terpri))))
)
)
trir вне форума  
 
Автор темы   Непрочитано 19.03.2023, 19:45
#5
sashaooo


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


Спасибо. Теперь понял.
sashaooo вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Lisp для извлечения данных 3D тел созданных при помощи Extrude

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Lisp. Почему не удается получить доступ к свойствам точек Civil 3D Kirill_Ja LISP 2 27.09.2016 10:46
Как быстро преобразовать в отрезки десятки тысяч полилиний при помощи LISP Влад-и-мир LISP 21 22.07.2014 13:43
Lisp. Как создать при помощи кода, два файла связанных ссылками Yura Agafonov LISP 11 13.11.2012 11:03
Civil 3D 2010. Настройка отображения данных в подпрофильной таблицы rassom Вертикальные решения на базе AutoCAD 5 07.06.2011 11:32