[CDR X5] Как проставить размеры у всех объектов сразу (длина/ширина)?

Совсем зелёный)

Участник
Топикстартер
Сообщения
8
Оценка реакций
0
Добрый день!
Перед печатью всегда отправляю заказчику макет с размерами каждого изображения. Иногда бывает очень много объектов, всегда проставляю вручную...
Есть ли способ делать это быстрее (желательно по нажатию пары кнопок))? Может, макрос какой?
Сами размеры в итоге не нужны для печати, так же их удаляю вручную потом...
1.jpg
 

dastin

Некромант-любитель
10 лет на форуме
Сообщения
1 230
Оценка реакций
1 057
Последнее редактирование:

dastin

Некромант-любитель
10 лет на форуме
Сообщения
1 230
Оценка реакций
1 057
правда ваш Х5 - возможно - не всё согласится воспроизвести
 

lev

Модератор
15 лет на форуме
Сообщения
1 935
Оценка реакций
1 833
В X7 я делаю так (X5 для перепроверки под рукой нет):
Код:
Sub dim_each()
  ActiveDocument.BeginCommandGroup "Dimensioner"
  ActiveDocument.Unit = cdrMillimeter
  d = 10
  For Each s In ActiveSelection.Shapes
    ActiveLayer.CreateLinearDimension(cdrDimensionVertical, s.SnapPoints.BBox(cdrTopMiddle), s.SnapPoints.BBox(cdrBottomMiddle), TextSize:=24).Dimension.TextShape.PositionX = s.LeftX - d
    ActiveLayer.CreateLinearDimension(cdrDimensionHorizontal, s.SnapPoints.BBox(cdrMiddleLeft), s.SnapPoints.BBox(cdrMiddleRight), TextSize:=24).Dimension.TextShape.PositionY = s.TopY + d
  Next s
  ActiveDocument.EndCommandGroup
End Sub
 

Совсем зелёный)

Участник
Топикстартер
Сообщения
8
Оценка реакций
0
В X7 я делаю так (X5 для перепроверки под рукой нет):
Код:
Sub dim_each()
  ActiveDocument.BeginCommandGroup "Dimensioner"
  ActiveDocument.Unit = cdrMillimeter
  d = 10
  For Each s In ActiveSelection.Shapes
    ActiveLayer.CreateLinearDimension(cdrDimensionVertical, s.SnapPoints.BBox(cdrTopMiddle), s.SnapPoints.BBox(cdrBottomMiddle), TextSize:=24).Dimension.TextShape.PositionX = s.LeftX - d
    ActiveLayer.CreateLinearDimension(cdrDimensionHorizontal, s.SnapPoints.BBox(cdrMiddleLeft), s.SnapPoints.BBox(cdrMiddleRight), TextSize:=24).Dimension.TextShape.PositionY = s.TopY + d
  Next s
  ActiveDocument.EndCommandGroup
End Sub
А куды это втавлять-то надо?! Я совсем зелёный))
 

lev

Модератор
15 лет на форуме
Сообщения
1 935
Оценка реакций
1 833

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
28 285
Оценка реакций
9 341

Совсем зелёный)

Участник
Топикстартер
Сообщения
8
Оценка реакций
0
Поищите кнопку "Редактор макросов"
Или погуглите
Или нажмите F1
Всё получилось! Инструкцию кратенькую смотрела здесь Как написать макрос для CorelDRAW на VBA: введение (если нельзя использовать ссылку на другие сайты - удалю, но хочется шпаргалочку оставить)
 

Совсем зелёный)

Участник
Топикстартер
Сообщения
8
Оценка реакций
0
В X7 я делаю так (X5 для перепроверки под рукой нет):
Код:
Sub dim_each()
  ActiveDocument.BeginCommandGroup "Dimensioner"
  ActiveDocument.Unit = cdrMillimeter
  d = 10
  For Each s In ActiveSelection.Shapes
    ActiveLayer.CreateLinearDimension(cdrDimensionVertical, s.SnapPoints.BBox(cdrTopMiddle), s.SnapPoints.BBox(cdrBottomMiddle), TextSize:=24).Dimension.TextShape.PositionX = s.LeftX - d
    ActiveLayer.CreateLinearDimension(cdrDimensionHorizontal, s.SnapPoints.BBox(cdrMiddleLeft), s.SnapPoints.BBox(cdrMiddleRight), TextSize:=24).Dimension.TextShape.PositionY = s.TopY + d
  Next s
  ActiveDocument.EndCommandGroup
End Sub
Всё прекрасно работает! Огромное спасибо за опертивную помощь всем!
1.jpg