0% found this document useful (0 votes)
17 views

Programming

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views

Programming

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

151

TECHNICAL UNIVERSITY OF CLUJ-NAPOCA

ACTA TECHNICA NAPOCENSIS


Series: Applied Mathematics, Mechanics, and Engineering
Vol. 58, Issue II, June, 2015

PROGRAMMING CANVAS X Pro 16 USING SCRIPTING TECHNOLOGIES

Tiberiu Alexandru ANTAL

Abstract: The paper gives a short overview on the Canvas X Pro 16 integrated environment for vector
illustration, imaging, presentations, and Web publishing software together with the scripting technologies
that can be used to program the product. Some programming examples in VBScript and Visual Basic
about how to draw an extruded spur gear are covering most of the features that are useful for the
mechanical engineers work.
Key words: Canvas X Pro 16, programming, VBScript, Visual Basic, vector graphics.

1. INTRODUCTION scripting reference gives a description based on


short examples of how to create scripts to
Canvas X Pro 16 belongs to the category of automate Canvas X using AppleScript and
vector oriented processing software that creates Visual Basic. Under the Windows operating
technical illustrators for many industries as it system scripts can be written in JavaScript and
offers a very flexible, scalable and integrated VBScript and executed if Windows Scripting
design environment. Some of the names Host is installed. As this is installed by default
belonging to the same category of software are: on most versions of Windows running such a
Corel Draw, Inkscape, Adobe Illustrator, script is done under the command windows by
however Canvas X has the advantage of being the following syntax:
very simple and effective. The software covers
at a state-of-the-art level the 2D technical
illustration, imaging, presentations, and Web
publishing domains and integrates simple and
known scripting technologies for programming.
It also integrates some simple 3D enhancing
procedures (parallel, circular and sweep
extrude) based on 2D drawings. The advantages
of programming CAD products and some of the Fig. 1. Command window for running a script.
available technologies to do that are given in
[1] – [4]. Canvas X is not really a CAD In Fig. 1 Wscript is the name of the
software but it does import DWG and DXF Windows Host executable file (Wscript.exe),
files. So most of the CAD work can be done in followed by a space, then the name of the script
AutoCAD and then imported to Canvas X. At file to be run (tooth.vbs). Another way to run a
2D modeling level Canvas X will do most of script is directly inside Canvas X by selecting
the things AutoCAD does. the script from the File > Automation. The
script is loaded using File > Automation > Add
2. SCRIPTING WITH CANVAS X scrip and after it’s loaded the name of the script
will appear in the Automation menu. If we click
The manual [5] gives the technologies that on the name it will open a new Canvas X
can be used to program Canvas X, while the [6]
152

instance and run the script automatically, ‘line 1


aly.CreateLine 100, 170, 90, 120
leaving also the current instance opened.
‘line 2
Const cvsIllustrationDocument = 1 aly.CreateLine 100, 170, 110, 120
' Declare variables.
Dim cv Set arc1 = aly.CreateArc(90, 102, 4,
Dim doc 18)
Dim aly arc1.StartAngle = 270
arc1.SpanAngle = 90
Set cv =
CreateObject("Canvas.Application") Set arc2 = aly.CreateArc(106, 102, 4,
cv.Visible = true 18)
Set doc = arc2.StartAngle = 90
cv.Documents.Add(cvsIllustrationDocume arc2.SpanAngle = -90
nt)
Set aly = ‘line 3
cv.ActiveDocument.ActivePage.ActiveLay aly.CreateLine 94, 102, 106, 102
er stop

Fig. 2. The tooth.vbs script effect on Canvas X Pro 16.

When running this simple VBScript code of the CVArc object. When creating an arc the
Canvas X has a strange habit. Instead of width, height, starting point in degrees, and the
keeping the current environment configuration angular length of the arc must be given
(which is set from File > Configuration according to [6]. The code to create the first arc
Center) it opens the original one, where the (arc 1) from Figure 1 should normally be the
paper size is Letter and the units are set to following:
inches. Unfortunately, the object model has no
properties that can be used to set these values aly.CreateArc 90, 102, 4, 18, 270, 90
when creating a new document. Another bug
seems to be related to the CreateArc() method or
153

