Периметр штриховки

Автор Тема: Периметр штриховки  (Прочитано 9518 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Периметр штриховки
« : 16-03-2016, 22:14:46 »
Хорошо, что есть этот форум. Много полезного и главное оперативно решаются вопросы.

Все стандартные элементы (Line, Acr, polyline, Spline, Ellipse, Circle, Hatch)
имеют методы расчетов площади или периметра или длины.

Только вот у Hatch как рассчитать периметр?
Он же может состоять различной конфигурации - как смесь графических образов.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Периметр штриховки
« Ответ #1 : 16-03-2016, 22:23:31 »
Вопрос задан в правильном разделе?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Re: Периметр штриховки
« Ответ #2 : 16-03-2016, 22:27:31 »
Ой, вообще этот вопрос нужно перенести в раздел AutoCAD .NET API
У меня есть полномочия или возможность переносить. Или удалить и создать в другом разделе?
А все нашел внизу справа перенос вопроса.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Периметр штриховки
« Ответ #3 : 16-03-2016, 22:31:53 »
Периметр имеет смысл только для границы штриховки. Соотвественно нужно эту границу получить, а затем посчитать её длину.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Отмечено как Решение Алексей (IdeaSoft) 17-03-2016, 00:25:08

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Периметр штриховки
« Ответ #4 : 16-03-2016, 22:44:55 »
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Re: Периметр штриховки
« Ответ #5 : 17-03-2016, 00:11:41 »
Заодно глянь эту статью:
Протестировал этот пример кода. Где-то не до конца все считает. Ошибается на 6,5% - это существенно.

В примере чертежа периметр площадки = 14,9 ед. а периметр штриховки (в сумме внутр и внешний) = 13.8 ед.
Прикрепляю картинку.


и dwg-файл c примером.
 

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Re: Периметр штриховки
« Ответ #6 : 17-03-2016, 00:25:02 »
Нашел ошибку в этом примере в строке 71

if( d <= 1e-5 ) {...}

Величину d нужно брать по модулю, а то она же может быть отрицательной.
Если округлять до 2 знака после запятой то периметры равны 14,9=14,9 ед.


Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Периметр штриховки
« Ответ #7 : 17-03-2016, 00:28:44 »
Величину d нужно брать по модулю, а то она же может быть отрицательной.
Я правильно понял, что теперь у тебя значения периметров совпали?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Re: Периметр штриховки
« Ответ #8 : 17-03-2016, 00:36:38 »
Спасибо большое за пример!
Да теперь значения совпали. Исправил конечно же 14,9 периметр.

Строка 71 примера кода
вот этого http://adn-cis.org/perimetr-shtrixovki-s-pomoshhyu-objectarx-i-.net-api.html
в втором фрагменте.
В первом фрагменте кода это строка 93

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Периметр штриховки
« Ответ #9 : 17-03-2016, 00:42:45 »
Отлично. Отправил автору сообщение о найденной ошибке: http://adndevblog.typepad.com/autocad/2012/04/perimeter-of-a-hatch-using-objectarx-and-autocad-net-api.html#comment-6a0167607c2431970b01bb08c9ddf0970d
Ну и у нас исправил. Спасибо за найденную ошибку!
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение