Сообщество программистов Autodesk в СНГ
ADN Club => AutoCAD .NET API => Тема начата: Алексей (IdeaSoft) от 16-03-2016, 22:14:46
-
Хорошо, что есть этот форум. Много полезного и главное оперативно решаются вопросы.
Все стандартные элементы (Line, Acr, polyline, Spline, Ellipse, Circle, Hatch)
имеют методы расчетов площади или периметра или длины.
Только вот у Hatch как рассчитать периметр?
Он же может состоять различной конфигурации - как смесь графических образов.
-
Вопрос задан в правильном разделе?
-
Ой, вообще этот вопрос нужно перенести в раздел AutoCAD .NET API
У меня есть полномочия или возможность переносить. Или удалить и создать в другом разделе?
А все нашел внизу справа перенос вопроса.
-
Периметр имеет смысл только для границы штриховки. Соотвественно нужно эту границу получить, а затем посчитать её длину.
-
Заодно глянь эту статью: Периметр штриховки с помощью ObjectARX и .NET API (http://adn-cis.org/perimetr-shtrixovki-s-pomoshhyu-objectarx-i-.net-api.html)
-
Заодно глянь эту статью:
Протестировал этот пример кода. Где-то не до конца все считает. Ошибается на 6,5% - это существенно.
В примере чертежа периметр площадки = 14,9 ед. а периметр штриховки (в сумме внутр и внешний) = 13.8 ед.
Прикрепляю картинку.
(https://adn-cis.org/forum/proxy.php?request=http%3A%2F%2Fs11.postimg.org%2Fkiewapisv%2Fimage_Hatch.jpg&hash=801b0abed6b6d77ced4e27d47ca8de30) (http://postimg.org/image/kiewapisv/)
и dwg-файл c примером.
-
Нашел ошибку в этом примере в строке 71
if( d <= 1e-5 ) {...}
Величину d нужно брать по модулю, а то она же может быть отрицательной.
Если округлять до 2 знака после запятой то периметры равны 14,9=14,9 ед.
-
Величину d нужно брать по модулю, а то она же может быть отрицательной.
Я правильно понял, что теперь у тебя значения периметров совпали?
-
Спасибо большое за пример!
Да теперь значения совпали. Исправил конечно же 14,9 периметр.
Строка 71 примера кода
вот этого http://adn-cis.org/perimetr-shtrixovki-s-pomoshhyu-objectarx-i-.net-api.html
в втором фрагменте.
В первом фрагменте кода это строка 93
-
Отлично. Отправил автору сообщение о найденной ошибке: http://adndevblog.typepad.com/autocad/2012/04/perimeter-of-a-hatch-using-objectarx-and-autocad-net-api.html#comment-6a0167607c2431970b01bb08c9ddf0970d
Ну и у нас исправил. Спасибо за найденную ошибку!