{"id":1031,"date":"2026-09-09T10:51:05","date_gmt":"2026-09-09T08:51:05","guid":{"rendered":"https:\/\/macromillcnc.com\/?page_id=1031"},"modified":"2026-09-09T17:48:58","modified_gmt":"2026-09-09T15:48:58","slug":"v-pulley-groove-generator-simulator-demo-no-g-code-generation","status":"publish","type":"page","link":"https:\/\/macromillcnc.com\/v-pulley-groove-generator-simulator-demo-no-g-code-generation\/","title":{"rendered":"V-Pulley Groove Generator &amp; Simulator Demo No G Code Generation"},"content":{"rendered":"<main class=\"mmvpg-app mmec-app\"><div class=\"mmec-shell\">\n<header class=\"mmec-topbar\">\n  <div class=\"mmec-brand\">\n    <img decoding=\"async\" class=\"mmec-brand-logo\" src=\"https:\/\/i0.wp.com\/macromillcnc.com\/wp-content\/uploads\/2026\/08\/ChatGPT-Image-Aug-31-2026-04_42_58-AM.png?resize=2172%2C724&amp;ssl=1\" alt=\"MACROMILL CNC\">\n    <div><small>MACROMILL CNC<\/small><strong>V-PULLEY GROOVE GENERATOR &amp; SIMULATOR<\/strong><small>PARAMETRIC GEOMETRY \u00b7 LIVE MACHINING SIMULATION \u00b7 CNC CODE GENERATION<\/small><\/div>\n  <\/div>\n  <div class=\"mmec-top-right\"><div class=\"mmec-whatsapp-links\"><a href=\"https:\/\/chat.whatsapp.com\/Htae97asBiD14QiwMXjGJA\" target=\"_blank\" rel=\"noopener\"><img class=\"mmec-whatsapp-icon\" alt=\"\">Join WhatsApp group<\/a><a href=\"https:\/\/wa.me\/27823701440\" target=\"_blank\" rel=\"noopener\"><img class=\"mmec-whatsapp-icon\" alt=\"\">Chat on WhatsApp<\/a><\/div><div class=\"mmec-status is-idle\" id=\"machineStatus\"><i><\/i> Stopped<\/div><div class=\"mmec-usage-top\" id=\"usageTop\">Public simulator<\/div><\/div>\n<\/header>\n\n<div class=\"mmec-workspace\">\n<section class=\"mmec-controls mmec-glass\">\n  <div class=\"mmec-section-tag\">V-pulley configuration<\/div>\n  <h1>V-Pulley Groove Generator &amp; Simulator<\/h1>\n  <p class=\"mmec-lede\">Parametric multi-groove V-pulley machining with full-retract peck roughing, finished mirrored flanks, and final part-off. X uses diameter programming; Z0 is the front face and negative Z is toward the chuck.<\/p>\n  <div class=\"mmec-field-grid\">\n    \n    <div class=\"mmec-group-label\">Pulley geometry<\/div>\n    <div class=\"mmec-field\"><label for=\"pulleyOD\">Pulley outer diameter<\/label><input id=\"pulleyOD\" type=\"number\" value=\"80\" min=\"0.1\" step=\"0.1\"><\/div>\n    <div class=\"mmec-field\"><label for=\"rootDiameter\">Groove root diameter<\/label><input id=\"rootDiameter\" type=\"number\" value=\"50\" min=\"0.1\" step=\"0.1\"><\/div>\n    <div class=\"mmec-field\"><label for=\"grooveBottomWidth\">Groove bottom width<\/label><input id=\"grooveBottomWidth\" type=\"number\" value=\"8\" min=\"0.01\" step=\"0.1\"><\/div>\n    <div class=\"mmec-field\"><label for=\"includedAngle\">V included angle<\/label><input id=\"includedAngle\" type=\"number\" value=\"43.6\" min=\"0.1\" max=\"179.9\" step=\"0.1\"><\/div>\n    <div class=\"mmec-field\"><label for=\"firstGrooveCenterZ\">First groove center Z<\/label><input id=\"firstGrooveCenterZ\" type=\"number\" value=\"-25\" step=\"0.1\"><\/div>\n    <div class=\"mmec-field\"><label for=\"grooveCount\">Number of V grooves<\/label><input id=\"grooveCount\" type=\"number\" value=\"3\" min=\"1\" step=\"1\"><\/div>\n    <div class=\"mmec-field\"><label for=\"centerSpacing\">Center-to-center Z spacing<\/label><input id=\"centerSpacing\" type=\"number\" value=\"30\" min=\"0.1\" step=\"0.1\"><\/div>\n    <div class=\"mmec-field\"><label for=\"stockLength\">Stock length (simulator)<\/label><input id=\"stockLength\" type=\"number\" value=\"130\" min=\"0.1\" step=\"0.1\"><\/div>\n    <div class=\"mmec-group-label\">Tool<\/div>\n    <div class=\"mmec-field\"><label for=\"toolWidth\">Grooving \/ parting tool width<\/label><input id=\"toolWidth\" type=\"number\" value=\"6\" min=\"0.01\" step=\"0.1\"><\/div>\n    <div class=\"mmec-field\"><label for=\"cornerRadius\">Insert corner radius<\/label><input id=\"cornerRadius\" type=\"number\" value=\"2.5\" min=\"0\" step=\"0.01\"><\/div>\n    <div class=\"mmbt-dxf-insert-card\">\n      <div class=\"mmbt-dxf-insert-head\">\n        <div>\n          <div class=\"mmbt-dxf-insert-title\">GROOVING \/ PARTING TOOL<\/div>\n          <div class=\"mmbt-dxf-insert-subtitle\">STRAIGHT FLAT-WIDTH INSERT<\/div>\n        <\/div>\n        <div class=\"mmbt-dxf-badge\">LIVE GEOMETRY<\/div>\n      <\/div>\n\n      <div class=\"mmbt-dxf-stage\">\n        <svg id=\"insertParametricOverlay\"\n             class=\"mmbt-dxf-overlay\"\n             viewBox=\"0 0 600 300\"\n             preserveAspectRatio=\"xMidYMid meet\"><\/svg>\n      <\/div>\n\n      <div id=\"insertDxfStatus\" class=\"mmbt-dxf-status\">\n        ACTIVE CUTTING SIDE \u00b7 VALID\n      <\/div>\n\n      <div class=\"mmbt-insert-3d-card\">\n        <div class=\"mmbt-insert-3d-head tool-preview-head\">\n          <div class=\"mmbt-insert-3d-title tool-preview-title\">\n            <strong>3D GROOVING TOOL PREVIEW<\/strong>\n            <span>LIVE FLAT-WIDTH INSERT GEOMETRY<\/span>\n          <\/div>\n          <div class=\"mmbt-insert-3d-badge tool-preview-badge\">INTERACTIVE<\/div>\n        <\/div>\n        <div\n          id=\"insert3dPreview\"\n          class=\"mmbt-insert-3d-stage\">\n        <\/div>\n        <div class=\"mmbt-insert-3d-note\" id=\"insert3dNote\">\n          Drag to rotate \u00b7 Scroll to zoom\n        <\/div>\n      <\/div>\n    <\/div>\n    <div class=\"mmbt-profile-card\" id=\"mmbtProfileCard\">\n      <div class=\"mmbt-profile-head\">\n        <div class=\"mmbt-profile-title-wrap\">\n          <div class=\"mmbt-profile-title\">V-PULLEY GROOVE PROFILE<\/div>\n          <div class=\"mmbt-profile-subtitle\">LIVE PULLEY GEOMETRY<\/div>\n        <\/div>\n        <div class=\"mmbt-profile-pill\" id=\"mmbtProfilePill\">PROFILE VIEW<\/div>\n      <\/div>\n      <div class=\"mmbt-profile-stage\" id=\"buttressProfileSvgStage\"><\/div>\n      <div class=\"mmbt-profile-geometry-summary\" id=\"mmbtProfileGeometrySummary\">\n        <div class=\"mmbt-geo-cell\">\n          <span class=\"mmbt-geo-label\">BOTTOM WIDTH<\/span>\n          <strong class=\"mmbt-geo-value\" id=\"mmbtGeoGrooveWidth\">8.000 mm<\/strong>\n        <\/div>\n        <div class=\"mmbt-geo-cell\">\n          <span class=\"mmbt-geo-label\">INCLUDED ANGLE<\/span>\n          <strong class=\"mmbt-geo-value\" id=\"mmbtGeoGrooveRadius\">43.600\u00b0<\/strong>\n        <\/div>\n        <div class=\"mmbt-geo-cell\">\n          <span class=\"mmbt-geo-label\">TOOL WIDTH<\/span>\n          <strong class=\"mmbt-geo-value\" id=\"mmbtGeoToolWidth\">6.000 mm<\/strong>\n        <\/div>\n        <div class=\"mmbt-geo-cell\">\n          <span class=\"mmbt-geo-label\">GROOVE COUNT<\/span>\n          <strong class=\"mmbt-geo-value\" id=\"mmbtGeoToolRadius\">3<\/strong>\n        <\/div>\n        <div class=\"mmbt-geo-cell\">\n          <span class=\"mmbt-geo-label\">OUTER DIAMETER<\/span>\n          <strong class=\"mmbt-geo-value\" id=\"mmbtGeoMajor\">80.000 mm<\/strong>\n        <\/div>\n        <div class=\"mmbt-geo-cell\">\n          <span class=\"mmbt-geo-label\">ROOT DIAMETER<\/span>\n          <strong class=\"mmbt-geo-value\" id=\"mmbtGeoMinor\">50.000 mm<\/strong>\n        <\/div>\n        <div class=\"mmbt-geo-cell\">\n          <span class=\"mmbt-geo-label\">RADIAL DEPTH<\/span>\n          <strong class=\"mmbt-geo-value\" id=\"mmbtGeoRadialDepth\">15.000 mm<\/strong>\n        <\/div>\n        <div class=\"mmbt-geo-cell\">\n          <span class=\"mmbt-geo-label\">THEORETICAL TOP WIDTH<\/span>\n          <strong class=\"mmbt-geo-value\" id=\"mmbtGeoTopWidth\">19.999 mm<\/strong>\n        <\/div>\n        <div class=\"mmbt-geo-cell\">\n          <span class=\"mmbt-geo-label\">CENTER SPACING<\/span>\n          <strong class=\"mmbt-geo-value\" id=\"mmbtGeoPitch\">30.000 mm<\/strong>\n        <\/div>\n      <\/div>\n      <div class=\"mmbt-profile-status\" id=\"buttressProfileStatus\">PROFILE READY<\/div>\n    <\/div>\n    <div class=\"mmec-group-label\">V-groove roughing<\/div>\n    <div class=\"mmec-field\"><label for=\"radialPeck\">V groove radial peck<\/label><input id=\"radialPeck\" type=\"number\" value=\"4\" min=\"0.01\" step=\"0.1\"><\/div>\n    <div class=\"mmec-field\"><label for=\"fullRadialClearance\">Full radial clearance<\/label><input id=\"fullRadialClearance\" type=\"number\" value=\"6\" min=\"0\" step=\"0.1\"><\/div>\n    <div class=\"mmec-field\"><label for=\"rapidReturnGap\">V rapid return gap radial<\/label><input id=\"rapidReturnGap\" type=\"number\" value=\"2\" min=\"0\" step=\"0.1\"><\/div>\n    <div class=\"mmec-field\"><label for=\"roughZStep\">Rough Z step<\/label><input id=\"roughZStep\" type=\"number\" value=\"3\" min=\"0.01\" step=\"0.1\"><\/div>\n    <div class=\"mmec-field\"><label for=\"finishStockRadial\">Finish stock radial<\/label><input id=\"finishStockRadial\" type=\"number\" value=\"0.8\" min=\"0\" step=\"0.1\"><\/div>\n    <div class=\"mmec-group-label\">V-groove feeds \/ RPM<\/div>\n    <div class=\"mmec-field\"><label for=\"roughFeed\">V rough feed (mm\/min)<\/label><input id=\"roughFeed\" type=\"number\" value=\"70\" min=\"0.1\" step=\"1\"><\/div>\n    <div class=\"mmec-field\"><label for=\"finishFeed\">V finish feed (mm\/min)<\/label><input id=\"finishFeed\" type=\"number\" value=\"50\" min=\"0.1\" step=\"1\"><\/div>\n    <div class=\"mmec-field\"><label for=\"roughRPM\">V rough RPM<\/label><input id=\"roughRPM\" type=\"number\" value=\"900\" min=\"1\" step=\"10\"><\/div>\n    <div class=\"mmec-field\"><label for=\"finishRPM\">V finish RPM<\/label><input id=\"finishRPM\" type=\"number\" value=\"700\" min=\"1\" step=\"10\"><\/div>\n    <div class=\"mmec-group-label\">Part-off<\/div>\n    <div class=\"mmec-field\"><label for=\"partOffEnabled\">Part-off<\/label><select id=\"partOffEnabled\"><option value=\"on\" selected>ON<\/option><option value=\"off\">OFF<\/option><\/select><\/div>\n    <div class=\"mmec-field partoff-param\"><label for=\"partOffZ\">Part-off Z position<\/label><input id=\"partOffZ\" type=\"number\" value=\"-105\" step=\"0.1\"><\/div>\n    <div class=\"mmec-field partoff-param\"><label for=\"partOffFinalX\">Part-off final X<\/label><input id=\"partOffFinalX\" type=\"number\" value=\"0\" min=\"0\" step=\"0.1\"><\/div>\n    <div class=\"mmec-field partoff-param\"><label for=\"partOffRadialPeck\">Part-off radial peck<\/label><input id=\"partOffRadialPeck\" type=\"number\" value=\"1.5\" min=\"0.01\" step=\"0.1\"><\/div>\n    <div class=\"mmec-field partoff-param\"><label for=\"partOffReturnGap\">Part-off return gap radial<\/label><input id=\"partOffReturnGap\" type=\"number\" value=\"2\" min=\"0\" step=\"0.1\"><\/div>\n    <div class=\"mmec-field partoff-param\"><label for=\"partOffFeed\">Part-off feed (mm\/min)<\/label><input id=\"partOffFeed\" type=\"number\" value=\"40\" min=\"0.1\" step=\"1\"><\/div>\n    <div class=\"mmec-field partoff-param\"><label for=\"partOffRPM\">Part-off RPM<\/label><input id=\"partOffRPM\" type=\"number\" value=\"700\" min=\"1\" step=\"10\"><\/div>\n    <details class=\"mmec-field full\"><summary>Advanced \/ compensation settings<\/summary>\n      <div class=\"mmec-field-grid\">\n        <div class=\"mmec-field\"><label for=\"roughZComp\">Rough Z comp<\/label><input id=\"roughZComp\" type=\"number\" value=\"0.108\" step=\"0.001\"><\/div>\n        <div class=\"mmec-field\"><label for=\"finishZComp\">Finish Z comp<\/label><input id=\"finishZComp\" type=\"number\" value=\"0.323\" step=\"0.001\"><\/div>\n        <div class=\"mmec-field\"><label for=\"finishODComp\">Finish OD comp<\/label><input id=\"finishODComp\" type=\"number\" value=\"0.629\" step=\"0.001\"><\/div>\n      <\/div>\n    <\/details>\n    <div class=\"mmec-group-label\">Calculated information<\/div>\n    <div class=\"mmbt-plan-summary\" id=\"machiningPlanSummary\" aria-live=\"polite\"><\/div>\n  <\/div>\n  <div class=\"mmec-run-lock\" id=\"runLockMessage\" role=\"alert\" hidden><\/div>\n  <button class=\"mmec-primary\" id=\"updateSimulation\" type=\"button\">Update simulation<\/button>\n  \n  <div class=\"mmec-compat\" id=\"compat\" aria-live=\"polite\"><\/div>\n<\/section>\n\n<section class=\"mmec-viewport mmec-glass\" id=\"viewport\">\n  <div class=\"mmec-hud\">\n    <div class=\"mmec-hud-group\">\n      <div class=\"mmec-chip mmec-chip-xlow\">OD <b id=\"hudMajor\">80.000<\/b><\/div>\n      <div class=\"mmec-chip mmec-chip-xhigh\">ROOT <b id=\"hudMinor\">50.000<\/b><\/div>\n      <div class=\"mmec-chip mmec-chip-lead\">ANGLE <b id=\"hudPitch\">43.600\u00b0<\/b><\/div>\n    <\/div>\n    <div class=\"mmec-hud-group mmec-live-position\" aria-label=\"Live lathe position\">\n      <div class=\"mmec-chip\"><b id=\"hudStage\">RAW STOCK<\/b><\/div>\n      <div class=\"mmec-chip\">X <b id=\"hudX\">65.000<\/b><\/div>\n      <div class=\"mmec-chip\">Z <b id=\"hudZ\">0.000<\/b><\/div>\n    <\/div>\n  <\/div>\n  <div class=\"mmec-view-tools\" aria-label=\"3D view controls\">\n    <button type=\"button\" class=\"active\" data-view=\"iso\" title=\"ISO View\" aria-label=\"ISO View\"><img class=\"mmec-view-icon\" data-icon=\"iso\" alt=\"\"><\/button>\n    <button type=\"button\" data-view=\"front\" title=\"Front View\" aria-label=\"Front View\"><img class=\"mmec-view-icon\" data-icon=\"front\" alt=\"\"><\/button>\n    <button type=\"button\" data-view=\"back\" title=\"Back View\" aria-label=\"Back View\"><img class=\"mmec-view-icon\" data-icon=\"back\" alt=\"\"><\/button>\n    <button type=\"button\" data-view=\"right\" title=\"Right View\" aria-label=\"Right View\"><img class=\"mmec-view-icon\" data-icon=\"right\" alt=\"\"><\/button>\n    <button type=\"button\" id=\"panMode\" title=\"Pan On\/Off\" aria-label=\"Pan On\/Off\" aria-pressed=\"false\"><img class=\"mmec-view-icon\" data-icon=\"pan\" alt=\"\"><\/button>\n    <button type=\"button\" id=\"tailstockToggle\" class=\"active\" aria-label=\"Show or hide tailstock\" aria-pressed=\"true\" title=\"Tailstock\"><img class=\"mmec-view-icon\" data-icon=\"tailstock\" alt=\"\"><\/button>\n    <button type=\"button\" id=\"chuckClampButton\" aria-label=\"Clamp chuck jaws\" aria-pressed=\"false\" title=\"Clamp\"><img class=\"mmec-view-icon\" data-icon=\"clamp\" alt=\"\"><\/button>\n    <button type=\"button\" id=\"chuckUnclampButton\" class=\"active\" aria-label=\"Unclamp chuck jaws\" aria-pressed=\"true\" title=\"Unclamp\"><img class=\"mmec-view-icon\" data-icon=\"unclamp\" alt=\"\"><\/button>\n  <\/div>\n  <div class=\"mmec-play-lock\" id=\"playLockMessage\" hidden>CLAMP STOCK TO START MACHINING<\/div>\n  <div class=\"mmec-transport\"><button id=\"playPause\" class=\"mmec-play\" type=\"button\" aria-label=\"Play animation\">\u25b6<\/button><button id=\"nextPass\" type=\"button\" aria-label=\"Next pass\">\u23ed<\/button><button id=\"resetSimulation\" type=\"button\" aria-label=\"Reset simulation\">\u21ba<\/button><label for=\"simSpeed\">Speed<\/label><input id=\"simSpeed\" type=\"range\" min=\"0.25\" max=\"8\" value=\"1\" step=\"0.25\"><output id=\"speedValue\">1\u00d7<\/output><\/div>\n<\/section>\n<\/div>\n\n\n<!--MM_PUBLIC_START-->\n<section class=\"mmbt-upgrade mmec-glass\" id=\"mmbtUpgradePanel\">\n  <div class=\"mmbt-upgrade-kicker\">CNC AUTOMATION PRO<\/div>\n  <h2>Get access to all member apps with CNC Automation Pro<\/h2>\n  <p>Get access to all member apps with CNC Automation Pro.<\/p>\n  \n  <ul class=\"mmbt-upgrade-benefits\">\n    <li>Controller-specific CNC code<\/li>\n    <li>Parametric program with editable variables at the top<\/li>\n    <li>Full extended G-code<\/li>\n    <li>Copy and download .NC programs<\/li>\n    <li>Multi-controller support<\/li>\n    <li>CNC Automation Pro training and resources<\/li>\n  <\/ul>\n  <a class=\"mmbt-upgrade-btn\" href=\"https:\/\/payhip.com\/b\/9IpYU\" target=\"_blank\" rel=\"noopener noreferrer\">Join CNC Automation Pro<\/a>\n<\/section>\n<!--MM_PUBLIC_END-->\n<\/div><\/main>\n\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":279632934,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_wpcom_ai_launchpad_about_page":false,"_wpcom_ai_launchpad_gallery_page":false,"_wpcom_ai_launchpad_contact_page":false,"_wpcom_ai_launchpad_events_page":false,"_wpcom_ai_launchpad_video_page":false,"_wpcom_ai_launchpad_portfolio_piece":false,"footnotes":""},"class_list":["post-1031","page","type-page","status-publish","hentry"],"jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/PhcvZP-gD","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/macromillcnc.com\/wp-json\/wp\/v2\/pages\/1031","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/macromillcnc.com\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/macromillcnc.com\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/macromillcnc.com\/wp-json\/wp\/v2\/users\/279632934"}],"replies":[{"embeddable":true,"href":"https:\/\/macromillcnc.com\/wp-json\/wp\/v2\/comments?post=1031"}],"version-history":[{"count":2,"href":"https:\/\/macromillcnc.com\/wp-json\/wp\/v2\/pages\/1031\/revisions"}],"predecessor-version":[{"id":1048,"href":"https:\/\/macromillcnc.com\/wp-json\/wp\/v2\/pages\/1031\/revisions\/1048"}],"wp:attachment":[{"href":"https:\/\/macromillcnc.com\/wp-json\/wp\/v2\/media?parent=1031"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}