Jun 21 2012

Determining the length of a curve in Corel Draw 11

When designing in Corel Draw, it can be very useful to know the total length of a curve. Since the curve may consist of straight and curved sections, this is not trivial, and unfortunately the user interface doesn’t help you here – it only tells you the width and height of an object.

So in order to get that length, use this Visual Basic macro:

Sub getLineLen()
 Dim sel As Shape
 Set sel = Application.ActiveDocument.ActiveShape
 Dim l, sl As Double
 Dim seg As Segment
 Dim prevu As cdrUnit

 prevu = Application.ActiveDocument.Unit
 Application.ActiveDocument.Unit = cdrMillimeter

 For Each seg In sel.Curve.Segments
 sl = seg.Length
 l = l + sl
 Next seg
 MsgBox ("Length: " & l)

 Application.ActiveDocument.Unit = prevu
End Sub

This should work in other versions of Corel Draw, too, but I could verify that for version 11 only. In order to make this work, go to the menu item “Tools -> Visual Basic -> Visual Basic editor…”. Click on “GlobalMacros”, then on “Module” and “CorelMacros”. Paste the code at the bottom of this text file. Then click on File -> Save.

To use the macro, select the relevant curve, then click on “Tools -> Visual Basic -> Execute…”. Select the macro from the list (select “Macros in” “all standard projects”) and click on “Execute”. The length of the curve will appear in a small message box.


2 Responses to “Determining the length of a curve in Corel Draw 11”

  • Becs Says:

    ‘Paste the code at the bottom of this text file.’
    What is the code you mention? I can’t see it.
    Many thanks!

    • admin Says:

      It’s the text set in the monospaced font above, everything from “Sub getLineLen()” to “End Sub”. Copy this text and paste it into the Visual Basic editor.

Leave a Reply

Related