Informatique

Informatique

Ensemble, définissons un système informatique qui vous correspond.  Nous vous garantissons l'utilisation et l'installation des dernières technologies numériques. DIGITAL EST vous conseille et vous accompagne dans le choix, la gestion et la maintenance de votre parc informatique Apple, Pc & Serveur ainsi que dans la sécurisation de vos données.
Réseau & sécurité

Réseau & sécurité

Notre expertise dans l'équipement et la sécurité du réseau d'entreprise, nous permet de vous proposer des solutions relatives à vos besoins.  DIGITAL EST vous conseille et vous accompagne dans le choix, la gestion et la maintenance de vos équipements réseaux, interconnnexion des sites en MPLS & VPN, sécurité firewall.
Téléphonie d'entreprise

Téléphonie d'entreprise

DIGITAL EST, expert en télécommunication, vous permet la mobilité et l'organisation de vos communication internes et externes. Nous vous conseillons et nous vous accompagnons dans le choix, la gestion et la maintenance de la téléphonie Centrex, PBX, IPBX. Convergence Fixe et Mobile. Personnalisation de vos messages musicaux d'entreprise grâce à notre studio d'enregistrement digital-est-studio.com
Opérateur télécom

Opérateur télécom

Vivez une expérience inédite grâce à votre opérateur local DIGITAL EST.  Vous bénéficiez d'une relation unique avec votre interlocuteur, vous permettant ainsi de vous consacrer à votre coeur de métier et à vos clients. DIGITAL EST vous permet de disposer de liens IP Fibre et Xdsl, d'offres mobiles 4G-5G, ainsi que de terminaux mobiles en location.
Site web & mail

Site web & mail

Des solutions web pour l'expression de votre image. Nous vous accompagnons à la définisson de votre communication et procédons au développement et à l'hébergement de votre site internet.  Aussi nous pouvons vous proposer des solutions mail Microsoft Echange spécifiques au monde professionnel. 
Vidéosurveillance

Vidéosurveillance

Bénéficiez des dispositifs de protection Vidéo les plus perfomants, vous assurant la gestion et la sécurité de votre entreprise. Nous coconstruisons avec vous votre cahier des charges sécurité et vous conseillons quant au choix du matériel correspondant. 

Powermill Macro May 2026

Below is a clean, commented Powermill macro (PowerMILL VBA-style macro for Automill / Automation) that demonstrates a useful automation: exporting toolpath summaries for each component in a project to a CSV, and saving a PDF snapshot of each component view. It’s written to be clear, reusable, and safe — adjust paths and options to match your environment.

Note: Back up your project before running macros.

' Powermill Macro: Export toolpath summaries and save component snapshots
' Purpose: For each component in the active project, export a CSV summary of toolpaths
'          and save a PNG snapshot of the component view.
' Usage: Set csvFolder and imgFolder to existing folders. Run from Powermill macro editor.
Option Explicit
Sub Main()
    Dim project As WMProject
    Dim comp As WMComponent
    Dim toolpath As WMToolpath
    Dim csvFolder As String
    Dim imgFolder As String
    Dim csvPath As String
    Dim imgPath As String
    Dim fnum As Integer
    Dim header As String
' ---- USER CONFIG ----
    csvFolder = "C:\Temp\PowermillExports\CSV\"    ' ensure trailing backslash
    imgFolder = "C:\Temp\PowermillExports\Images\"
    header = "Component,Toolpath,Type,ToolName,ToolDia,Feed,Speed,CutTime(seconds)"
    ' ---------------------
' Ensure project loaded
    If Not IsProjectLoaded() Then
        MsgBox "No project loaded. Open a project and try again.", vbExclamation
        Exit Sub
    End If
Set project = GetProject()
' Loop components
    For Each comp In project.Components
        ' Activate component to ensure correct view / data
        comp.Activate
' Prepare file paths (replace invalid filename chars)
        csvPath = csvFolder & SafeFileName(comp.Name) & "_toolpaths.csv"
        imgPath = imgFolder & SafeFileName(comp.Name) & ".png"
' Write CSV header and rows
        fnum = FreeFile
        Open csvPath For Output As #fnum
        Print #fnum, header
For Each toolpath In comp.Toolpaths
            Dim line As String
            line = QuoteCSV(comp.Name) & "," & _
                   QuoteCSV(toolpath.Name) & "," & _
                   QuoteCSV(toolpath.Type) & "," & _
                   QuoteCSV(GetToolName(toolpath)) & "," & _
                   FormatNumber(GetToolDiameter(toolpath), 3) & "," & _
                   FormatNumber(GetFeed(toolpath), 2) & "," & _
                   FormatNumber(GetSpeed(toolpath), 0) & "," & _
                   FormatNumber(GetCutTimeSeconds(toolpath), 1)
            Print #fnum, line
        Next toolpath
Close #fnum
' Save image snapshot
        SaveComponentImage comp, imgPath
Next comp
MsgBox "Export complete: CSVs and images saved.", vbInformation
End Sub
' ---------------- Helper functions ----------------
Function IsProjectLoaded() As Boolean
    On Error Resume Next
    IsProjectLoaded = Not (GetProject() Is Nothing)
    On Error GoTo 0
End Function
Function GetProject() As WMProject
    Set GetProject = Application.Projects.ActiveProject
