CorelDRAW VBA 单线条转裁切线 – 放置到页面四边

vba.png_new.webp
使用别人的角线裁切线工具,在遇到盒型或者多尺寸拼版,会遇到有些裁切线不能补全。
所以写了这个CorelDRAW VBA 脚本,可以自定义裁切线,快速补全裁切线。

使用演示效果和操作步骤

SelectLine_to_Cropline.gif
使用拼版角线工具完成拼版后,把钢刀线复制一份到页面边上,结合-分离节点-打散,选择基准线,运行脚本。

github 源码分享 https://github.com/hongwenjun/corelvba

VBA代码源码

'// 单线条转裁切线 - 放置到页面四边
Sub SelectLine_to_Cropline()

    '// 代码运行时关闭窗口刷新
    Application.Optimization = True
    ActiveDocument.Unit = cdrMillimeter
    
    '// 获得页面中心点 x,y
    px = ActiveDocument.Pages.First.CenterX
    py = ActiveDocument.Pages.First.CenterY
    Bleed = 2
    line_len = 3
    
    Dim s As Shape
    Dim line As Shape
    
    '// 遍历选择的线条
    For Each s In ActiveSelection.Shapes
    
        lx = s.LeftX
        rx = s.RightX
        by = s.BottomY
        ty = s.TopY
        
        cx = s.CenterX
        cy = s.CenterY
        sw = s.SizeWidth
        sh = s.SizeHeight
       
       '// 判断横线(高度小于宽度),在页面左边还是右边
       If sh < sw Then
        s.Delete
        If cx < px Then
            Set line = ActiveLayer.CreateLineSegment(0, cy, 0 + line_len, cy)
        Else
            Set line = ActiveLayer.CreateLineSegment(px * 2, cy, px * 2 - line_len, cy)
        End If
       End If
     
       '// 判断竖线(高度大于宽度),在页面下边还是上边
       If sh > sw Then
        s.Delete
        If cy < py Then
            Set line = ActiveLayer.CreateLineSegment(cx, 0, cx, 0 + line_len)
        Else
            Set line = ActiveLayer.CreateLineSegment(cx, py * 2, cx, py * 2 - line_len)
        End If
       End If
    
        line.Outline.SetProperties 0.1
        line.Outline.SetProperties Color:=CreateRegistrationColor
    Next s
    
    '// 代码操作结束恢复窗口刷新
    Application.Optimization = False
    ActiveWindow.Refresh
    Application.Refresh
End Sub
© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论