Set arc1 = aly.CreateArc(90, 102, 4,


Set arc1 = aly.CreateArc(90, 102, 4, 18)
18, 270, 90)
arc1.StartAngle = 270
arc1.SpanAngle = 90
The code however will not create the
expected arc. In Figure 3 we have a smaller arc In the first case the angles must be given in
(in orange) and the expected one (in black). The radians and not in degrees as stated in [5] and
expected arc is created only is we used the [6] this is why we obtain a bad arc with
StartAngle and SpanAngle properties, where 5156.6200 Delta Angle and 339.8600 Start
the angle values are given in degrees as in the Angle.
following code:

Fig. 3. The Start and Delta Angle bug with CreateArc() method of the CVArc object in VBScript.

3. PROGRAMMING Canvas X FROM file is stored in the C:\Program Files\ACD


Visual Basic Systems\Canvas X Pro 16 directory.

To create a Visual Basic script we need to


install the language that is contained in the
Microsoft Visual Studio package. In the
following code I’ve used Visual Basic 6.0. It is
also possible to write the same code from any
application (Word, Excel) that contains the
VBA editor and language integrated. Access to
the Canvas X object model is handled using
type libraries. Adding the Canvas X type
library is done from Project > Refereces in the
Visual Basic IDE (see Fig. 4.). The Canvas.tlb Fig. 4. Adding the Canvas X type library to Visual
Basic.
154

The following code creates an image similar arc1.StartAngle = 270


arc1.SpanAngle = 90
to the one from Fig. 5. The tooth profile is an
aly.CreateArc 90, 102, 4, 18, 270,
arc, if necessary it can be replaced by an 90
involute profile if the proper equations are Set arc2 = aly.CreateArc(106, 102,
programmed for this. 4, 18)
arc2.StartAngle = 90
Dim cv As Canvas.Application arc2.SpanAngle = -90
Dim doc As Canvas.Document
Dim aly As Canvas.Layer ’create line 3
Dim rect As Canvas.CVRectangle aly.CreateLine 94, 102, 106, 102
Dim arc1 As Canvas.CVArc
Dim arc2 As Canvas.CVArc ’select the 3 lines and 2 arcs in
Dim line As Canvas.CVLine order to create a single object based
Dim grp As Canvas.CVGroup on their geometry
Dim obj As Canvas.DrawObject doc.Selection.SelectAll
Dim ext As Canvas.CVExtrude
Dim sel As Canvas.Selection ’group the selected objects in a
single object
’throw an error if the Canvas Set grp = doc.Selection.MakeGroup
application can’t be started
On Error Resume Next ’the resulting object is single
Set cv = GetObject(, tooth of the gear, this has to be
"Canvas.Application") multiplied to form the full gear
If Err Then Set obj = grp.DrawObject
Err.Clear
Set cv = ’replicate the tooth to obtain all
CreateObject("Canvas.Application") the teeth
If Err Then obj.Replicate 8, 45,
MsgBox "Can not conect to Canvas" cvsBottomCenterCorner, 0, 0, 0, 0
Exit Sub
End If ’draw a circle over the teeth
End If aly.CreateOval 47.5, 117.5, 105, 105

’clear errors and make the ’select the teeth and the circle to
application visible combine the to a gear, at this stage
On Error GoTo 0 we have a solid gear with no hole
cv.Visible = True doc.Selection.SelectAll
doc.Selection.Combine
’opend a new illustration Canvas cvsOutlineCombine
document
Set doc = ’create another circle to make a
cv.Documents.Add(cvsIllustrationDocume hole in the gear
nt) aly.CreateOval 80, 150, 40, 40

’get the active layer to start the ’create a new gear by subtracting
model the circle from the gear
Set aly = doc.Selection.SelectAll
cv.ActiveDocument.ActivePage.ActiveLay doc.Selection.Combine
er cvsSubstituteFrontCombine

’create line 1 ’select the gear with hole from the


aly.CreateLine 100, 170, 90, 120 document
Set sel = doc.Selection
’create line 2 sel.SelectAll
aly.CreateLine 100, 170, 110, 120 Set obj = sel.Item(1)
Set arc1 = aly.CreateArc(90, 102, 4,
18) ’extrude the selection to obtain a
solid gear
’create arc 1 and arc 2 as in the Set ext =
VBscript example obj.ConvertToExtrude(cvsParallelStyle)
155