End Function
Function SafeFileName(name As String) As String
    Dim invalid As Variant, ch As Variant
    invalid = Array("\", "/", ":", "*", "?", """", "<", ">", "|")
    SafeFileName = name
    For Each ch In invalid
        SafeFileName = Replace(SafeFileName, ch, "_")
    Next
End Function
Function QuoteCSV(s As String) As String
    QuoteCSV = """" & Replace(s, """", """""") & """"
End Function
Function GetToolName(tp As WMToolpath) As String
    On Error Resume Next
    If Not tp.Tool Is Nothing Then
        GetToolName = tp.Tool.Name
    Else
        GetToolName = ""
    End If
    On Error GoTo 0
End Function
Function GetToolDiameter(tp As WMToolpath) As Double
    On Error Resume Next
    If Not tp.Tool Is Nothing Then
        GetToolDiameter = tp.Tool.Diameter
    Else
        GetToolDiameter = 0
    End If
    On Error GoTo 0
End Function
Function GetFeed(tp As WMToolpath) As Double
    On Error Resume Next
    GetFeed = tp.Feeds.FeedRate
    On Error GoTo 0
End Function
Function GetSpeed(tp As WMToolpath) As Double
    On Error Resume Next
    GetSpeed = tp.Feeds.SpindleSpeed
    On Error GoTo 0
End Function
Function GetCutTimeSeconds(tp As WMToolpath) As Double
    On Error Resume Next
    ' Many Powermill toolpaths expose CutTime in seconds or minutes depending on API;
    ' try common properties, fallback to 0.
    If HasProperty(tp, "CuttingTime") Then
        GetCutTimeSeconds = tp.CuttingTime
    ElseIf HasProperty(tp, "CutTime") Then
        GetCutTimeSeconds = tp.CutTime
    Else
        GetCutTimeSeconds = 0
    End If
    On Error GoTo 0
End Function
Function HasProperty(obj As Object, propName As String) As Boolean
    On Error Resume Next
    Dim v
    v = CallByName(obj, propName, VbGet)
    HasProperty = (Err.Number = 0)
    Err.Clear
    On Error GoTo 0
End Function
Sub SaveComponentImage(comp As WMComponent, filepath As String)
    On Error Resume Next
    ' Set a standard view, zoom to component, then export image
    Application.View.SetToIsometric
    comp.ZoomTo
    Application.ScreenCapture.SaveAs filepath, 1920, 1080, True  ' PNG, 1920x1080, include background
    On Error GoTo 0
End Sub

Notes and customization tips:

If you want this adapted to a different output (Excel, single combined CSV, or G-code extraction), tell me which format and I’ll modify the macro.

PowerMill macros are essentially the "secret sauce" for high-end CNC programming, allowing you to automate repetitive tasks and create custom workflows using a simple parameter-based scripting

Here is an informative feature breakdown of how they work and why they are essential for power users. 1. The Core Concept: Capture and Replay At its simplest, a macro is a text file (with a extension) that contains a sequence of PowerMill commands.

You don't need to be a programmer to start. You can simply hit

, perform your manual steps (like importing a model, creating a block, or calculating a toolpath), and PowerMill "echoes" those commands into a file. Plain Text: powermill macro

Because they are plain text, you can open them in any editor (like Notepad++ or VS Code) to tweak the logic later. 2. Beyond Basics: Intelligence and Logic

While recording is great for simple tasks, the real power comes when you add

. PowerMill macros support standard programming structures that make them "smart": Variables:

Store values like tool diameters or tolerances to use them later in the script. Loops (FOREACH):

Automatically cycle through every toolpath in a folder or every level in a model to apply a change. Conditionals (IF/ELSE):

Create "decision-making" scripts. For example, "If the tool diameter is greater than 10mm, use a specific feed rate; otherwise, use another." 3. User Interaction You can make macros interactive by building Custom User Forms In-Script Prompts:

command to pop up a message box asking the user for input (e.g., "Enter the finishing allowance"). Input Choices: Below is a clean, commented Powermill macro (PowerMILL

You can create dropdown menus or file selection dialogs so that other machinists can run your automation without ever touching the raw code. 4. Integration with PowerMill Functions

Macros have deep access to PowerMill’s internal data through Parameters

. You can "interrogate" the project to get information that isn't immediately visible, such as: The maximum Z-depth of a specific toolpath. The number of surfaces in a selected level. The exact name of the active workplane. 5. Why Bedaub with Macros? Consistency:

Eliminate human error by ensuring every project follows the exact same setup steps.

Tasks that take 10 minutes of clicking can be reduced to a 2-second button press. Standardization:

Large shops use macros to "lock in" their best practices, ensuring that every programmer uses the same safe rapid heights and coolant settings. basic code template

for a macro that automates a standard setup, or are you looking for tips on an existing script? AI responses may include mistakes. Learn more Notes and customization tips:


Use this to inform the user of progress. MESSAGE WARN "Check the collision results before proceeding."

PowerMill macros transform CAM programming from a manual chore into an automated process. Start by recording simple tasks (tool creation, stock setup), then gradually learn to edit the code. Within weeks, you will save hours of programming time per week.

Next Step: Open PowerMill, click the Record button, and automate your most annoying repetitive task today.


Need a specific macro written? Tell me the task (e.g., "create a macro that does a rest rough with a 6mm tool"), and I can write the code for you.

You can read external data to drive your macro. For example, a CSV list of holes and coordinates.

FILE OPEN "C:\data\holes.csv" FOR READ AS read_id
WHILE NOT EOF(read_id) 
    $line = FILE READLINE read_id
    $X = EXTRACT($line, 1, ",")
    $Y = EXTRACT($line, 2, ",")
    CREATE HOLE ; "Hole_$X" CIRCLE $X $Y 0
FILE CLOSE read_id

Even expert programmers write buggy macros. Here is how to fix them.

At its core, a PowerMill macro is a text file (usually with the .mac extension) containing a list of PowerMill commands. When you "run" the macro, PowerMill reads these commands line by line, executing them as if a user were typing them into the command line.

powermill macropowermill macro

Notre secteur

Autres régions : n'hésitez pas à faire une demande de devis afin que nous puissions étudier votre projet.