|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
07.05.2009, 08:16 | #1 | |
Определение площади поверхности и объема тел в AutoCAD на VBA.
Инженер технолог по проектированию магистральных нефтепрводов
Тюмень
Регистрация: 07.05.2009
Сообщений: 9
|
||
Просмотров: 19747
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,833
|
Объем для 3Д-солида получить не проблема: obj.Volume. Как получить площадь твердого тела чисто программно, без применения командных методов - не знаю.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер Регистрация: 02.10.2008
С-Пб
Сообщений: 3,685
|
Цитата:
Однако, метод explode к солидам отчего-то не применим, в отличие от команды автокада.
__________________
...Не пытайся гнуть ты ложку, Не вяжи её узлом. Ложка - ложка понарошку, А по правде, - это лом! Последний раз редактировалось AlexV, 07.05.2009 в 09:56. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,833
|
AlexV, по-моему, у объекта поверхность (Surface) отсутствует понятие площади.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер Регистрация: 02.10.2008
С-Пб
Сообщений: 3,685
|
И правда, отсутствует... Плоские участки солида при explode превратятся в регионы, их площадь посчитать легко. А вот с криволинейными как быть..
__________________
...Не пытайся гнуть ты ложку, Не вяжи её узлом. Ложка - ложка понарошку, А по правде, - это лом! |
|||
|
||||
Инженер технолог по проектированию магистральных нефтепрводов Регистрация: 07.05.2009
Тюмень
Сообщений: 9
|
Нашло расчетное решение! я конечно не математик но постараюсь по понятней.
Отношение площади к объему произвольного тела равно отношению площади к объему параллелепипеда в которое это тело вписано. |
|||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Извините - но по моему это бред. Я в один и тот-же паралелепипед могу вписать бесконечное множество тел - и что у всех них будет одинаковое отношение объем/плащадь поверхности?
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
|
||||
|
||||
Инженер технолог по проектированию магистральных нефтепрводов Регистрация: 07.05.2009
Тюмень
Сообщений: 9
|
Для тех кто не верит, могут не верить. Для тех кто сомневается, данный способ я наковырял из курса по интегральному исчислению проверил для пяти произвольных фигур получил тоже значение, что и выдает команда _area.
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,833
|
Sleekka, скажи, а зачем это?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер технолог по проектированию магистральных нефтепрводов Регистрация: 07.05.2009
Тюмень
Сообщений: 9
|
object.GetBoundingBox какраз возвращает противоположные вершины этого самого параллелепипеда, по полученным точкам находим площадь и объем, объем тела поверхность которого мы ищем возвращает obj.Volume, днлим одно на другое и получаем площадь
|
|||
|
||||
Цитата:
P.S.: Кстати, object.GetBoundingBox даст правильный параллелепипед только если "тело" ориентировано по осям. А если оно повернуто, скажем, на 45 градусов относительно оси Z? И это тело - длинный цилиндр?:-) Последний раз редактировалось Александр Ривилис, 07.05.2009 в 17:07. |
||||
|
||||
Регистрация: 06.04.2009
Сообщений: 705
|
Могу предложить приближенное решение.
У объекта solid из приведенного выше примера значение объема obj.volume равно 350. В коммандную строку через SendCommand отправляешь строчку для создания оболочки из твоего солида с толщиной напрмер 0,01 (чем меньше тем точнее) от корня кубического объема тела (или задать конкретную толщину покрытия, изоляции и т.д.) Потом выдернуть этот объектик и посмотреть его объемчик. Ну а дальше S=V/t. |
|||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Цитата:
Ваш метод действует только на "экструдированные" тела, сравните отношения объема к площади у шара, цилиндра и конуса (все диаметры и высоты по 100) - наверно "курс по интегральному исчеслению" Вы бегло прочли.
__________________
Когда в руках молоток все вокруг кажется гвоздями. Последний раз редактировалось Дима_, 07.05.2009 в 17:58. |
|||
|
||||
Инженер технолог по проектированию магистральных нефтепрводов Регистрация: 07.05.2009
Тюмень
Сообщений: 9
|
Цитата:
будем вести поиск дальше... |
|||
|
||||
Перечитай название темы. Если непонятно, то я объясню что в ней идёт речь о получении площади и объема твердого тела при помощи VBA видимо с целью дальнейшего использования в программе.
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
|
Опции темы | Поиск в этой теме |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Видеоуроки AutoCAD | kosmax | AutoCAD | 173 | 17.02.2017 15:08 |
книги по VBA AutoCAD | DY | Программирование | 30 | 15.02.2013 16:16 |
VBA AutoCad построение поверхности amrule | Alexi | Программирование | 14 | 20.10.2006 13:33 |
AutoCAD LT 2005 и VBA Macros | Vidas | Программирование | 10 | 03.05.2005 11:00 |