OberonPlace.com Forums  

Go Back   OberonPlace.com Forums > Blogs > shelbym

Rate this Entry

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.

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
Conclusion

Have some fun coding Variable Outlines. :-)
Posted in Uncategorized
Views 251 Comments 0
« Prev     Main     Next »
Total Comments 0

Comments

 
Total Trackbacks 0

Trackbacks


All times are GMT -5. The time now is 14:10.


Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2023, Jelsoft Enterprises Ltd.
Copyright © 2011, Oberonplace.com