[CDR 2017-2021] Доработать макрос расчета площади/периметра CorelDraw 2017

Сообщения
355
Реакции
77
группу думаю не стоит брать вообще - там и линия может быть, и еще черти что. только один объект все что внутри минус все что снаружи плюс - и сделать выбор шрифта, его размер и цвет )
 

spacemakerman

Участник
Топикстартер
Сообщения
14
Реакции
0
если группа то считается площадь всех объектов в группе, т.е. если основываться на ваших примерах - круг+квадрат
если скомбинированно то считается только та площадь которая может быть залита, т.е. квадрат минус круг
во всех случаях не имеет значения какие свойства применены к объекту (заливка, прозрачность и т.д.), работаем только с каркасом.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
Ok, теперь тут все ясно
Остался последний непонятный момент с масштабом
 
Сообщения
355
Реакции
77
И самое главное - ) - чтобы он под цвет темы подходил ) - Drak Medium или Black )
 

spacemakerman

Участник
Топикстартер
Сообщения
14
Реакции
0

Karatau

Участник
Сообщения
60
Реакции
22
Добрый день!

Есть макрос который нужно доработать, очень выручал при подсчете объемов! Сам в программировании не разбираюсь! Рассматриваю любые предложения!

Доброго дня всем!
Найдено решение задачи или нет? Не совсем понял по финальным постам :).
Тем не менее, хочу предложить свой вариант. Допиленный скрипт считает площадь сложных фигур (которые приведены в примерах, как чаще всего используемые).
Вот под такие фигуры заточен алгоритм:

01.png

Версия десятидневка для теста здесь.

smartprepress.ru/GeometricExt.gms

Ставьте, тестируйте, комментируйте – допилю.
Если кому-то будет нужен результат, можно связаться в личке.
 
  • Спасибо
Реакции: Mailo

lev

Модератор
20 лет на форуме
Сообщения
2 146
Реакции
2 071
Версия трёхдневка:
Код:
Sub LenArea()
  ActiveDocument.Unit = ActiveDocument.Rulers.HUnits
  MsgBox "Length = " & ActiveShape.DisplayCurve.Length & vbCr & "Area = " & ActiveShape.DisplayCurve.Area
End Sub
 

spacemakerman

Участник
Топикстартер
Сообщения
14
Реакции
0
@Karatau, @Karatau,
Версия трёхдневка:
Код:
Sub LenArea()
  ActiveDocument.Unit = ActiveDocument.Rulers.HUnits
  MsgBox "Length = " & ActiveShape.DisplayCurve.Length & vbCr & "Area = " & ActiveShape.DisplayCurve.Area
End Sub
не корректно считает комбинированные, не считает сгруппированные и несколько выбранных объектов
 

Karatau

Участник
Сообщения
60
Реакции
22
Версия однодневка... :D

Площадь фигуры

Просто ради академического интереса. Если будет смысл, можно ускорить алгоритм и поставить в обсуждаемый выше макрос...
 
  • Спасибо
Реакции: Jeine и BazzilioTheCat

Jeine

Да здравствует разум! Да сгинет маразм!
15 лет на форуме
Сообщения
7 310
Реакции
6 315
Интересно, почему он периодически выдаёт совершенно разные значения при изменении точности всего на единицу (от 780 в одном случае до 1800 в другом) и иногда (на том же объекте) вообще выдаёт отрицательное значение?
 
Сообщения
355
Реакции
77
у меня нормально работает, считает правильно, единственное пожелание - стандартный геометрик при выделении сразу обновляет инфу о состоянии. А у Вас приходится каждый раз в рефреш тыкать... а так замечательно вроде ) и еще - а внешний вид никак нельзя посовременнее? я могу помочь с оформлением ) -
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
Он работает правильно для очень частного случая, причем, в отличие от стандартного метода Area, нельзя определенно сказать для каких случаев будут коллизии. Я поковырял сам алгоритм - имхо, идея тупиковая. :(
 

Jeine

Да здравствует разум! Да сгинет маразм!
15 лет на форуме
Сообщения
7 310
Реакции
6 315
Судя по тому, что на мой вопрос автор не ответил, он и сам это понимает :)
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
сам это понимает
Да ;)
Вообще говоря, я все таки надеялся, что алгоритм можно допилить до вменяемого вида, но, судя по всему, нет, сам принцип подсчета площади через разбиение на криволинейные четырехугольники - порочен. :(
 
Сообщения
355
Реакции
77
Да ;)
Вообще говоря, я все таки надеялся, что алгоритм можно допилить до вменяемого вида, но, судя по всему, нет, сам принцип подсчета площади через разбиение на криволинейные четырехугольники - порочен. :(
тоже столкнулся с проблемами при расчетах....может быть немного сократить возможности? либо не считать группы, либо не считать комбинирование... или оставить все как есть в стандартном варианте ))) - тогда может быть вернемся к идее, только не смейтесь:
1. Серой, темной, черной темы '%)''))',
2. Выбора шрифта, его размера и цвета, а так же
3. Выбор позиции для текста относительно баундинг бокса объекта. расстояние от (снизу, сверху, слева, справа) и выравнивание по (снизу, сверху, слева, справа), и поворот текста..
4. Замена стандартной подписи - то есть окошко - в котором по умолчанию вбито Perimeter, Area, Volume, но можно заменить на что угодно - (S,L,V) или на ничто.
5. Добавить суффикс префикс.
5. Более аккуратной рисовки) пиксель в пиксель так сказать, плоские кнопки, если это возможно.
6. Подсвечивание кнопки при наведении мышкой....
 
Последнее редактирование:
Сообщения
355
Реакции
77
и еще - для размышлений на тему функционала, вбиваешь длину - в окно длины - и он находит все объекты этой длины на странице, то же с площадью), не? ;]]