Show circle annotation in continous mode

Share your programming ideas for various measurement and analysis tasks here
Post Reply
user-9
Posts: 82
Joined: Thu Jan 01, 1970 1:00 am

Show circle annotation in continous mode

Post by user-9 »

Code: Select all

#######################################################
## M E A S U R E M E N T  A N D   A N A L Y S I S
##
## Macro name: Show circle annotation in continous mode
## Required files: none
##
## ENTER CIRCLE DIAMETER
## SHOW CIRCLE IN CONTINOUS MODE 
## 
#######################################################
##
##
## Remove all open documents
Zen.Application.Documents.RemoveAll()
##
##
## Activate Zen.Windows
zw = Zen.Windows
##
## enter integer value in textbox
## show value in message box
diam = zw.ShowTextBox('Enter circle diameter:','200')
if diam != None:

    ## Show continous mode
    Zen.Acquisition.StartContinuous()

    image = Zen.Application.Documents.ActiveDocument
    ## Define start/end of circle bounding box
    startX = (image.Bounds.SizeX/2) - int(diam)/2
    startY = (image.Bounds.SizeY/2) - int(diam)/2

    ## show circle
    circle = image.Graphics.Add(ZenGraphicCategory.Circle)
    circle.SetBounds(startX,startY,int(diam),int(diam))
    circle.IsMeasurementVisible = False
    circle.Thickness = 8
    
    ## Get current scale unit
    start = (image.Metadata.ScalingX.Length)-2  
    sUnit = image.Metadata.ScalingX.Substring(start,image.Metadata.ScalingX.Length-start)

    ## show diameter value and unit in upper left corner of image
    textbox = image.Graphics.Add(ZenGraphicCategory.TextBox)
    textbox.Text = diam + ' ' + sUnit
    textbox.SetBounds(20, 20, 100, 50)
    textbox.Thickness = 30
    textbox.FillColor = ZenColors.White
    textbox.StrokeColor = ZenColors.Red
    textbox.TextColor = ZenColors.Red
    textbox.IsMeasurementVisible = False

    ## Close continous mode
    #Zen.Acquisition.StopContinuous()
    
else:
    zw.Show('Cancel')
##
#######################################################
Post Reply