Fig. 5. Spur gear created in Canvas X from Visual Basic.

The following example shows how to create For i = a0 + st To a1 Step pas


a group of lines as a single object based on a set xa1 = r * Sin(i)
ya1 = r * Cos(i)
of equations. The arcCRIS() subroutine creates
an arc with the following parameters: r radius, ’create the line and store a
a0 start angle, a1 end angle on the aly layer in ’ reference in the l variable
the doc document. Set l = aly.CreateLine(xa, ya,
xa1, ya1)
Sub arcCRIS(ByVal r As Double, ByVal
’ add the line to the new selection
a0 As Double, ByVal a1 As Double,
doc.Selection.Add l.DrawObject
ByRef aly As Canvas.Layer, ByRef doc
As Canvas.Document)
xa = xa1
Dim n As Double
ya = ya1
Dim pas As Double
Dim grp As Canvas.CVGroup
Next i
Dim l As Canvas.CVLine
’make a group based on the
’steps when creating the arc
’ last selection
’ from linies
Set grp = doc.Selection.MakeGroup
st = (a1 - a0) / 10#
End Sub
’coordinate of the start point
xa = r * Sin(a0) 4. TOOLS FOR CREATING VECTOR
ya = r * Cos(a0) PATHS BY EQUATIONS
’unselect any previous selections
doc.Selection.DeselectAll From the Path menu, based on the Math
expression 2-D plot menu item, the user can
’draw a set of lines with a create vector paths based on equations
’ line defined by the (xa,ya) (Cartesian or polar) as seen in Figure 6. The
’ (xa1,ya1) points, with the st step
’ from a0 to a1 angles
156

obtained vector path can be used in the


document as a normal one, created by hand.

Fig. 7. Using vector path in Canvas X.

5. REFERENCES

[1] ANTAL, T. A., Mechanism displacement


analysis with AutoLisp in AutoCAD, Acta
Technica Napocensis, Series: Applied
Mathematics and Mechanics, Nr. 45, p.19-24, U.
T. PRESS, ISSN 1221-5872, 2002.
[2] ANTAL, T. A., Surface generation in Catia
v5r11 defined by parametrical equations in
visual basic using Activex automation, Acta
Technica Napocensis, Series: Applied
Fig. 6. Creating vector path in Canvas X based on Mathemathics and Mechanics, Nr. 46, Vol. 2,
equations. p.7-14, ISSN 1221-5872, 2003.
[3] ANTAL, T. A., Solid gear generation in
In Figure 7 such a vector object created with autocad using Activex Automation and Visual
the current pen is filled with ink. Then, the Bind Basic, Acta Technica Napocensis, Series:
Text from the Effects menu is used to adjust the Applied Mathemathics and Mechanics, Nr. 47,
vertical orientation of each character to match Vol. III, p.57-62, ISSN 1221-5872, 2004.
[4] ANTAL, T. A., Visual BASIC pentru ingineri,
the path.
RISOPRINT, Cluj-Napoca, p. 244, ISBN: 973-
656-514-9, 2003.
[5] ***, Canvas X Users Guide, p. 588, Acdsee,
2015.
[6] ***, Canvas Scripting Reference Guide –
Version 6, p.458, Acdsee, 2015.

Programarea lui Canvas X Pro 16 folosind tehnologii de scripting

Rezumat: Lucrarea oferă o scurtă privire de ansamblu asupra produsului software Canvas X Pro 16 pentru ilustrare
vectorială, imagistică, prezentări și editare Web, împreună cu tehnologiile de scripting care pot fi folosite pentru a
programa mediul. Câteva exemple de programare în limbajele VBScript și Visual Basic cu privire la modul de generare
a unei roţi dinţate cilindrice cu dinţi drepţi sunt date pentru a ilustra posibilităţile de utilizare în domeniul ingineriei
mecanice.

ANTAL Tiberiu Alexandru, Professor, dr. eng., Technical University of Cluj-Napoca,


Department of Mechanical System Engineering, antaljr@bavaria.utcluj.ro, 0264-401667, B-
dul Muncii, Nr. 103-105, Cluj-Napoca, ROMANIA.

You might also like