Beispielskripten: Unterschied zwischen den Versionen
Ralfg (Diskussion | Beiträge) (→Python version:) |
Ralfg (Diskussion | Beiträge) |
||
| Zeile 16: | Zeile 16: | ||
=== Python version: === | === Python version: === | ||
<code> | <code> | ||
| − | + | [https://www.google.com/search?client=safari&rls=en&q=cambam.pixelmaker.eu/pages/phocadownload/scripten/mop-automate.py&ie=UTF-8&oe=UTF-8 mop.automate.py] | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
=== VB-Script Version: === | === VB-Script Version: === | ||
<code>' | <code>' | ||
Version vom 21. April 2013, 14:31 Uhr
MOP Automate VB and Python scripts
This script will automate the process of opening a source file, insert machining operations, set various properties and produce g-code.
These scripts demonstrate:
- opening a CAD file (.dxf in this example)
- drawing some extra shapes into the drawing
- setting machining options
- Call asynchronous CAD functions such as
- Edit -> Join and Edit -> Convert to polyline
- creating a machining operation from objects in a drawing layer
- setting machining operation properties
- saving a drawing and creating g-code
Python version:
VB-Script Version:
'
' mop-automate.vbs
'
sub main
' TO CHANGE...
dim source_file = "C:\CamBam\cbfiles\aluskids.dxf"
dim out_filename = "C:\dump\test.cb"
' Open a source file
' note: the second parameter '1' opens the file synchronously rather than in a worker thread
CamBamUI.MainUI.OpenFile(source_file,1)
' The 'doc' global variable is always the CADFile before any file opens,
' so we create a new varialbe pointing to the newly opened active file...
dim newdoc = CamBamUI.MainUI.ActiveView.CADFile
' draw some shapes...
dim poly = new Polyline()
poly.Add(8,5,0)
poly.Add(22,5,0)
poly.Add(25,15,0)
poly.Add(15,25,0)
poly.Add(5,15,0)
poly.Closed=True
newdoc.Add(poly)
dim circle = new Circle()
circle.Center = new Point3F(-30,15,0)
circle.Diameter=15
newdoc.Add(circle)
' set any machining options required...
newdoc.MachiningOptions.PostProcessor = "Mach3-CutViewer"
newdoc.MachiningOptions.FastPlungeHeight = 0.1
' Select All...
CamBamUI.MainUI.ActiveView.SelectAllVisibleGeometry()
' Convert to polylines...
PolylineUtils.PolyLinesConvert(CamBamUI.MainUI.ActiveView)
' The gui operation runs in a worker process, so wait for the
' thinking message to disapear...
while not CamBamUI.MainUI.ActiveView.CurrentEditMode is nothing
app.Sleep(1)
end while
' Edit - Join
PolylineUtils.JoinPolyLines(CamBamUI.MainUI.ActiveView,0.001)
' wait for the thinking message to disapear...
while not CamBamUI.MainUI.ActiveView.CurrentEditMode is nothing
app.Sleep(1)
end while
' create a profile mop
' Use all the drawing objects from the first layer...
' dim profile = new CamBam.CAM.MOPProfile(newdoc,newdoc.Layers(0).Entities.ToArray())
' Use all the drawing objects from the last layer...
' dim profile = new CamBam.CAM.MOPProfile(newdoc,newdoc.Layers(newdoc.Layers.Count-1).Entities.ToArray())
' Use all the drawing objects from a layer with a specific name...
dim profile = new CamBam.CAM.MOPProfile(newdoc,newdoc.Layers("LAYER_03").Entities.ToArray())
' Set the profile style property...
profile.Style = "cutout"
' Other properties are based on the generic CBValue class
' Some examples of how these properties should be set...
' Note: CBValue(of type) syntax not working in current release
' as extra .dlls need to be referenced in the VB script host.
' user alternative syntax...
dim td = profile.ToolDiameter
td.SetValue(0.8)
profile.ToolDiameter = td
dim io = profile.InsideOutside
io.SetValue(CamBam.CAM.InsideOutsideOptions.Inside)
profile.InsideOutside = io
' add the machine op to the drawing...
CamBamUI.MainUI.InsertMOP(profile)
' save the current drawing...
newdoc.Save(out_filename)
' create g-code output
CamBam.CAM.CAMUtils.GenerateGCodeOutput(view)
end sub