Siemens¶
Siemens shows up across Anvil's stack at three layers: the Sinumerik ONE controller that runs our DVF 5000 machines, Create MyVirtualMachine (CMVM) for building a digital twin of that controller, and the Parasolid geometric-modeling kernel we link against for solid-modeling operations. This page covers the two software products we depend on — Parasolid and CMVM — plus the controller context.
Overview¶
| Website | siemens.com |
| Type | Commercial software/hardware vendor (controller OEM, geometry kernel, CAM/PLM) |
| Relevance | Sinumerik ONE controller (our machines), Create MyVirtualMachine (digital twin), Parasolid (geometry kernel) |
| Status | In use (controller, Parasolid SDK vendored); evaluating (CMVM) |
References¶
- Siemens Parasolid — Geometric modeling kernel
- Sinumerik ONE — Digital-native CNC
- Create MyVirtualMachine — Sinumerik ONE digital twin
- Internal:
anvil-co/parasolid— vendored Parasolid SDK (kernel, Bodyshop, IGES/STEP translators)
Parasolid¶
Parasolid is Siemens' 3D geometric-modeling kernel — the industry-standard solid modeler embedded in many commercial CAD applications. It represents solids, sheets, and wires as boundary-representation (B-rep) bodies and provides operations for building, editing, interrogating, and exchanging them (booleans, blends, sweeps, offsets, healing, faceting, IGES/STEP import/export).
We maintain a vendored copy of the Parasolid SDK in anvil-co/parasolid; other repos in the org link against it. It is third-party SDK content (prebuilt binaries), not source we build.
| Component | What it is | Public API | Version |
|---|---|---|---|
Kernel (base/) |
Geometry & topology modeling | PK_* C API (~1,200 functions) |
v38.1 (v381_rv1000) |
Bodyshop (bodyshop/) |
Import, heal, clean, optimize & inspect imperfect B-rep / mesh data | PSB_* C API |
38.1.125 |
Translators (translators/) |
IGES & STEP file translators | PsIgesApi / PsStepApi (C++) |
29.1.264 |
Working with the vendored SDK
- Binaries are stored with git-LFS — run
git lfs pullafter cloning or you'll only have pointer stubs. - Linux x86-64 only (kernel/bodyshop built with GCC 14, translators with GCC 11).
- A Python wheel (
38.1.151,cp37-abi3) is included. - The HTML docs are ~31k files — don't browse them blind.
Parasolid is only needed where we require true solid-modeling operations.
Create MyVirtualMachine (CMVM)¶
Because the DVF 5000 runs Sinumerik ONE, CMVM is the relevant Siemens digital-twin product for us. It runs the actual Sinumerik ONE controller firmware rather than emulating it, so G-code is interpreted exactly as the physical machine would — real interpolator, look-ahead, and block processing.
CMVM is the engineering tool for building the digital twin — used to create a virtual Sinumerik ONE instance:
- Virtual PLC (S7-1500 based)
- Simulated drives with Safety Integrated
- Full controller configuration (machine data, PLC logic, HMI)
- Used by machine builders to commission machines virtually
Why this matters for AutoCAM
A controller-accurate digital twin lets us validate G-code against real Sinumerik ONE behavior — no emulation gap — before layering physics-based cutting optimization on top later. Geometric/physics simulators (e.g. ModuleWorks) complement it but don't replace controller fidelity.
MyVirtualMachine vs. VNCK
VNCK (Virtual NC Kernel) is the legacy virtual controller for the older Sinumerik 840D sl (discontinued Oct 2024). MyVirtualMachine is its successor for Sinumerik ONE and adds the integrated PLC (S7-1500F), simulated drives, and TIA Portal integration. New work targeting our machines uses MyVirtualMachine.