Variable Outline Code Examples
Posted 12-03-2023 at 14:47 by shelbym
Introduction
CorelDRAW 2023 has a new Variable Outline Tool. You can also apply a variable outline via code. :-) I have put together a number of VBA examples of how this works. Hopefully you will find these useful.
Conclusion
Have some fun coding Variable Outlines. :-)
CorelDRAW 2023 has a new Variable Outline Tool. You can also apply a variable outline via code. :-) I have put together a number of VBA examples of how this works. Hopefully you will find these useful.
Code:
Sub TestAddVariableWidthNodes() Dim sLine As Shape Set sLine = ActiveLayer.CreateLineSegment(2, 8, 2, 5) sLine.Outline.VariableWidthNodes.Add 0.25, 0.125 sLine.Outline.VariableWidthNodes.Add 0.5, 0.25 sLine.Outline.VariableWidthNodes.Add 0.75, 0.125 End Sub
Code:
Sub TestClearVariableWidthNodes() Dim sLine As Shape Set sLine = ActiveLayer.CreateLineSegment(2, 8, 2, 5) sLine.Outline.VariableWidthNodes.Add 0.25, 0.125 sLine.Outline.VariableWidthNodes.Add 0.5, 0.25 sLine.Outline.VariableWidthNodes.Add 0.75, 0.125 sLine.Outline.VariableWidthNodes.Clear End Sub
Code:
Sub TestCopyVariableWidthNodes() Dim sLine As Shape, sLine2 As Shape Set sLine = ActiveLayer.CreateLineSegment(2, 8, 2, 5) sLine.Outline.VariableWidthNodes.Add 0.25, 0.125 sLine.Outline.VariableWidthNodes.Add 0.5, 0.25 sLine.Outline.VariableWidthNodes.Add 0.75, 0.125 Set sLine2 = ActiveLayer.CreateLineSegment(4, 8, 4, 5) sLine2.Outline.VariableWidthNodes.Copy sLine.Outline.VariableWidthNodes End Sub
Code:
Sub TestCountVariableWidthNodes() Dim sLine As Shape Set sLine = ActiveLayer.CreateLineSegment(2, 8, 2, 5) sLine.Outline.VariableWidthNodes.Add 0.25, 0.125 sLine.Outline.VariableWidthNodes.Add 0.5, 0.25 sLine.Outline.VariableWidthNodes.Add 0.75, 0.125 MsgBox “Number of variable width nodes: “ & sLine.Outline.VariableWidthNodes.Count, , “Variable Width Nodes” End Sub
Code:
Sub TestSelectedVariableWidthNodes() Dim sLine As Shape Dim vwNode1 As IVGVariableWidthNode, vwNode2 As IVGVariableWidthNode, vwNode3 As IVGVariableWidthNode Set sLine = ActiveLayer.CreateLineSegment(2, 8, 2, 5) Set vwNode1 = sLine.Outline.VariableWidthNodes.Add(0.25, 0.125) Set vwNode2 = sLine.Outline.VariableWidthNodes.Add(0.5, 0.25) Set vwNode3 = sLine.Outline.VariableWidthNodes.Add(0.75, 0.125) vwNode2.Selected = True End Sub
Code:
Sub TestSidesVariableWidthNodes() Dim sLine As Shape Dim vwNode1 As IVGVariableWidthNode, vwNode2 As IVGVariableWidthNode, vwNode3 As IVGVariableWidthNode Set sLine = ActiveLayer.CreateLineSegment(2, 8, 2, 5) Set vwNode1 = sLine.Outline.VariableWidthNodes.Add(0.25, 0.125) Set vwNode2 = sLine.Outline.VariableWidthNodes.Add(0.5, 0.25) Set vwNode3 = sLine.Outline.VariableWidthNodes.Add(0.75, 0.125) vwNode1.Side1Width = 0.25 vwNode3.Side2Width = 0.25 End Sub
Code:
Sub TestDeleteVariableWidthNodes() Dim sLine As Shape Dim vwNode1 As IVGVariableWidthNode, vwNode2 As IVGVariableWidthNode, vwNode3 As IVGVariableWidthNode Set sLine = ActiveLayer.CreateLineSegment(2, 8, 2, 5) Set vwNode1 = sLine.Outline.VariableWidthNodes.Add(0.25, 0.125) Set vwNode2 = sLine.Outline.VariableWidthNodes.Add(0.5, 0.25) Set vwNode3 = sLine.Outline.VariableWidthNodes.Add(0.75, 0.125) vwNode2.Delete End Sub
Code:
Sub TestMoveVariableWidthNodes() Dim sLine As Shape Dim vwNode1 As IVGVariableWidthNode, vwNode2 As IVGVariableWidthNode, vwNode3 As IVGVariableWidthNode Set sLine = ActiveLayer.CreateLineSegment(2, 8, 2, 5) Set vwNode1 = sLine.Outline.VariableWidthNodes.Add(0.25, 0.125) Set vwNode2 = sLine.Outline.VariableWidthNodes.Add(0.5, 0.25) Set vwNode3 = sLine.Outline.VariableWidthNodes.Add(0.75, 0.125) vwNode1.PositionT = 0.125 vwNode3.PositionT = 0.875 End Sub
Code:
Sub TestDetialsVariableWidthNodes() Dim sLine As Shape Dim vwNode1 As IVGVariableWidthNode, vwNode2 As IVGVariableWidthNode, vwNode3 As IVGVariableWidthNode Dim strDetails As String Set sLine = ActiveLayer.CreateLineSegment(2, 8, 2, 5) Set vwNode1 = sLine.Outline.VariableWidthNodes.Add(0.25, 0.125) Set vwNode2 = sLine.Outline.VariableWidthNodes.Add(0.5, 0.25) Set vwNode3 = sLine.Outline.VariableWidthNodes.Add(0.75, 0.125) vwNode1.Selected = True For i = 1 To sLine.Outline.VariableWidthNodes.Count strDetails = strDetails & i & “: “ & sLine.Outline.VariableWidthNodes(i).Width & “ Pos: “ & sLine.Outline.VariableWidthNodes(i).PositionT & “ Sel: “ & sLine.Outline.VariableWidthNodes(i).Selected & “ S1: “ & sLine.Outline.VariableWidthNodes(i).Side1Width & “ S2: “ & sLine.Outline.VariableWidthNodes(i).Side2Width & “ Width: “ & sLine.Outline.VariableWidthNodes(i).Width & vbNewLine Next i MsgBox strDetails, , “Variable Width Nodes” End Sub
Have some fun coding Variable Outlines. :-)
Total Comments 0
Comments
Total Trackbacks 0