{"id":255006,"date":"2021-03-04T08:43:18","date_gmt":"2021-03-04T13:43:18","guid":{"rendered":"https:\/\/apimetrology.com\/?page_id=255006"},"modified":"2026-10-13T19:36:02","modified_gmt":"2026-10-13T23:36:02","slug":"nouvelle-page-daccueil-divi","status":"publish","type":"page","link":"https:\/\/apimetrology.com\/fr\/","title":{"rendered":"M\u00e9trologie API Mesure de pr\u00e9cision"},"content":{"rendered":"<div class=\"et_pb_section_0 et_pb_section et_section_regular et_block_section api-home-carousel-hero\">\n<div class=\"et_pb_row_0 et_pb_row et_block_row\">\n<div class=\"et_pb_column_0 et_pb_column et_pb_column_4_4 et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough\">\n<div class=\"et_pb_code_0 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><!-- ==============================================================\n     API METROLOGY \u2014 HERO (DESKTOP)\n     Forked from the Venom Doll Plushies hero, 2026-08-16.\n     Paste this whole block into one Divi Code module.\n     In Divi, set this module to show on Desktop only.\n\n     ---------------------------------------------------------------\n     BEFORE THIS GOES LIVE, UPLOAD THE ASSETS\n\n     Every image below is a real file, exported from the canonical\n     API image library and staged next to this file in .\/api-assets\/.\n     Upload all six to the Media Library, then replace the matching\n     REPLACE- URL. WordPress will file them under a year\/month folder,\n     so the final path looks like\n       https:\/\/apimetrology.com\/wp-content\/uploads\/2026\/08\/api-ladar.webp\n\n       api-ladar.webp        306 KB   Dynamic 9D LADAR cut-out\n       api-radian-pro.webp   238 KB   Radian Pro cut-out\n       api-ilt.webp           76 KB   iLT cut-out\n       api-xd-laser.webp      47 KB   XD Laser cut-out\n       api-bg-red.webp        53 KB   red faceted brand background\n       api-bg-white.webp      45 KB   white\/grey triangle brand background\n\n     The four product URLs live on the <img> tags in \"PRODUCT LIST\".\n     The two background URLs live ONCE each, as --bg-red \/ --bg-white\n     at the top of the stylesheet. Nothing else references an image.\n\n     The logo is inline SVG (the red vector logo from the library), so\n     it needs no upload and recolours itself per slide \u2014 see --logo-ink.\n     ---------------------------------------------------------------\n     HOW THE BACKGROUNDS WORK\n\n     Two brand patterns alternate: red, white, red, white. To stop the\n     white slides looking like the same picture loading twice, every\n     slide gets its OWN framing of the pattern \u2014 a different zoom,\n     rotation and crop \u2014 declared on the product <img> as\n\n       data-amh-bg=\"red|white\"\n       data-amh-view=\"<zoom> <rotation-deg> <crop-x> <crop-y>\"\n\n     One background layer is built per slide and holds that framing for\n     good; slides cross-fade between layers, so nothing ever slides or\n     re-zooms on screen. The layer is drawn 160% oversize, which is what\n     lets it rotate without the corners pulling away from the edges \u2014\n     keep rotations under about 20 degrees of horizontal or of 180.\n\n     data-amh-bg also sets the type colour: the \"white\" pattern flips\n     the whole hero to dark type, a red logo and a red pill.\n     ---------------------------------------------------------------\n     TO ADD, REMOVE OR REORDER A PRODUCT\n     Edit the <img> list in \"PRODUCT LIST\", then the matching\n     .amh-slide-copy block. Slide N of the list pairs with\n     data-slide=\"N\" (counting from 0). The dots, the backgrounds and\n     the preloading all rebuild themselves from the list. Give any new\n     slide its own data-amh-view so it does not repeat its neighbours.\n\n     Slide copy is DRAFT and needs marketing\/engineering sign-off.\n\n     The only hard number quoted is the LADAR's 20,000 points\/second,\n     which is confirmed in the API brochure notes, as is \"non-contact\".\n\n     What DOES need a decision before this ships is the comparative\n     language, because three of the four slides now make a claim about\n     rank rather than about capability:\n       Radian Pro  \"the tightest tolerances API builds\"\n       iLT         \"the lightest, most portable tracker API makes\"\n       XD Laser    \"tighter than the day it left the factory\"\n     These are scoped to API's own range on purpose - \"the tightest\n     available\" or \"nothing else on the market like it\" widens them into\n     claims about competitors, which is a legal question, not a copy one.\n     Widen them only with sign-off.\n\n     The &nbsp; inside the descriptions are DELIBERATE, not stray markup.\n     They tie a phrase together so the browser cannot leave the first word\n     of it stranded at the end of a line - \"...a second - no\" with the\n     \"targets\" orphaned onto the next line, for instance. Using them rather\n     than a hard <br> means the intended break survives a different column\n     width, a longer translation or a font that loads late. Rewriting a\n     description? Put them back around any pair that should not split.\n     ---------------------------------------------------------------\n     ============================================================== -->\n\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\" \/>\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin \/>\n<link\n  href=\"https:\/\/fonts.googleapis.com\/css2?family=Anton&family=Inter:wght@400;500;600;700;800&display=swap\"\n  rel=\"stylesheet\"\n\/>\n\n<!-- Starts the opening slide downloading immediately \u2014 the product is the\n     largest thing on screen, so this is what Google measures for page speed,\n     and its background is painted behind it.\n     IF YOU REORDER THE LIST BELOW, change these to match the FIRST slide. -->\n<link\n  rel=\"preload\"\n  as=\"image\"\n  fetchpriority=\"high\"\n  href=\"https:\/\/apimetrology.com\/wp-content\/uploads\/2026\/09\/api-ladar.webp\"\n\/>\n<link\n  rel=\"preload\"\n  as=\"image\"\n  href=\"https:\/\/apimetrology.com\/wp-content\/uploads\/2026\/09\/api-bg-red-scaled.webp\"\n\/>\n\n<div id=\"amh-hero-desktop\">\n  <div class=\"amh-stage\">\n    <!-- one layer per slide, built by the script from the PRODUCT LIST -->\n    <div class=\"amh-bg\" aria-hidden=\"true\"><\/div>\n    <!-- holds the pattern back just enough for the type and the products to\n         separate from it; one layer per tone, cross-faded -->\n    <div class=\"amh-scrim\" aria-hidden=\"true\"><\/div>\n    <div class=\"amh-grain\"><\/div>\n\n    <!-- These three lines are tuned to CHARACTER COUNT, not just wording. A\n         script letter-spaces the superline and the subline to span the giant\n         word exactly, so a giant word much longer than ~9 characters pushes\n         all three past the edges of the screen. Keep the ghost word short\n         (METROLOGY is 9; the original design was built around 8) and keep the\n         superline near 40-50 characters. -->\n    <h1 class=\"amh-superline\"><span class=\"amh-superline-text\" aria-hidden=\"true\">&nbsp;<\/span><span class=\"amh-sr\">Syst\u00e8mes de m\u00e9trologie portables API Metrology<\/span><\/h1>\n    <div class=\"amh-ghost\" aria-hidden=\"true\"><span class=\"amh-ghost-word\">M\u00c9TROLOGIE<\/span><\/div>\n    <div class=\"amh-subline\" aria-hidden=\"true\"><span class=\"amh-subline-text\">Rien n\u2019\u00e9chappe \u00e0 la mesure<\/span><\/div>\n\n    <div class=\"amh-topbar\">\n      <!-- &nbsp; keep the key phrase from breaking across lines -->\n      <div class=\"amh-brand\">\n        <a class=\"amh-logo-link\" href=\"\/fr\/\" aria-label=\"Accueil API Metrology\">\n          <!-- The library's red vector logo, inlined so it can recolour per\n               slide: white on the red pattern, red on the white one. Its\n               viewBox carries the aspect ratio, so the hero cannot shift. -->\n          <svg class=\"amh-logo\" viewBox=\"0 0 1129.31 447.24\" role=\"img\" aria-label=\"API Metrology\" fill=\"currentColor\">\n            <path d=\"M954.42,402.54v.81c0-.14.01-.27.01-.41s0-.27-.01-.41h0Z\"\/>\n            <path d=\"M1117.35,15c.15,0,.31,0,.46.01h11.12s.38-15.01.38-15.01h-215.57v15h11.6c16.06,0,29.08,13.02,29.08,29.08v.16h0v358.29c0,.14.01.27.01.41s0,.27-.01.41v.36h0c-.41,15.71-13.26,28.31-29.06,28.31h-11.6v15.21h215.19v-15.21h-11.58c-15.82,0-28.68-12.63-29.07-28.36l-.02-.02V44.78l.02-.02c0-.23-.02-.45-.02-.68,0-16.06,13.02-29.08,29.08-29.08h-.01Z\"\/>\n            <path d=\"M866.1,0h-509.42c0,12.72-2.17,15-2.17,15,0,0-333.39,401.09-340.83,409.28S0,432.03,0,432.03v15.21h227.59v-15.21c-27.01,0-57.32-38.42-40.99-67s47.08-64.5,91.33-101.75,195.75-56.75,195.75-56.75v196.7c0,.07,0,.14-.01.21-.27,15.83-13.18,28.58-29.07,28.58h-11.67v15.21h215.25v-15.21h-11.58c-15.92,0-28.84-12.79-29.07-28.65,0-.03-.01-.06-.01-.06v-204.54c56.92-3.17,149.42-20.5,188.58-31.17,39.17-10.67,128.83-49.67,128.83-101.33S866.1,0,866.1,0ZM593.26,153.28c-160.33,13.33-236.67,26-255.33,42L466.93,30.53h6.75v115.75s57.92-6.25,133.83-10.75v-64.5s-6.33-42.38,100.67-42.38c31.08,0,87.92,15.12,87.92,42.38s-42.5,68.92-202.83,82.25h0Z\"\/>\n            <path d=\"M473.68,402.87v.15-.14h0Z\"\/>\n          <\/svg>\n        <\/a>\n      <\/div>\n\n      <!-- drop schedule \/ scarcity -->\n      <div class=\"amh-drop\">\n        <a class=\"amh-drop-pill\" href=\"\/fr\/contacter-api-metrology\/\">\n          <span class=\"amh-drop-star\" aria-hidden=\"true\">\u2b51<\/span>\n          R\u00e9servez une d\u00e9mo dans votre atelier\n        <\/a>\n        <span class=\"amh-drop-note\">Parlez-nous de votre besoin. Nous vous aiderons \u00e0 d\u00e9finir la bonne m\u00e9thode de mesure.<\/span>\n      <\/div>\n    <\/div>\n\n    <!-- ================= PRODUCT LIST ================= -->\n    <div class=\"amh-carousel\">\n      <img decoding=\"async\" data-src=\"https:\/\/apimetrology.com\/wp-content\/uploads\/2026\/09\/api-ladar.webp\" alt=\"Dynamic 9D LADAR &mdash; syst\u00e8me de mesure de pr\u00e9cision API Metrology\" data-amh-bg=\"red\" data-amh-view=\"1.00 0 50% 46%\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 904px; --smush-placeholder-aspect-ratio: 904\/1965;\" \/>\n      <img decoding=\"async\" data-src=\"https:\/\/apimetrology.com\/wp-content\/uploads\/2026\/09\/api-radian-pro.webp\" alt=\"Radian Pro &mdash; syst\u00e8me de mesure de pr\u00e9cision API Metrology\" data-amh-bg=\"white\" data-amh-view=\"1.12 178 16% 72%\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 888px; --smush-placeholder-aspect-ratio: 888\/1866;\" \/>\n      <img decoding=\"async\" data-src=\"https:\/\/apimetrology.com\/wp-content\/uploads\/2026\/09\/api-ilt.webp\" alt=\"iLT &mdash; syst\u00e8me de mesure de pr\u00e9cision API Metrology\" data-amh-bg=\"red\" data-amh-view=\"1.38 -9 79% 28%\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 597px; --smush-placeholder-aspect-ratio: 597\/1141;\" \/>\n      <img decoding=\"async\" data-src=\"https:\/\/apimetrology.com\/wp-content\/uploads\/2026\/09\/api-xd-laser.webp\" alt=\"XD Laser &mdash; syst\u00e8me de mesure de pr\u00e9cision API Metrology\" data-amh-bg=\"white\" data-amh-view=\"1.95 6 86% 20%\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 800px; --smush-placeholder-aspect-ratio: 800\/728;\" \/>\n    <\/div>\n    <!-- =============== END PRODUCT LIST =============== -->\n\n    <div class=\"amh-copy\">\n      <div class=\"amh-slide-copy is-active\" data-slide=\"0\">\n        <p class=\"amh-title\">Dynamic 9D LADAR<\/p>\n        <p class=\"amh-body\">Num\u00e9risez sans contact \u00e0 20 000 points par seconde : sans cible, sans palpeur, sans avoir \u00e0 grimper sur la pi\u00e8ce.<\/p>\n        <p class=\"amh-more\"><a class=\"amh-more-link\" href=\"\/fr\/ladar\/\">D\u00e9couvrir Dynamic 9D LADAR<span aria-hidden=\"true\"> &rarr;<\/span><\/a><\/p>\n      <\/div>\n      <div class=\"amh-slide-copy\" data-slide=\"1\">\n        <p class=\"amh-title\">Radian Pro<\/p>\n        <p class=\"amh-body\">Toute la performance du suivi par interf\u00e9rom\u00e9trie, sans compromis. Les tol\u00e9rances les plus serr\u00e9es propos\u00e9es par API.<\/p>\n        <p class=\"amh-more\"><a class=\"amh-more-link\" href=\"\/fr\/api-laser-tracker\/\">D\u00e9couvrir les laser trackers Radian<span aria-hidden=\"true\"> &rarr;<\/span><\/a><\/p>\n      <\/div>\n      <div class=\"amh-slide-copy\" data-slide=\"2\">\n        <p class=\"amh-title amh-title-asis\">iLT<\/p>\n        <p class=\"amh-body\">Le tracker le plus l\u00e9ger et le plus facile \u00e0 transporter d\u2019API. Installez-le en quelques minutes et acc\u00e9dez aux endroits les plus difficiles.<\/p>\n        <p class=\"amh-more\"><a class=\"amh-more-link\" href=\"\/fr\/ilt-laser-tracker\/\">D\u00e9couvrir iLT<span aria-hidden=\"true\"> &rarr;<\/span><\/a><\/p>\n      <\/div>\n      <div class=\"amh-slide-copy\" data-slide=\"3\">\n        <p class=\"amh-title\">XD Laser<\/p>\n        <p class=\"amh-body\">Tous les axes en une seule installation. Retrouvez une machine-outil plus pr\u00e9cise qu\u2019\u00e0 sa sortie d\u2019usine.<\/p>\n        <p class=\"amh-more\"><a class=\"amh-more-link\" href=\"\/fr\/laser-xd\/\">D\u00e9couvrir XD Laser<span aria-hidden=\"true\"> &rarr;<\/span><\/a><\/p>\n      <\/div>\n      <div class=\"amh-nav\">\n        <button class=\"amh-btn\" type=\"button\" data-dir=\"prev\" aria-label=\"Produit pr\u00e9c\u00e9dent\">\n          <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"26\" height=\"26\" viewBox=\"0 0 24 24\"\n               fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.25\" stroke-linecap=\"round\"\n               stroke-linejoin=\"round\" aria-hidden=\"true\">\n            <path d=\"m12 19-7-7 7-7\" \/><path d=\"M19 12H5\" \/>\n          <\/svg>\n        <\/button>\n        <button class=\"amh-btn\" type=\"button\" data-dir=\"next\" aria-label=\"Produit suivant\">\n          <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"26\" height=\"26\" viewBox=\"0 0 24 24\"\n               fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.25\" stroke-linecap=\"round\"\n               stroke-linejoin=\"round\" aria-hidden=\"true\">\n            <path d=\"M5 12h14\" \/><path d=\"m12 5 7 7-7 7\" \/>\n          <\/svg>\n        <\/button>\n      <\/div>\n      <div class=\"amh-dots\" role=\"tablist\" aria-label=\"Choisir un produit\"><\/div>\n    <\/div>\n\n    <div class=\"amh-discover\">\n      <a class=\"amh-discover-link\" href=\"#products\">\n        Voir plus\n        <span class=\"amh-discover-arrow\" aria-hidden=\"true\">\n        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\"\n             stroke=\"currentColor\" stroke-width=\"2.25\" stroke-linecap=\"round\"\n             stroke-linejoin=\"round\" aria-hidden=\"true\">\n          <path d=\"M12 5v14\" \/><path d=\"m19 12-7 7-7-7\" \/>\n        <\/svg>\n        <\/span>\n      <\/a>\n    <\/div>\n  <\/div>\n<\/div>\n\n<style>\n  \/* A plain \"transition: color\" does NOT fire when the colour arrives through\n     a custom property -- the browser substitutes the new value and repaints in\n     one step. That is what made the type snap: switching to a white slide\n     turned the type white within ~80ms while the white background was still\n     at 97% opacity, so every word went invisible for about a third of a\n     second, and the reverse on the way back.\n\n     Registering the properties with a real <color> syntax makes them\n     interpolable, so the type now crosses over in lockstep with the\n     background behind it. Browsers without @property ignore this block and\n     get the old instant swap, so this can only improve things. *\/\n  @property --type {\n    syntax: \"<color>\";\n    inherits: true;\n    initial-value: #ffffff;\n  }\n  @property --logo-ink {\n    syntax: \"<color>\";\n    inherits: true;\n    initial-value: #ffffff;\n  }\n  @property --pill-bg {\n    syntax: \"<color>\";\n    inherits: true;\n    initial-value: #ffffff;\n  }\n  @property --pill-fg {\n    syntax: \"<color>\";\n    inherits: true;\n    initial-value: #d90025;\n  }\n\n  #amh-hero-desktop,\n  #amh-hero-desktop *,\n  #amh-hero-desktop *::before,\n  #amh-hero-desktop *::after {\n    box-sizing: border-box;\n  }\n\n  #amh-hero-desktop {\n    position: relative;\n    width: 100%;\n    overflow: hidden;\n    \/* type below is sized in cqw (container units) off this box, so the hero\n       still looks right if Divi's row constrains it instead of going full-bleed *\/\n    container-type: inline-size;\n    font-family: \"Inter\", sans-serif;\n\n    \/* ---- THE ONLY TWO IMAGE URLS IN THE STYLESHEET ---- *\/\n    --bg-red: url(\"https:\/\/apimetrology.com\/wp-content\/uploads\/2026\/09\/api-bg-red-scaled.webp\");\n    --bg-white: url(\"https:\/\/apimetrology.com\/wp-content\/uploads\/2026\/09\/api-bg-white-scaled.webp\");\n\n    \/* API Metrology palette. --api-red is the one brand colour. --api-stage is\n       the flat colour painted under the pattern, so a slow connection shows the\n       right tone instead of a white flash. *\/\n    --api-red: #d90025;\n    --api-ink: #14161a;\n    --api-stage: #1c1f24;\n\n    \/* Everything that carries type reads these two, so a slide only has to\n       flip the pair to invert the whole hero. --type-rgb is the same colour\n       as bare channels, for the rules that need it at partial alpha. *\/\n    --type: #ffffff;\n    --type-rgb: 255, 255, 255;\n    --logo-ink: #ffffff;\n    --discover-ink: #ffffff;\n    --pill-bg: #ffffff;\n    --pill-fg: var(--api-red);\n    --grain-strength: 0.4;\n\n    background-color: var(--api-stage);\n    \/* The shared tone properties animate here so the type and pill track the\n       background cross-fade. The logo is intentionally excluded: blending\n       white and API red creates a muddy gray-pink flash. Its own rule below\n       holds the current color and switches cleanly at the midpoint. *\/\n    transition: background-color 650ms cubic-bezier(0.4, 0, 0.2, 1),\n      --type 650ms cubic-bezier(0.4, 0, 0.2, 1),\n      --pill-bg 650ms cubic-bezier(0.4, 0, 0.2, 1),\n      --pill-fg 650ms cubic-bezier(0.4, 0, 0.2, 1);\n\n    \/* position and size of the giant MEASUREMENT word *\/\n    --logo-h: clamp(100px, 9.5cqw, 180px);\n    --ghost-top: calc(1.5rem + var(--logo-h) + 4rem);\n    --ghost-size: clamp(54px, min(28cqw, 32svh), 380px);\n\n    \/* The centre product is boxed between these two lines rather than sized as\n       a bare percentage, so it can never creep back up into the welcome line.\n       --ghost-top is the top of the giant word, which sits a consistent 13-16px\n       below the welcome line's baseline box at every width -- anchoring to it\n       means the clearance survives any future change to the logo or type size. *\/\n    --plush-top: var(--ghost-top);\n    --plush-bottom: clamp(56px, 9svh, 112px);\n  }\n\n  \/* The white\/grey pattern is a light surface, so every white thing in the\n     hero would vanish on it. One class inverts the lot. *\/\n  #amh-hero-desktop.is-light {\n    --type: var(--api-ink);\n    --type-rgb: 20, 22, 26;\n    --logo-ink: var(--api-red);\n    --discover-ink: var(--api-ink);\n    --pill-bg: var(--api-red);\n    --pill-fg: #ffffff;\n    --api-stage: #f2f4f6;\n    \/* the same grain that reads as texture on red reads as dirt on white *\/\n    --grain-strength: 0.18;\n  }\n\n  #amh-hero-desktop .amh-stage {\n    position: relative;\n    width: 100%;\n    height: 100vh;\n    overflow: hidden;\n  }\n\n  \/* ---------------- brand pattern ---------------- *\/\n\n  #amh-hero-desktop .amh-bg {\n    position: absolute;\n    inset: 0;\n    z-index: 0;\n    overflow: hidden;\n    pointer-events: none;\n  }\n\n  \/* Drawn 160% oversize and centred. That overscan is what lets a layer rotate\n     without its corners swinging in off the edge of the stage -- with it, any\n     rotation up to ~20 degrees is safe at any zoom. *\/\n  #amh-hero-desktop .amh-bg-layer {\n    position: absolute;\n    inset: -30%;\n    background-repeat: no-repeat;\n    background-size: cover;\n    opacity: 0;\n    \/* Only opacity animates. The framing is baked in per layer and never\n       moves, so a slide change reads as a different picture rather than as\n       the same picture sliding or zooming into a new position. *\/\n    transition: opacity 650ms cubic-bezier(0.4, 0, 0.2, 1);\n    will-change: opacity;\n  }\n\n  #amh-hero-desktop .amh-bg-layer.is-active {\n    opacity: 1;\n  }\n\n  #amh-hero-desktop .amh-bg-layer[data-amh-bg=\"red\"] {\n    background-image: var(--bg-red);\n  }\n\n  #amh-hero-desktop .amh-bg-layer[data-amh-bg=\"white\"] {\n    background-image: var(--bg-white);\n  }\n\n  \/* Two stacked gradients that cross-fade, rather than one gradient that gets\n     swapped. background-image cannot be transitioned -- it would jump to the\n     other tone in a single frame while the pattern behind it was still\n     dissolving. Opacity can, so each tone gets its own layer. *\/\n  #amh-hero-desktop .amh-scrim {\n    position: absolute;\n    inset: 0;\n    z-index: 1;\n    pointer-events: none;\n  }\n\n  #amh-hero-desktop .amh-scrim::before,\n  #amh-hero-desktop .amh-scrim::after {\n    content: \"\";\n    position: absolute;\n    inset: 0;\n    transition: opacity 650ms cubic-bezier(0.4, 0, 0.2, 1);\n  }\n\n  \/* darkens the red pattern towards the edges so the white type holds *\/\n  #amh-hero-desktop .amh-scrim::before {\n    background-image: radial-gradient(115% 85% at 50% 38%, rgba(0, 0, 0, 0.06), rgba(0, 0, 0, 0.34));\n    opacity: 1;\n  }\n\n  \/* The white pattern is already very low contrast, so a heavy white scrim\n     flattens it to a blank page and the two white slides stop looking like\n     different pictures. This lifts the centre only slightly and darkens the\n     edges instead, which nets out as MORE facet definition, not less. Dark\n     type on this surface has contrast to spare, so the scrim is doing\n     nothing for legibility here and can stay this gentle. *\/\n  #amh-hero-desktop .amh-scrim::after {\n    background-image: radial-gradient(115% 85% at 50% 38%, rgba(255, 255, 255, 0.16), rgba(0, 0, 0, 0.06));\n    opacity: 0;\n  }\n\n  #amh-hero-desktop.is-light .amh-scrim::before {\n    opacity: 0;\n  }\n\n  #amh-hero-desktop.is-light .amh-scrim::after {\n    opacity: 1;\n  }\n\n  #amh-hero-desktop .amh-grain {\n    position: absolute;\n    inset: 0;\n    z-index: 50;\n    pointer-events: none;\n    background-image: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'\/%3E%3C\/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.08'\/%3E%3C\/svg%3E\");\n    background-repeat: repeat;\n    background-size: 200px 200px;\n    opacity: var(--grain-strength);\n    transition: opacity 650ms cubic-bezier(0.4, 0, 0.2, 1);\n  }\n\n  #amh-hero-desktop .amh-ghost {\n    position: absolute;\n    left: 0;\n    right: 0;\n    top: var(--ghost-top);\n    z-index: 2;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    pointer-events: none;\n    -webkit-user-select: none;\n    user-select: none;\n    margin: 0;\n    font-family: \"Anton\", sans-serif;\n    font-size: var(--ghost-size);\n    font-weight: 900;\n    color: var(--type);\n    line-height: 1;\n    text-transform: uppercase;\n    letter-spacing: -0.02em;\n    white-space: nowrap;\n  }\n\n  \/* lead-in that sits above the giant word *\/\n  #amh-hero-desktop .amh-superline {\n    position: absolute;\n    left: 0;\n    right: 0;\n    top: calc(var(--ghost-top) - 2.6rem);\n    z-index: 2;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    pointer-events: none;\n    -webkit-user-select: none;\n    user-select: none;\n    margin: 0;\n    font-family: \"Anton\", sans-serif;\n    font-size: clamp(11px, 1.55cqw, 22px);\n    font-weight: 400;\n    line-height: 1.3;\n    color: var(--type);\n    opacity: 0.95;\n    text-transform: uppercase;\n    white-space: nowrap;\n  }\n\n  \/* completes the H1 for screen readers and crawlers; the words are on screen\n     as the giant graphic word and the line beneath it *\/\n  #amh-hero-desktop .amh-sr {\n    position: absolute;\n    width: 1px;\n    height: 1px;\n    overflow: hidden;\n    clip-path: inset(50%);\n    white-space: nowrap;\n  }\n\n  #amh-hero-desktop .amh-superline-text {\n    display: inline-block;\n    letter-spacing: 0.01em;\n  }\n\n  \/* completes the sentence started by the giant word. Same layer as the\n     ghost (z-index 2) so the products pass in front of it. The script\n     letter-spaces it to span the word above exactly. *\/\n  #amh-hero-desktop .amh-subline {\n    position: absolute;\n    left: 0;\n    right: 0;\n    top: calc(var(--ghost-top) + var(--ghost-size) * 0.88 + 1.5rem);\n    z-index: 2;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    pointer-events: none;\n    -webkit-user-select: none;\n    user-select: none;\n    margin: 0;\n    font-family: \"Anton\", sans-serif;\n    font-size: clamp(15px, 3.1cqw, 42px);\n    font-weight: 400;\n    line-height: 1.3;\n    color: var(--type);\n    opacity: 0.95;\n    text-transform: uppercase;\n    white-space: nowrap;\n  }\n\n  \/* the negative right margin cancels the trailing letter-space CSS adds\n     after the last character, which would push the last letter out of line *\/\n  #amh-hero-desktop .amh-subline-text {\n    display: inline-block;\n    letter-spacing: 0.01em;\n  }\n\n  \/* top bar: welcome line on the left, drop schedule on the right.\n     Flex so the two can never overlap, whatever the copy length. *\/\n  #amh-hero-desktop .amh-topbar {\n    position: absolute;\n    top: 1.5rem;\n    left: 2rem;\n    right: 2rem;\n    z-index: 60;\n    display: flex;\n    align-items: flex-start;\n    justify-content: space-between;\n    gap: 2rem;\n  }\n\n  #amh-hero-desktop .amh-topbar > .amh-brand {\n    min-width: 0;\n  }\n\n  \/* logo, top-left *\/\n  #amh-hero-desktop .amh-brand {\n    display: flex;\n    align-items: flex-start;\n    gap: 0.85rem;\n    min-width: 0;\n  }\n\n  #amh-hero-desktop .amh-logo-link {\n    display: block;\n    flex: none;\n    line-height: 0;\n    color: var(--logo-ink);\n    transition: color 0s linear 325ms;\n  }\n\n  #amh-hero-desktop .amh-logo {\n    display: block;\n    width: auto;\n    height: var(--logo-h);\n    max-width: none;\n  }\n\n  \/* the column is only as wide as the pill, so centring here centres the\n     note under the pill while the block itself stays hard right *\/\n  #amh-hero-desktop .amh-drop {\n    display: flex;\n    flex: none;\n    flex-direction: column;\n    align-items: center;\n    gap: 0.4rem;\n    text-align: center;\n  }\n\n  \/* The pill is the thing that pops, so it inverts with the pattern: white on\n     the red slides (a red pill on the red pattern would disappear), red on the\n     white ones. *\/\n  #amh-hero-desktop a.amh-drop-pill { text-decoration: none; transition: opacity 0.2s; }\n  #amh-hero-desktop a.amh-drop-pill:hover { opacity: 0.9; }\n  #amh-hero-desktop .amh-drop-pill {\n    display: inline-flex;\n    align-items: center;\n    gap: 0.45rem;\n    padding: 0.5rem 1rem;\n    border-radius: 999px;\n    background-color: var(--pill-bg);\n    color: var(--pill-fg);\n    font-size: clamp(10px, 0.85cqw, 13px);\n    font-weight: 700;\n    line-height: 1;\n    text-transform: uppercase;\n    letter-spacing: 0.08em;\n    white-space: nowrap;\n    box-shadow: 0 6px 22px rgba(0, 0, 0, 0.22);\n  }\n\n  #amh-hero-desktop .amh-drop-star {\n    font-size: 1.05em;\n    line-height: 1;\n    transform: translateY(-0.02em);\n  }\n\n  #amh-hero-desktop .amh-drop-note {\n    font-size: clamp(9px, 0.72cqw, 11px);\n    line-height: 1.3;\n    font-weight: 600;\n    text-transform: uppercase;\n    letter-spacing: 0.1em;\n    color: var(--type);\n    opacity: 0.82;\n    white-space: nowrap;\n  }\n\n  #amh-hero-desktop .amh-carousel {\n    position: absolute;\n    inset: 0;\n    z-index: 3;\n  }\n\n  #amh-hero-desktop .amh-item {\n    position: absolute;\n    aspect-ratio: 1.12 \/ 1;\n    \/* The XD Laser is nearly square where the trackers are tall, so at full\n       stage height it would run most of the way across the screen and read as a\n       slab rather than as one of the instruments. Capping the width lets\n       object-fit shrink it to roughly a tracker's visual mass, still sitting on\n       the same floor line. A tall product's width never approaches this bound,\n       so the cap only ever bites on the wide ones. *\/\n    max-width: min(38vw, 680px);\n    transition: transform 650ms cubic-bezier(0.4, 0, 0.2, 1),\n      filter 650ms cubic-bezier(0.4, 0, 0.2, 1), opacity 650ms cubic-bezier(0.4, 0, 0.2, 1),\n      left 650ms cubic-bezier(0.4, 0, 0.2, 1);\n    will-change: transform, filter, opacity;\n  }\n\n  #amh-hero-desktop .amh-carousel img {\n    \/* These photos are cut-outs, so anything painted behind them shows up as a\n       solid rectangle. Smush's lazy loader (lazysizes) treats a \"data-bg\"\n       attribute as \"paint this colour behind the element\" and had been doing\n       exactly that -- hence the amh- prefix on data-amh-bg above. This is the\n       backstop against any other plugin trying the same; !important is needed\n       to beat inline styles. *\/\n    background: none !important;\n    display: block;\n    width: 100%;\n    height: 100%;\n    max-width: none;\n    object-fit: contain;\n    object-position: bottom center;\n  }\n\n  #amh-hero-desktop .amh-copy {\n    position: absolute;\n    bottom: 5rem;\n    left: 6rem;\n    z-index: 60;\n    \/* 400 not 360: the descriptions run two lines now, and the narrower box\n       broke them onto three. The block is anchored to its BOTTOM edge, so a\n       taller line count grows upwards and nothing below it moves. *\/\n    max-width: 400px;\n  }\n\n  #amh-hero-desktop .amh-slide-copy {\n    display: none;\n  }\n\n  #amh-hero-desktop .amh-slide-copy.is-active {\n    display: block;\n  }\n\n  #amh-hero-desktop .amh-more {\n    margin: 0.45rem 0 0;\n    padding: 0;\n    font-size: 0.8125rem;\n    line-height: 1.3;\n    font-weight: 600;\n  }\n\n  #amh-hero-desktop .amh-more-link {\n    color: var(--type);\n    opacity: 0.9;\n    text-decoration: none;\n    border-bottom: 1px solid rgba(var(--type-rgb), 0.45);\n    transition: opacity 200ms, border-color 200ms;\n  }\n\n  #amh-hero-desktop .amh-more-link:hover {\n    opacity: 1;\n    border-bottom-color: var(--type);\n  }\n\n  #amh-hero-desktop .amh-title-link {\n    color: inherit;\n    text-decoration: none;\n    border-bottom: 1px solid rgba(var(--type-rgb), 0.35);\n    transition: border-color 200ms;\n  }\n\n  #amh-hero-desktop .amh-title-link:hover {\n    color: var(--type);\n    border-bottom-color: var(--type);\n  }\n\n  #amh-hero-desktop .amh-title {\n    margin: 0 0 0.55rem;\n    padding: 0;\n    font-size: 23px;\n    line-height: 1.1;\n    font-weight: 800;\n    text-transform: uppercase;\n    color: var(--type);\n    \/* full strength, not 0.95 -- the name is the loudest thing in this block *\/\n    opacity: 1;\n    letter-spacing: 0.01em;\n  }\n\n  \/* Product names are set uppercase, but several API names are brand forms\n     rather than words and must keep their own casing -- uppercasing \"iLT\"\n     gives \"ILT\", which is not the product's name. Add this class to any name\n     that has to render exactly as typed. iScan3D and vProbe need it too if\n     they are ever added back to the list. *\/\n  #amh-hero-desktop .amh-title.amh-title-asis {\n    text-transform: none;\n  }\n\n  #amh-hero-desktop .amh-body {\n    margin: 0;\n    padding: 0;\n    font-size: 0.8125rem;\n    line-height: 1.42;\n    color: var(--type);\n    opacity: 0.85;\n  }\n\n  #amh-hero-desktop .amh-nav {\n    display: flex;\n    gap: 1rem;\n    \/* Lifts the name, description and link clear of the arrows. Without it the\n       copy sits straight on top of the buttons and the two blocks read as one\n       lump. The phone layout puts the arrows BESIDE the copy instead, so it\n       resets this to zero. *\/\n    margin-top: 1.75rem;\n  }\n\n  #amh-hero-desktop .amh-btn {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    width: 3.5rem;\n    height: 3.5rem;\n    padding: 0;\n    border: 2px solid var(--type);\n    border-radius: 9999px;\n    background-color: transparent;\n    color: var(--type);\n    cursor: pointer;\n    transition: transform 150ms, background-color 150ms;\n  }\n\n  #amh-hero-desktop .amh-btn:hover {\n    transform: scale(1.08);\n    background-color: rgba(var(--type-rgb), 0.12);\n  }\n\n  #amh-hero-desktop .amh-dots {\n    display: flex;\n    align-items: center;\n    gap: 0.5rem;\n    margin-top: 0.9rem;\n  }\n\n  #amh-hero-desktop .amh-dot {\n    width: 10px;\n    height: 10px;\n    padding: 0;\n    border: 0;\n    border-radius: 999px;\n    background-color: rgba(var(--type-rgb), 0.4);\n    cursor: pointer;\n    transition: width 300ms cubic-bezier(0.4, 0, 0.2, 1), background-color 300ms;\n  }\n\n  #amh-hero-desktop .amh-dot:hover {\n    background-color: rgba(var(--type-rgb), 0.7);\n  }\n\n  #amh-hero-desktop .amh-dot.is-active {\n    width: 28px;\n    background-color: var(--type);\n  }\n\n  #amh-hero-desktop .amh-discover {\n    position: absolute;\n    bottom: 5rem;\n    right: 2.5rem;\n    z-index: 60;\n  }\n\n  #amh-hero-desktop .amh-discover-link {\n    display: flex;\n    align-items: center;\n    gap: 0.75rem;\n    font-family: \"Anton\", sans-serif;\n    font-size: clamp(20px, 4cqw, 56px);\n    font-weight: 400;\n    color: var(--discover-ink);\n    opacity: 0.95;\n    letter-spacing: -0.02em;\n    line-height: 1;\n    text-transform: uppercase;\n    text-decoration: none;\n    \/* snaps mid-crossfade like the logo, instead of fading through grey *\/\n    transition: opacity 200ms, color 0s linear 325ms;\n  }\n\n  #amh-hero-desktop .amh-discover-link:hover,\n  #amh-hero-desktop .amh-discover-link:focus {\n    opacity: 1;\n    color: var(--discover-ink);\n    text-decoration: none;\n  }\n\n  #amh-hero-desktop .amh-discover-link svg {\n    width: 2rem;\n    height: 2rem;\n    flex: none;\n  }\n\n  \/* Short laptop windows: drop the long claim so the copy never rides up.\n     Width-scoped deliberately -- an unscoped height query also fires on\n     phones, where it flips on and off as the browser's URL bar collapses. *\/\n  @media (min-width: 768px) and (max-height: 760px) {\n    #amh-hero-desktop .amh-body {\n      display: none;\n    }\n    #amh-hero-desktop .amh-copy,\n    #amh-hero-desktop .amh-discover {\n      bottom: 3.5rem;\n    }\n  }\n\n  \/* ===============================================================\n     PHONES  (max-width: 767px)\n\n     The desktop layout hangs everything off the giant word with\n     absolute positioning. Below ~768px that falls apart: the product\n     is sized from its HEIGHT, so on a tall narrow screen its width\n     runs past the display (513px inside a 375px phone), burying the\n     word -- while the logo, drop pill, copy, arrows and CTA all pile\n     into the same two corners.\n\n     So on phones the hero becomes an ordinary vertical stack. The type\n     runs in normal flow, the carousel takes whatever space is left,\n     and the product is capped by WIDTH instead of height.\n     =============================================================== *\/\n  @media (max-width: 767px) {\n    #amh-hero-desktop {\n      \/* the carousel is its own flex band now, so the product fills it\n         exactly instead of being inset from the whole stage *\/\n      --plush-top: 0px;\n      --plush-bottom: 0px;\n      \/* Width-based, not height-based. svh here was capping the logo at\n         the SMALL viewport (~700px on an iPhone 14) and making it much\n         smaller than the screen width could carry. cqw is just as stable\n         against the collapsing URL bar and lets the mark breathe. *\/\n      --logo-h: clamp(76px, 39cqw, 150px);\n\n      \/* How far the whole type group (welcome \/ MEASUREMENT \/ challenge) slides\n         down the page. The carousel is pulled up by the same amount just\n         below, so the product itself does not move -- only the type does,\n         which is what brings the word down onto the product's head the way\n         the desktop layout does it.\n\n         It is exactly the height of the giant word, and that is not a\n         coincidence: sliding the type down by one word-height is precisely\n         what lands the word's top edge on the product's head. Measured at\n         360\/375\/390\/430\/767 wide, the required drop was 100\/109\/116\/220px\n         against word heights of 101\/109\/120\/215. *\/\n      --type-drop: var(--ghost-size);\n\n      \/* How much of that drop sits ABOVE the logo rather than below it.\n         The sum is what fixes the head alignment, not where it sits, so\n         moving part of it up is free -- and it turns a hole in the middle\n         of the header into ordinary padding at the top. *\/\n      --type-drop-above: calc(var(--type-drop) * 0.55);\n    }\n\n    #amh-hero-desktop .amh-stage {\n      display: flex;\n      flex-direction: column;\n      \/* svh not vh: vh counts the strip behind the phone's URL bar, which\n         would push ADOPT YOURS off screen until the user scrolled *\/\n      height: 100svh;\n      padding: 1.15rem 1.1rem 1.4rem;\n    }\n\n    \/* The pattern, its scrim and the grain stay pinned to the whole stage\n       while everything else joins the flow -- without this the flex column\n       would treat them as three empty rows at the top. *\/\n    #amh-hero-desktop .amh-bg,\n    #amh-hero-desktop .amh-scrim,\n    #amh-hero-desktop .amh-grain {\n      position: absolute;\n      inset: 0;\n    }\n\n    \/* Everything else joins the flow. The type sits before the logo in the\n       markup, so order: fixes the sequence without touching the HTML. *\/\n    #amh-hero-desktop .amh-topbar,\n    #amh-hero-desktop .amh-superline,\n    #amh-hero-desktop .amh-ghost,\n    #amh-hero-desktop .amh-subline,\n    #amh-hero-desktop .amh-copy,\n    #amh-hero-desktop .amh-discover {\n      position: static;\n      inset: auto;\n      max-width: none;\n    }\n\n    #amh-hero-desktop .amh-topbar {\n      order: 1;\n      flex-direction: column;\n      align-items: center;\n      gap: 1.5rem;\n      margin-top: var(--type-drop-above);\n    }\n\n    \/* On a phone the mark has to be bounded by its WIDTH, not its height. The\n       API logo is about 2.5x wider than it is tall, so --logo-h alone put a\n       150px-tall mark 379px across inside the 355px a 390px phone actually\n       has, and it ran off both edges. Height follows from the viewBox, so this\n       also survives swapping the logo for one with different proportions. *\/\n    #amh-hero-desktop .amh-logo {\n      width: min(78cqw, 330px);\n      height: auto;\n    }\n    #amh-hero-desktop .amh-drop { align-items: center; text-align: center; }\n    #amh-hero-desktop .amh-superline {\n      order: 2;\n      margin-top: calc(1.4rem + var(--type-drop) - var(--type-drop-above));\n      text-align: center;\n    }\n    #amh-hero-desktop .amh-ghost     { order: 3; }\n    #amh-hero-desktop .amh-subline   { order: 4; text-align: center; }\n    #amh-hero-desktop .amh-carousel  {\n      order: 5;\n      position: relative;\n      flex: 1 1 auto;\n      \/* Cancels --type-drop exactly, so the product holds its position while\n         the type slides down over it, plus the original small tuck. *\/\n      margin-top: calc(-2.5svh - var(--type-drop));\n      \/* A floor so the product stays the hero, but one that scales -- a\n         fixed floor overflows a short screen and pushes ADOPT YOURS off\n         the bottom. *\/\n      min-height: clamp(40px, 9svh, 380px);\n    }\n    #amh-hero-desktop .amh-copy {\n      order: 6;\n      \/* Inset the name, description, link, arrows and dots without touching\n         the stage padding -- that would narrow the giant word too, and the\n         word spanning the full width is the whole point of it. *\/\n      padding-inline: 1.4rem;\n    }\n    #amh-hero-desktop .amh-discover  { order: 7; margin-top: 0.85rem; }\n\n    \/* Always compact on a phone, never conditionally.\n\n       These two lines used to be dropped only on short screens via a height\n       media query -- which is what made the page restyle itself mid-scroll,\n       because mobile browsers grow the viewport by ~130px when the URL bar\n       collapses and the query re-fired. Hiding them on every phone keeps the\n       hero identical from first paint to fully scrolled, and buys the\n       product about 30px besides. Both still show on desktop.\n\n       The one-line product description stays -- it is the only thing on the\n       slide that says what the instrument actually does. Only the second\n       line goes, which the pill above it already implies. *\/\n    #amh-hero-desktop .amh-drop-note { display: none; }\n    #amh-hero-desktop .amh-body {\n      display: block;\n      \/* scales down on a short phone instead of stepping at a breakpoint *\/\n      font-size: clamp(12px, 1.7svh, 15px);\n      line-height: 1.35;\n    }\n\n    \/* the fix for the main problem: bound the product by width, and let\n       object-fit sit it on the floor of its band *\/\n    #amh-hero-desktop .amh-item { max-width: 86vw; }\n\n    \/* Name on the left, arrows across from it on the right. Only the active\n       slide-copy generates a box (the rest are display:none), so grid\n       auto-placement puts it in cell 1 and the arrows in cell 2. Saves a\n       whole row of height versus stacking them. *\/\n    #amh-hero-desktop .amh-copy {\n      display: grid;\n      grid-template-columns: 1fr auto;\n      align-items: end;\n      column-gap: 0.9rem;\n    }\n    \/* display:contents dissolves the active slide's wrapper so its three\n       lines become grid items in their own right. That lets the arrows sit\n       beside the NAME while the \"learn more\" link still gets the full width\n       -- boxed into the narrow column it wrapped onto two lines. *\/\n    #amh-hero-desktop .amh-slide-copy.is-active { display: contents; }\n    #amh-hero-desktop .amh-title { grid-column: 1; grid-row: 1; }\n    #amh-hero-desktop .amh-body  { grid-column: 1; grid-row: 2; }\n    #amh-hero-desktop .amh-nav   { grid-column: 2; grid-row: 1 \/ span 2;\n                                   justify-self: end; align-self: center; gap: 0.75rem;\n                                   \/* the arrows sit beside the copy here, not under it *\/\n                                   margin-top: 0; }\n    #amh-hero-desktop .amh-more  { grid-column: 1 \/ -1; grid-row: 3; }\n    #amh-hero-desktop .amh-dots  { grid-column: 1 \/ -1; grid-row: 4; margin-top: 0.7rem; }\n    #amh-hero-desktop .amh-btn   { width: 2.9rem; height: 2.9rem; }\n  }\n\n  \/* NOTE: there are deliberately NO height media queries for phones.\n     Mobile Safari and Chrome grow the viewport by ~80-130px when the URL\n     bar collapses on scroll, which re-evaluates any height query and makes\n     the design visibly reflow mid-scroll -- text appearing, type resizing.\n     Everything that used to step at a height breakpoint now scales\n     continuously against svh instead, which is the one viewport unit that\n     ignores the collapsing chrome. *\/\n\n  @media (prefers-reduced-motion: reduce) {\n    #amh-hero-desktop,\n    #amh-hero-desktop .amh-item,\n    #amh-hero-desktop .amh-dot,\n    #amh-hero-desktop .amh-bg-layer,\n    #amh-hero-desktop .amh-scrim,\n    #amh-hero-desktop .amh-grain {\n      transition: none;\n    }\n  }\n\n\n  \/* ===============================================================\n     MOBILE PASS 2026-09-25 (phones and portrait tablets only)\n\n     Everything below sits inside max-width queries, so desktop\n     (981px and up) renders exactly as before.\n\n     Phones get a layout that mirrors the desktop composition:\n     logo top-left, demo pill, the giant word across the full width,\n     the product big and in front of it, then the product copy.\n       - The giant word is sized from the screen WIDTH so all nine\n         letters always show (Anton METROLOGY is ~4.16em wide).\n       - The product band runs from the top of the word down to the\n         copy, so the product stands in front of the word, as on\n         desktop, and gets roughly half the screen.\n       - The copy is a fixed three-line block so the product does not\n         change size from slide to slide.\n       - The hero logo moves up into the header row (the header hides\n         its own logo while you are on the hero), so nothing sits in\n         the empty corner and the product gains the space.\n     =============================================================== *\/\n\n  \/* Portrait tablets keep the desktop layout; only the word is capped\n     so it no longer runs off both edges. *\/\n  @media (min-width: 768px) and (max-width: 980px) {\n    #amh-hero-desktop {\n      --ghost-size: clamp(54px, min(28cqw, 32svh, calc((100cqw - 3rem) \/ 4.16)), 380px);\n    }\n  }\n\n  @media (max-width: 767px) {\n    #amh-hero-desktop {\n      --ghost-size: calc((100cqw - 1.75rem) \/ 4.16);\n      --type-drop: 0px;\n      --type-drop-above: 0px;\n      --amh-pad-x: 1.35rem;\n      \/* space the fixed header bar needs above the pill *\/\n      --amh-head: 76px;\n    }\n\n    \/* A floor on the height so a short phone scrolls a little rather\n       than squeezing the product; svh ignores the collapsing URL bar,\n       so this never reflows mid-scroll. *\/\n    #amh-hero-desktop .amh-stage {\n      height: 100svh;\n      min-height: 620px;\n      padding: var(--amh-head) 0 1.1rem;\n    }\n\n    #amh-hero-desktop .amh-topbar {\n      margin-top: 0;\n      gap: 0;\n    }\n\n    \/* The logo is drawn in the header row. Browsers without scroll-driven\n       animations show the header's white bar (with its own logo) from the\n       start, so there the hero logo simply steps aside. *\/\n    #amh-hero-desktop .amh-brand {\n      display: none;\n    }\n\n    #amh-hero-desktop .amh-drop-pill {\n      font-size: 11px;\n      padding: 0.62rem 1.05rem;\n      letter-spacing: 0.07em;\n    }\n\n    \/* the h1 keeps its screen-reader text; its visual line is empty *\/\n    #amh-hero-desktop .amh-superline {\n      height: 0;\n      margin: 0;\n      overflow: visible;\n    }\n\n    #amh-hero-desktop .amh-ghost {\n      margin-top: clamp(0.9rem, 2.6svh, 1.6rem);\n    }\n\n    #amh-hero-desktop .amh-subline {\n      margin-top: 0.3rem;\n      font-size: 15px;\n    }\n\n    \/* Pulled back up over the tagline and the lower half of the word, and\n       ending at the copy: the product stands in front of the word like the\n       desktop hero, but a phone-width product is much wider relative to the\n       word, so it starts halfway down the letters and the word stays\n       readable above its head. *\/\n    #amh-hero-desktop .amh-carousel {\n      margin-top: calc(-1 * (var(--ghost-size) * 0.55 + 0.3rem + 19.5px));\n      min-height: 0;\n    }\n\n    \/* Tall trackers are bounded by the band's height; this only bites on\n       the wide XD Laser, keeping it to a tracker's visual mass so it does\n       not blanket the word. *\/\n    #amh-hero-desktop .amh-item {\n      max-width: 74vw;\n    }\n\n    #amh-hero-desktop .amh-copy {\n      padding-inline: var(--amh-pad-x);\n      margin-top: 0.7rem;\n      grid-template-columns: 1fr auto;\n      column-gap: 0.75rem;\n      align-items: center;\n    }\n\n    #amh-hero-desktop .amh-title {\n      grid-column: 1;\n      grid-row: 1;\n      margin: 0;\n      font-size: clamp(18px, 5.2cqw, 22px);\n      line-height: 1.1;\n    }\n\n    #amh-hero-desktop .amh-nav {\n      grid-column: 2;\n      grid-row: 1;\n      align-self: center;\n      gap: 0.6rem;\n    }\n\n    #amh-hero-desktop .amh-btn {\n      width: 2.65rem;\n      height: 2.65rem;\n    }\n\n    \/* three lines reserved on every slide, so the product never jumps *\/\n    #amh-hero-desktop .amh-body {\n      grid-column: 1 \/ -1;\n      grid-row: 2;\n      margin-top: 0.45rem;\n      font-size: 13.5px;\n      line-height: 1.4;\n      min-height: calc(3 * 1.4em);\n    }\n\n    #amh-hero-desktop .amh-more {\n      grid-column: 1;\n      grid-row: 3;\n      margin-top: 0.4rem;\n      font-size: 13px;\n    }\n\n    #amh-hero-desktop .amh-dots {\n      grid-column: 2;\n      grid-row: 3;\n      justify-self: end;\n      margin-top: 0.4rem;\n    }\n\n    #amh-hero-desktop .amh-discover {\n      padding-inline: var(--amh-pad-x);\n      margin-top: 0.9rem;\n    }\n\n    #amh-hero-desktop .amh-discover-link {\n      font-size: clamp(22px, 6.6cqw, 30px);\n    }\n\n    #amh-hero-desktop .amh-discover-link svg {\n      width: 1.6rem;\n      height: 1.6rem;\n    }\n  }\n\n  \/* Header row logo: only where the header can go transparent on the\n     hero (the same support test the header uses). *\/\n  @supports (animation-timeline: scroll()) {\n    @media (max-width: 767px) {\n      #amh-hero-desktop .amh-brand {\n        display: flex;\n        position: absolute;\n        top: 13px;\n        left: 24px;\n        z-index: 61;\n      }\n      #amh-hero-desktop .amh-logo {\n        width: clamp(112px, 33cqw, 150px);\n        height: auto;\n      }\n    }\n  }\n\n  \/* Header text and icons over this hero (the header reads --apih-hero-ink):\n     white on the red slides, dark on the white ones, switching at the\n     cross-fade midpoint like the logo. Registered here because the header's\n     code module cannot hold the <color> syntax. All widths since 2026-09-28. *\/\n  @property --apih-hero-ink {\n    syntax: \"<color>\";\n    inherits: true;\n    initial-value: #ffffff;\n  }\n  body:has(#amh-hero-desktop) {\n    transition: --apih-hero-ink 0s linear 325ms;\n  }\n  body:has(#amh-hero-desktop.is-light) {\n    --apih-hero-ink: #14161a;\n  }\n  \/* Centered scroll cue, approved 2026-10-13. *\/\n  #amh-hero-desktop .amh-discover {\n    left: 50%;\n    right: auto;\n    bottom: clamp(8px, 1.6svh, 20px);\n    transform: translateX(-50%);\n    width: max-content;\n    max-width: calc(100% - 2rem);\n  }\n  #amh-hero-desktop .amh-discover-link {\n    display: inline-flex;\n    justify-content: center;\n    gap: 10px;\n    min-height: 44px;\n    font-family: \"Roboto\", Helvetica, Arial, sans-serif;\n    font-size: 16px;\n    font-weight: 500;\n    line-height: 1.3;\n    letter-spacing: 0;\n    text-transform: none;\n    white-space: nowrap;\n  }\n  #amh-hero-desktop .amh-discover-arrow {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    width: 24px;\n    height: 36px;\n    flex: none;\n    border: 1.25px solid currentColor;\n    border-radius: 999px;\n    background: transparent;\n  }\n  #amh-hero-desktop .amh-discover-link svg {\n    width: 18px;\n    height: 18px;\n    animation: amh-scroll-cue-bounce 2.5s ease-in-out infinite;\n  }\n  @keyframes amh-scroll-cue-bounce {\n    0%, 100% { transform: translateY(-2px); }\n    50% { transform: translateY(3px); }\n  }\n  @media (max-width: 767px) {\n    #amh-hero-desktop .amh-discover {\n      position: static;\n      inset: auto;\n      transform: none;\n      align-self: center;\n      padding-inline: 0;\n    }\n  }\n  @media (prefers-reduced-motion: reduce) {\n    #amh-hero-desktop .amh-discover-link svg {\n      animation: none;\n      transform: none;\n    }\n  }\n<\/style>\n\n<script>\n  (function () {\n    var root = document.getElementById(\"amh-hero-desktop\");\n    if (!root || root.getAttribute(\"data-amh-init\") === \"1\") return;\n    root.setAttribute(\"data-amh-init\", \"1\");\n\n    var DURATION = 650; \/* must match the CSS transition *\/\n    var AUTOPLAY_MS = 5000; \/* how long each product holds centre stage *\/\n\n    var carousel = root.querySelector(\".amh-carousel\");\n    var bgWrap = root.querySelector(\".amh-bg\");\n    var dotsWrap = root.querySelector(\".amh-dots\");\n    var copyBlocks = Array.prototype.slice.call(root.querySelectorAll(\".amh-slide-copy\"));\n    var ghostWord = root.querySelector(\".amh-ghost-word\");\n    var sublineText = root.querySelector(\".amh-subline-text\");\n    var superText = root.querySelector(\".amh-superline-text\");\n\n    \/* read the slides straight off the markup above *\/\n    var imgs = Array.prototype.slice.call(carousel.querySelectorAll(\"img\"));\n    var PRODUCTS = imgs.map(function (img) {\n      return {\n        src: img.getAttribute(\"src\") || \"\",\n        name: img.getAttribute(\"alt\") || \"\",\n        bg: img.getAttribute(\"data-amh-bg\") || \"red\",\n        view: img.getAttribute(\"data-amh-view\") || \"\"\n      };\n    });\n    if (!PRODUCTS.length) return;\n\n    var activeIndex = 0;\n    var isAnimating = false;\n    var autoplayTimer = null;\n    var reduceMotion = window.matchMedia(\"(prefers-reduced-motion: reduce)\");\n\n    \/* wrap each authored <img> in its positioning cell *\/\n    var items = imgs.map(function (img) {\n      var cell = document.createElement(\"div\");\n      cell.className = \"amh-item\";\n      img.parentNode.insertBefore(cell, img);\n      cell.appendChild(img);\n      img.draggable = false;\n      img.decoding = \"async\";\n      \/* Each cell takes its own photo's proportions so object-fit has nothing\n         to letterbox. The src is in the markup, so a cached image can already\n         be decoded by the time this runs and its \"load\" event has been and\n         gone -- hence applying it immediately as well as on load. *\/\n      function applyRatio() {\n        if (img.naturalWidth && img.naturalHeight) {\n          cell.style.aspectRatio = img.naturalWidth + \" \/ \" + img.naturalHeight;\n        }\n      }\n      img.addEventListener(\"load\", applyRatio);\n      if (img.complete) applyRatio();\n      return cell;\n    });\n\n    \/* One background layer per slide, each holding that slide's framing of its\n       pattern for good. Two slides can share a pattern and still look nothing\n       alike, because the zoom, rotation and crop belong to the LAYER, not to\n       the image -- and because nothing animates but opacity, the change reads\n       as a cross-fade between two pictures rather than one picture moving.\n\n       data-amh-view is \"<zoom> <rotation-deg> <crop-x> <crop-y>\"; anything\n       missing falls back to a straight, unrotated, centred frame. *\/\n    var bgLayers = PRODUCTS.map(function (product) {\n      var layer = document.createElement(\"div\");\n      layer.className = \"amh-bg-layer\";\n      layer.setAttribute(\"data-amh-bg\", product.bg);\n\n      var v = product.view.trim().split(\/\\s+\/);\n      var zoom = parseFloat(v[0]);\n      var rotation = parseFloat(v[1]);\n      if (!isFinite(zoom) || zoom <= 0) zoom = 1;\n      if (!isFinite(rotation)) rotation = 0;\n      layer.style.transform = \"rotate(\" + rotation + \"deg) scale(\" + zoom + \")\";\n      layer.style.backgroundPosition = (v[2] || \"50%\") + \" \" + (v[3] || \"50%\");\n\n      bgWrap.appendChild(layer);\n      return layer;\n    });\n\n    var dots = PRODUCTS.map(function (product, index) {\n      var dot = document.createElement(\"button\");\n      dot.type = \"button\";\n      dot.className = \"amh-dot\";\n      dot.setAttribute(\"role\", \"tab\");\n      dot.setAttribute(\"aria-label\", product.name);\n      dot.addEventListener(\"click\", function () {\n        goTo(index, true);\n      });\n      dotsWrap.appendChild(dot);\n      return dot;\n    });\n\n    \/* Spread the subline so it spans exactly the width of the giant word:\n       first letter under the M, last character under the Y. Recomputed on\n       resize and once the webfont lands, since Anton changes the metrics. *\/\n    function spreadToGhost(el) {\n      if (!ghostWord || !el) return;\n      var target = ghostWord.getBoundingClientRect().width;\n      if (!target) return;\n      el.style.letterSpacing = \"0px\";\n      el.style.marginRight = \"0px\";\n      var natural = el.getBoundingClientRect().width;\n      var gaps = el.textContent.trim().length - 1;\n      if (gaps < 1 || !natural) return;\n      var spacing = (target - natural) \/ gaps;\n      el.style.letterSpacing = spacing + \"px\";\n      el.style.marginRight = -spacing + \"px\";\n    }\n\n    function fitSubline() {\n      spreadToGhost(sublineText);\n      spreadToGhost(superText);\n    }\n\n    function roleFor(index) {\n      var n = PRODUCTS.length;\n      var offset = (index - activeIndex + n) % n;\n      if (offset === 0) return \"center\";\n      if (offset === 1) return \"right\";\n      if (offset === n - 1) return \"left\";\n      if (offset === 2) return \"back\";\n      return \"hidden\";\n    }\n\n    function render() {\n      \/* The white pattern is a light surface, so it drags the whole hero over\n         to dark type, a red logo and a red pill in one class. *\/\n      root.classList.toggle(\"is-light\", PRODUCTS[activeIndex].bg === \"white\");\n\n      bgLayers.forEach(function (layer, index) {\n        layer.classList.toggle(\"is-active\", index === activeIndex);\n      });\n\n      copyBlocks.forEach(function (el, i) {\n        el.classList.toggle(\"is-active\", i === activeIndex);\n      });\n\n      items.forEach(function (el, index) {\n        var role = roleFor(index);\n        var s = el.style;\n        if (role === \"center\") {\n          s.left = \"50%\";\n          s.bottom = \"var(--plush-bottom)\";\n          s.height = \"calc(100% - var(--plush-top) - var(--plush-bottom))\";\n          \/* no scale() here: it inflated the painted box past its layout box,\n             which is what let the tall products overrun the welcome line *\/\n          s.transform = \"translateX(-50%)\";\n          s.filter = \"blur(0px)\";\n          s.opacity = \"1\";\n          s.zIndex = \"20\";\n        } else if (role === \"left\" || role === \"right\") {\n          s.left = role === \"left\" ? \"30%\" : \"70%\";\n          s.bottom = \"12%\";\n          s.height = \"22%\";\n          s.transform = \"translateX(-50%) scale(1)\";\n          s.filter = \"blur(2px)\";\n          s.opacity = \"0.85\";\n          s.zIndex = \"10\";\n        } else {\n          s.left = \"50%\";\n          s.bottom = \"12%\";\n          s.height = \"17%\";\n          s.transform = \"translateX(-50%) scale(1)\";\n          s.filter = \"blur(4px)\";\n          s.opacity = role === \"back\" ? \"1\" : \"0\";\n          s.zIndex = \"5\";\n        }\n      });\n\n      dots.forEach(function (dot, index) {\n        var on = index === activeIndex;\n        dot.classList.toggle(\"is-active\", on);\n        dot.setAttribute(\"aria-selected\", on ? \"true\" : \"false\");\n      });\n    }\n\n    function goTo(index, fromUser) {\n      if (isAnimating) return;\n      var n = PRODUCTS.length;\n      var next = ((index % n) + n) % n;\n      if (next === activeIndex) return;\n      isAnimating = true;\n      activeIndex = next;\n      render();\n      setTimeout(function () {\n        isAnimating = false;\n      }, DURATION);\n      if (fromUser) startAutoplay();\n    }\n\n    function navigate(direction, fromUser) {\n      goTo(activeIndex + (direction === \"next\" ? 1 : -1), fromUser);\n    }\n\n    \/* Runs continuously \u2014 no hover or focus pause. The only thing that stops\n       it is a hidden browser tab (avoids racing through slides in the\n       background) or the visitor's reduced-motion preference. *\/\n    function startAutoplay() {\n      if (autoplayTimer) clearInterval(autoplayTimer);\n      autoplayTimer = null;\n      if (reduceMotion.matches || PRODUCTS.length < 2) return;\n      autoplayTimer = setInterval(function () {\n        if (!document.hidden) navigate(\"next\", false);\n      }, AUTOPLAY_MS);\n    }\n\n    \/* Smooth-scroll the jump link instead of teleporting. Divi binds its own\n       handler directly to the anchor and snaps scrollTop in a single step, so\n       this listens in the capture phase on the hero and stops the event before\n       it ever reaches the link. No global scroll-behavior rule is set. The\n       admin-bar offset is left to the browser -- WordPress already sets\n       html { scroll-padding-top } when the bar is showing -- and visitors who\n       ask for reduced motion still get an instant jump. *\/\n    root.addEventListener(\"click\", function (e) {\n      var link = e.target && e.target.closest && e.target.closest(\".amh-discover-link\");\n      if (!link) return;\n      var id = (link.getAttribute(\"href\") || \"\").replace(\/^#\/, \"\");\n      var target = id && document.getElementById(id);\n      if (!target) return;\n      e.preventDefault();\n      e.stopPropagation();\n      if (e.stopImmediatePropagation) e.stopImmediatePropagation();\n      target.scrollIntoView({\n        behavior: reduceMotion.matches ? \"auto\" : \"smooth\",\n        block: \"start\"\n      });\n      if (history.replaceState) history.replaceState(null, \"\", \"#\" + id);\n    }, true);\n\n    root.querySelectorAll(\".amh-btn\").forEach(function (btn) {\n      btn.addEventListener(\"click\", function () {\n        navigate(btn.getAttribute(\"data-dir\"), true);\n      });\n    });\n\n    window.addEventListener(\"resize\", fitSubline);\n\n    \/* fitSubline depends on the giant word's rendered width, which changes on\n       font load and on cqw recompute without root ever resizing \u2014 so observe the\n       word itself, and the root, and re-fit on the next frames after load. *\/\n    if (window.ResizeObserver) {\n      var ro = new ResizeObserver(function () { fitSubline(); });\n      ro.observe(root);\n      if (ghostWord) ro.observe(ghostWord);\n    }\n    requestAnimationFrame(function () { fitSubline(); requestAnimationFrame(fitSubline); });\n    window.addEventListener(\"load\", fitSubline);\n\n    if (reduceMotion.addEventListener) {\n      reduceMotion.addEventListener(\"change\", startAutoplay);\n    }\n\n    render();\n    fitSubline();\n    if (document.fonts && document.fonts.ready) {\n      document.fonts.ready.then(fitSubline);\n    }\n    startAutoplay();\n  })();\n<\/script>\n<\/div><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_section_1 et_pb_section et_section_regular et_flex_section api-fr-intro\">\n<div class=\"et_pb_row_1 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_1 et_pb_column et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_3_5 et_flex_column_3_5_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_text_0 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><h1><span>API : \u00e9quipements et services de mesure<\/span><\/h1>\n<h2>Une expertise mondiale en m\u00e9trologie et un accompagnement local pour vos besoins de fabrication et de contr\u00f4le.<\/h2>\n<p><span>Du contr\u00f4le d\u2019une pi\u00e8ce \u00e0 l\u2019\u00e9talonnage de votre laser tracker, API Metrology vous propose les meilleurs produits du march\u00e9 et une \u00e9quipe de m\u00e9trologues hautement qualifi\u00e9s.<\/span><\/p>\n<\/div><\/div>\n<\/div>\n\n<div class=\"et_pb_column_2 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_2_5 et_flex_column_2_5_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_image_0 et_pb_image et_pb_module et_flex_module\"><span class=\"et_pb_image_wrap\"><img decoding=\"async\" data-src=\"https:\/\/apimetrology.com\/wp-content\/uploads\/2026\/10\/n9d.webp\" alt=\"Figure 3 : laser tracker iLT en situation sur le terrain.\" title=\"Gamme de laser trackers API\" width=\"700\" height=\"522\" data-srcset=\"https:\/\/apimetrology.com\/wp-content\/uploads\/2026\/10\/n9d.webp 700w, https:\/\/apimetrology.com\/wp-content\/uploads\/2026\/10\/n9d-480x358.webp 480w\" data-sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 700px, 100vw\" class=\"wp-image-287634 lazyload\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 700px; --smush-placeholder-aspect-ratio: 700\/522;\" \/><\/span><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_section_2 et_pb_section et_section_regular et_flex_section section_has_divider et_pb_top_divider api-anniversary-banner\"><div class=\"et_pb_top_inside_divider et-no-transition\"><\/div>\n<div class=\"et_pb_row_2 et_pb_row et_pb_gutters3 et_grid_row api-anniversary-row\">\n<div class=\"et_pb_column_3 et_pb_column et_flex_column et_pb_css_mix_blend_mode_passthrough api-anniversary-art\">\n<div class=\"et_pb_image_1 et_pb_image et_pb_module et_flex_module api-anniversary-logo\"><span class=\"et_pb_image_wrap\"><img decoding=\"async\" data-src=\"https:\/\/apimetrology.com\/wp-content\/uploads\/2026\/09\/API-40v2.png\" alt=\"Logo du 40e anniversaire d\u2019API Metrology\" title=\"Logo du 40e anniversaire d\u2019API Metrology\" width=\"1565\" height=\"782\" data-srcset=\"https:\/\/apimetrology.com\/wp-content\/uploads\/2026\/09\/API-40v2.png 1565w, https:\/\/apimetrology.com\/wp-content\/uploads\/2026\/09\/API-40v2-1280x640.png 1280w, https:\/\/apimetrology.com\/wp-content\/uploads\/2026\/09\/API-40v2-980x490.png 980w, https:\/\/apimetrology.com\/wp-content\/uploads\/2026\/09\/API-40v2-480x240.png 480w\" data-sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 1565px, 100vw\" class=\"wp-image-287297 lazyload\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1565px; --smush-placeholder-aspect-ratio: 1565\/782;\" \/><\/span><\/div>\n\n<div class=\"et_pb_code_1 et_pb_code et_pb_module api-anniversary-css\"><div class=\"et_pb_code_inner\"><style>\n\/* API anniversary: proportional artwork and content-driven height. *\/\n.api-anniversary-banner.et_pb_section{padding:0!important;margin:0!important;height:auto!important;min-height:0!important;max-height:none!important;background-size:cover;background-position:center;overflow:hidden}\n.api-anniversary-banner .api-anniversary-row.et_pb_row{display:grid!important;grid-template-columns:minmax(0,48fr) minmax(0,52fr)!important;align-items:center!important;gap:clamp(24px,3vw,56px)!important;width:88%!important;max-width:1440px!important;height:auto!important;min-height:0!important;margin:0 auto!important;padding:12px 0!important;}\n.api-anniversary-banner .api-anniversary-row>.et_pb_column{width:100%!important;max-width:none!important;min-width:0!important;flex-basis:auto!important;margin:0!important;padding:0!important;grid-column:auto!important;gap:0!important;}\n.api-anniversary-banner .api-anniversary-logo{width:100%!important;max-width:none!important;margin:0!important;transform:none!important;}\n.api-anniversary-banner .api-anniversary-logo .et_pb_image_wrap{display:block;width:100%;}\n.api-anniversary-banner .api-anniversary-logo img{display:block;width:100%!important;height:auto!important;max-width:100%!important;object-fit:contain;}\n.api-anniversary-banner .api-anniversary-copy>.et_pb_module{width:100%!important;max-width:none!important;min-height:0!important;margin:0!important;padding:0!important;transform:none!important;}\n.api-anniversary-banner .api-anniversary-title h2{color:#fff!important;font-family:Arial,Helvetica,sans-serif!important;font-size:clamp(28px,2.75vw,48px)!important;font-weight:800!important;line-height:1.02!important;letter-spacing:-.025em!important;text-transform:none!important;margin:0!important;padding:0!important;}\n.api-anniversary-banner .api-anniversary-years.et_pb_module{margin-top:6px!important;}\n.api-anniversary-banner .api-anniversary-note.et_pb_module{margin-top:4px!important;}\n.api-anniversary-banner .api-anniversary-years,.api-anniversary-banner .api-anniversary-note{display:block!important;color:#fff!important;font-family:Arial,Helvetica,sans-serif!important;font-size:clamp(13px,1.1vw,18px)!important;font-weight:700!important;line-height:1.3!important;letter-spacing:.03em!important;text-transform:none!important;text-decoration:none!important;}\n.api-anniversary-banner .api-anniversary-years .et_pb_link_inner,.api-anniversary-banner .api-anniversary-note .et_pb_link_inner{display:block;}\n.api-anniversary-banner .api-anniversary-css{display:none!important;}\n\/* The art intentionally extends below the red band; text never clips. *\/\n.api-anniversary-banner .api-anniversary-art{position:relative;align-self:stretch!important;}\n.api-anniversary-banner .api-anniversary-logo{position:absolute!important;top:-16px;right:0;width:min(100%,clamp(360px,35vw,600px))!important;}\n@media(max-width:767px){\n.api-anniversary-banner .api-anniversary-row.et_pb_row{grid-template-columns:minmax(0,1fr)!important;width:88%!important;max-width:520px!important;padding:20px 0 0!important;gap:14px!important;}\n.api-anniversary-banner .api-anniversary-art{order:2;height:clamp(100px,30vw,150px)!important;overflow:hidden;align-items:center!important;}\n.api-anniversary-banner .api-anniversary-logo{position:relative!important;inset:auto!important;top:-12px!important;width:90%!important;max-width:350px!important;}\n.api-anniversary-banner .api-anniversary-copy{order:1;text-align:center!important;}\n.api-anniversary-banner .api-anniversary-title h2{font-size:clamp(24px,6.6vw,34px)!important;text-align:center!important;}\n.api-anniversary-banner .api-anniversary-years,.api-anniversary-banner .api-anniversary-note{font-size:clamp(13px,3.3vw,16px)!important;text-align:center!important;}\n}\n<\/style><\/div><\/div>\n<\/div>\n\n<div class=\"et_pb_column_4 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough api-anniversary-copy\">\n<div class=\"et_pb_heading_0 et_pb_heading et_pb_module et_flex_module api-anniversary-title\"><div class=\"et_pb_heading_container\"><h2 class=\"et_pb_module_header\">40 ans plus tard.<br>Rien n\u2019\u00e9chappe<br>\u00e0 la mesure.<\/h2><\/div><\/div>\n\n<a class=\"et_pb_link_0 et_pb_link et_pb_module et_flex_module api-anniversary-years\"><span class=\"et_pb_link_inner\"><span class=\"et_pb_link_text\">1987 - 2027<\/span><\/span><\/a>\n\n<a class=\"et_pb_link_1 et_pb_link et_pb_module et_flex_module api-anniversary-note\"><span class=\"et_pb_link_inner\"><span class=\"et_pb_link_text\">Les c\u00e9l\u00e9brations de notre 40e anniversaire commencent bient\u00f4t !<\/span><\/span><\/a>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_section_3 et_pb_section et_section_regular et_block_section apieq api-fr-equipment\" id=\"products\">\n<div class=\"et_pb_row_3 et_pb_row et_block_row apieq-row\">\n<div class=\"et_pb_column_5 et_pb_column et_pb_column_4_4 et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough\">\n<div class=\"et_pb_group_0 et_pb_group et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apieq-head\">\n<div class=\"et_pb_group_1 et_pb_group et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apieq-titles\">\n<div class=\"et_pb_text_1 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apieq-eyebrow\"><div class=\"et_pb_text_inner\"><p>\u00c9quipements<\/p>\n<\/div><\/div>\n\n<div class=\"et_pb_text_2 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apieq-title\"><div class=\"et_pb_text_inner\"><h2>Mesure et \u00e9talonnage<br \/><span style=\"color: #d90025;\">\u00c9quipements<\/span><\/h2>\n<\/div><\/div>\n<\/div>\n\n<div class=\"et_pb_text_3 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apieq-intro\"><div class=\"et_pb_text_inner\"><p>Mesure dimensionnelle et optimisation des proc\u00e9d\u00e9s de fabrication, des laser trackers portables \u00e0 l\u2019\u00e9talonnage des machines-outils.<\/p>\n<\/div><\/div>\n<\/div>\n\n<div class=\"et_pb_group_2 et_pb_group et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apieq-group\">\n<div class=\"et_pb_group_3 et_pb_group et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apieq-grouphead\">\n<div class=\"et_pb_text_4 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apieq-group-title\"><div class=\"et_pb_text_inner\"><h3>Mesure<\/h3>\n<\/div><\/div>\n\n<a class=\"et_pb_link_2 et_pb_link et_pb_module et_flex_module apieq-all\" href=\"\/fr\/mesure\/\"><span class=\"et_pb_link_inner\"><span class=\"et-pb-icon\">$<\/span><span class=\"et_pb_link_text\">Tous les \u00e9quipements de mesure<\/span><\/span><\/a>\n<\/div>\n\n<div class=\"et_pb_group_4 et_pb_group et-last-child et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apieq-grid apieq-mgrid\">\n<div class=\"et_pb_group_5 et_pb_group et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apieq-card apieq-big apieq-line\">\n<div class=\"et_pb_group_6 et_pb_group et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apieq-card-words\">\n<div class=\"et_pb_text_5 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apieq-kicker\"><div class=\"et_pb_text_inner\"><p>Produit phare<\/p>\n<\/div><\/div>\n\n<div class=\"et_pb_text_6 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apieq-card-title\"><div class=\"et_pb_text_inner\"><h3>Gamme de laser trackers API<\/h3>\n<\/div><\/div>\n\n<div class=\"et_pb_text_7 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apieq-card-desc\"><div class=\"et_pb_text_inner\"><p>Une machine \u00e0 mesurer tridimensionnelle portable dans votre atelier. Mesurez les grandes pi\u00e8ces sur leur lieu de fabrication, avec la pr\u00e9cision d\u2019un laser tracker sur de longues distances.<\/p>\n<\/div><\/div>\n<\/div>\n\n<div class=\"et_pb_image_2 et_pb_image et_pb_module et_flex_module apieq-img\"><span class=\"et_pb_image_wrap\"><img decoding=\"async\" data-src=\"https:\/\/apimetrology.com\/wp-content\/uploads\/2026\/09\/tracker-line-up-2026.png\" alt=\"Gamme de laser trackers API\" title=\"Gamme de laser trackers API\" width=\"1117\" height=\"870\" data-srcset=\"https:\/\/apimetrology.com\/wp-content\/uploads\/2026\/09\/tracker-line-up-2026.png 1117w, https:\/\/apimetrology.com\/wp-content\/uploads\/2026\/09\/tracker-line-up-2026-980x763.png 980w, https:\/\/apimetrology.com\/wp-content\/uploads\/2026\/09\/tracker-line-up-2026-480x374.png 480w\" data-sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1117px, 100vw\" class=\"wp-image-287391 lazyload\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1117px; --smush-placeholder-aspect-ratio: 1117\/870;\" \/><\/span><\/div>\n\n<div class=\"et_pb_module et_pb_button_module_wrapper et_pb_button_0_wrapper\"><a class=\"et_pb_button_0 et_pb_button et_pb_bg_layout_light et_pb_module et_flex_module apieq-btn\" href=\"\/fr\/api-laser-tracker\/\">D\u00e9couvrir les laser trackers API<\/a><\/div>\n<\/div>\n\n<div class=\"et_pb_group_7 et_pb_group et-last-child et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apieq-tiles\">\n<div class=\"et_pb_group_8 et_pb_group et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apieq-card apieq-tile apieq-ladar\">\n<div class=\"et_pb_group_9 et_pb_group et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apieq-tile-words\">\n<div class=\"et_pb_text_8 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apieq-tile-name\"><div class=\"et_pb_text_inner\"><h3>Dynamic 9D LADAR<\/h3>\n<\/div><\/div>\n\n<div class=\"et_pb_text_9 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apieq-tile-desc\"><div class=\"et_pb_text_inner\"><p>Num\u00e9risation automatis\u00e9e sans contact pour robots et cellules de production.<\/p>\n<\/div><\/div>\n<\/div>\n\n<div class=\"et_pb_image_3 et_pb_image et_pb_module et_flex_module apieq-img\"><span class=\"et_pb_image_wrap\"><img decoding=\"async\" data-src=\"\/wp-content\/uploads\/2026\/09\/api-equip-dynamic-9d-ladar.webp\" alt=\"Dynamic 9D LADAR\" title=\"Dynamic 9D LADAR\" width=\"294\" height=\"640\" data-srcset=\"https:\/\/apimetrology.com\/wp-content\/uploads\/2026\/09\/api-equip-dynamic-9d-ladar.webp 294w, https:\/\/apimetrology.com\/wp-content\/uploads\/2026\/09\/api-equip-dynamic-9d-ladar-138x300.webp 138w\" data-sizes=\"(max-width: 294px) 100vw, 294px\" class=\"wp-image-287352 lazyload\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 294px; --smush-placeholder-aspect-ratio: 294\/640;\" \/><\/span><\/div>\n\n<a class=\"et_pb_link_3 et_pb_link et_pb_module et_flex_module apieq-go\" href=\"\/fr\/ladar\/\"><span class=\"et_pb_link_inner\"><span class=\"et-pb-icon\">$<\/span><span class=\"et_pb_link_text\">D\u00e9couvrir Dynamic 9D LADAR<\/span><\/span><\/a>\n<\/div>\n\n<div class=\"et_pb_group_10 et_pb_group et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apieq-card apieq-tile apieq-vprobe\">\n<div class=\"et_pb_group_11 et_pb_group et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apieq-tile-words\">\n<div class=\"et_pb_text_10 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apieq-tile-name\"><div class=\"et_pb_text_inner\"><h3>vProbe<\/h3>\n<\/div><\/div>\n\n<div class=\"et_pb_text_11 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apieq-tile-desc\"><div class=\"et_pb_text_inner\"><p>Palpeur portatif sans fil pour les points cach\u00e9s et les espaces exigus.<\/p>\n<\/div><\/div>\n<\/div>\n\n<div class=\"et_pb_image_4 et_pb_image et_pb_module et_flex_module apieq-img\"><span class=\"et_pb_image_wrap\"><img decoding=\"async\" data-src=\"\/wp-content\/uploads\/2026\/09\/api-equip-vprobe.webp\" alt=\"Palpeur portatif vProbe\" title=\"Palpeur portatif vProbe\" width=\"243\" height=\"640\" data-srcset=\"https:\/\/apimetrology.com\/wp-content\/uploads\/2026\/09\/api-equip-vprobe.webp 243w, https:\/\/apimetrology.com\/wp-content\/uploads\/2026\/09\/api-equip-vprobe-114x300.webp 114w\" data-sizes=\"(max-width: 243px) 100vw, 243px\" class=\"wp-image-287353 lazyload\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 243px; --smush-placeholder-aspect-ratio: 243\/640;\" \/><\/span><\/div>\n\n<a class=\"et_pb_link_4 et_pb_link et_pb_module et_flex_module apieq-go\" href=\"\/fr\/vprobe\/\"><span class=\"et_pb_link_inner\"><span class=\"et-pb-icon\">$<\/span><span class=\"et_pb_link_text\">D\u00e9couvrir vProbe<\/span><\/span><\/a>\n<\/div>\n\n<div class=\"et_pb_group_12 et_pb_group et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apieq-card apieq-tile\">\n<div class=\"et_pb_group_13 et_pb_group et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apieq-tile-words\">\n<div class=\"et_pb_text_12 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apieq-tile-name\"><div class=\"et_pb_text_inner\"><h3>Gamme iScan<\/h3>\n<\/div><\/div>\n\n<div class=\"et_pb_text_13 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apieq-tile-desc\"><div class=\"et_pb_text_inner\"><p>Scanners 3D portatifs : 3D, Lite, Magic et Track Scan.<\/p>\n<\/div><\/div>\n<\/div>\n\n<div class=\"et_pb_image_5 et_pb_image et_pb_module et_flex_module apieq-img\"><span class=\"et_pb_image_wrap\"><img decoding=\"async\" data-src=\"\/wp-content\/uploads\/2026\/09\/api-equip-iscan-series.webp\" alt=\"Scanner 3D iScan\" title=\"Scanner 3D iScan\" width=\"434\" height=\"640\" data-srcset=\"https:\/\/apimetrology.com\/wp-content\/uploads\/2026\/09\/api-equip-iscan-series.webp 434w, https:\/\/apimetrology.com\/wp-content\/uploads\/2026\/09\/api-equip-iscan-series-203x300.webp 203w\" data-sizes=\"(max-width: 434px) 100vw, 434px\" class=\"wp-image-287354 lazyload\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 434px; --smush-placeholder-aspect-ratio: 434\/640;\" \/><\/span><\/div>\n\n<a class=\"et_pb_link_5 et_pb_link et_pb_module et_flex_module apieq-go\" href=\"\/fr\/serie-iscan\/\"><span class=\"et_pb_link_inner\"><span class=\"et-pb-icon\">$<\/span><span class=\"et_pb_link_text\">D\u00e9couvrir la gamme iScan<\/span><\/span><\/a>\n<\/div>\n\n<div class=\"et_pb_group_14 et_pb_group et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apieq-card apieq-tile\">\n<div class=\"et_pb_group_15 et_pb_group et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apieq-tile-words\">\n<div class=\"et_pb_text_14 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apieq-tile-name\"><div class=\"et_pb_text_inner\"><h3>Cibles pour laser trackers<\/h3>\n<\/div><\/div>\n\n<div class=\"et_pb_text_15 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apieq-tile-desc\"><div class=\"et_pb_text_inner\"><p>SMR, Smart Track Sensor et Active Target.<\/p>\n<\/div><\/div>\n<\/div>\n\n<div class=\"et_pb_image_6 et_pb_image et_pb_module et_flex_module apieq-img\"><span class=\"et_pb_image_wrap\"><img decoding=\"async\" data-src=\"\/wp-content\/uploads\/2026\/09\/api-equip-laser-tracker-targets.webp\" alt=\"Cibles pour laser trackers (SMR)\" title=\"Cibles pour laser trackers (SMR)\" width=\"300\" height=\"226\" data-srcset=\"\/wp-content\/uploads\/2026\/09\/api-equip-laser-tracker-targets.webp 300w\" data-sizes=\"(max-width: 300px) 100vw, 300px\" class=\"wp-image-287355 lazyload\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 300px; --smush-placeholder-aspect-ratio: 300\/226;\" \/><\/span><\/div>\n\n<a class=\"et_pb_link_6 et_pb_link et_pb_module et_flex_module apieq-go\" href=\"\/fr\/cibles-du-laser-tracker\/\"><span class=\"et_pb_link_inner\"><span class=\"et-pb-icon\">$<\/span><span class=\"et_pb_link_text\">D\u00e9couvrir les cibles pour laser trackers<\/span><\/span><\/a>\n<\/div>\n\n<div class=\"et_pb_group_16 et_pb_group et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apieq-card apieq-tile apieq-progage\">\n<div class=\"et_pb_group_17 et_pb_group et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apieq-tile-words\">\n<div class=\"et_pb_text_16 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apieq-tile-name\"><div class=\"et_pb_text_inner\"><h3>Num\u00e9risation et contr\u00f4le<\/h3>\n<\/div><\/div>\n\n<div class=\"et_pb_text_17 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apieq-tile-desc\"><div class=\"et_pb_text_inner\"><p>Bras de mesure tridimensionnelle portables et scanners laser 3D.<\/p>\n<\/div><\/div>\n<\/div>\n\n<div class=\"et_pb_image_7 et_pb_image et_pb_module et_flex_module apieq-img\"><span class=\"et_pb_image_wrap\"><img decoding=\"async\" data-src=\"https:\/\/apimetrology.com\/wp-content\/uploads\/2026\/10\/API-ProGAGE-and-Scanner-808x1024-1.png\" alt=\"API ProGAGE et scanner\" title=\"API ProGAGE et scanner\" width=\"1516\" height=\"1920\" data-sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 808px, 100vw\" class=\"wp-image-287393 lazyload\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1516px; --smush-placeholder-aspect-ratio: 1516\/1920;\" \/><\/span><\/div>\n\n<a class=\"et_pb_link_7 et_pb_link et_pb_module et_flex_module apieq-go\" href=\"\/fr\/numerisation-et-inspection\/\"><span class=\"et_pb_link_inner\"><span class=\"et-pb-icon\">$<\/span><span class=\"et_pb_link_text\">D\u00e9couvrir la num\u00e9risation et le contr\u00f4le<\/span><\/span><\/a>\n<\/div>\n\n<div class=\"et_pb_group_18 et_pb_group et-last-child et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apieq-card apieq-help\">\n<div class=\"et_pb_group_19 et_pb_group et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apieq-tile-words\">\n<div class=\"et_pb_text_18 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apieq-help-title\"><div class=\"et_pb_text_inner\"><h3>Quel syst\u00e8me choisir ?<\/h3>\n<\/div><\/div>\n\n<div class=\"et_pb_text_19 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apieq-tile-desc\"><div class=\"et_pb_text_inner\"><p>D\u00e9crivez-nous votre pi\u00e8ce et ses tol\u00e9rances. Nous vous aiderons \u00e0 d\u00e9finir la bonne m\u00e9thode de mesure.<\/p>\n<\/div><\/div>\n<\/div>\n\n<div class=\"et_pb_module et_pb_button_module_wrapper et_pb_button_1_wrapper\"><a class=\"et_pb_button_1 et_pb_button et_pb_bg_layout_light et_pb_module et_flex_module apieq-btn\" href=\"\/fr\/contacter-api-metrology\/\">Parler \u00e0 un expert<\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_group_20 et_pb_group et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apieq-group\">\n<div class=\"et_pb_group_21 et_pb_group et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apieq-grouphead\">\n<div class=\"et_pb_text_20 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apieq-group-title\"><div class=\"et_pb_text_inner\"><h3>\u00c9talonnage<\/h3>\n<\/div><\/div>\n\n<a class=\"et_pb_link_8 et_pb_link et_pb_module et_flex_module apieq-all\" href=\"\/fr\/calibration\/\"><span class=\"et_pb_link_inner\"><span class=\"et-pb-icon\">$<\/span><span class=\"et_pb_link_text\">Tous les \u00e9quipements d\u2019\u00e9talonnage<\/span><\/span><\/a>\n<\/div>\n\n<div class=\"et_pb_group_22 et_pb_group et-last-child et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apieq-grid apieq-cgrid\">\n<div class=\"et_pb_group_23 et_pb_group et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apieq-card apieq-big apieq-xd\">\n<div class=\"et_pb_group_24 et_pb_group et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apieq-card-words\">\n<div class=\"et_pb_text_21 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apieq-kicker\"><div class=\"et_pb_text_inner\"><p>\u00c9talonnage des machines-outils<\/p>\n<\/div><\/div>\n\n<div class=\"et_pb_text_22 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apieq-card-title\"><div class=\"et_pb_text_inner\"><h3>XD Laser<\/h3>\n<\/div><\/div>\n\n<div class=\"et_pb_text_23 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apieq-card-desc\"><div class=\"et_pb_text_inner\"><p>Mesurez les six param\u00e8tres d\u2019erreur d\u2019une machine-outil en une seule installation.<\/p>\n<\/div><\/div>\n<\/div>\n\n<div class=\"et_pb_image_8 et_pb_image et_pb_module et_flex_module apieq-img\"><span class=\"et_pb_image_wrap\"><img decoding=\"async\" data-src=\"\/wp-content\/uploads\/2026\/09\/api-equip-xd-laser.webp\" alt=\"XD Laser\" title=\"XD Laser\" width=\"640\" height=\"582\" data-srcset=\"\/wp-content\/uploads\/2026\/09\/api-equip-xd-laser.webp 640w, \/wp-content\/uploads\/2026\/09\/api-equip-xd-laser-480x436.webp 480w\" data-sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 640px, 100vw\" class=\"wp-image-287357 lazyload\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 640px; --smush-placeholder-aspect-ratio: 640\/582;\" \/><\/span><\/div>\n\n<div class=\"et_pb_module et_pb_button_module_wrapper et_pb_button_2_wrapper\"><a class=\"et_pb_button_2 et_pb_button et_pb_bg_layout_light et_pb_module et_flex_module apieq-btn\" href=\"\/fr\/laser-xd\/\">D\u00e9couvrir l\u2019\u00e9talonnage CNC<\/a><\/div>\n<\/div>\n\n<div class=\"et_pb_group_25 et_pb_group et-last-child et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apieq-tiles\">\n<div class=\"et_pb_group_26 et_pb_group et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apieq-card apieq-tile\">\n<div class=\"et_pb_group_27 et_pb_group et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apieq-tile-words\">\n<div class=\"et_pb_text_24 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apieq-tile-name\"><div class=\"et_pb_text_inner\"><h3>Ballbar<\/h3>\n<\/div><\/div>\n\n<div class=\"et_pb_text_25 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apieq-tile-desc\"><div class=\"et_pb_text_inner\"><p>Contr\u00f4le sans fil des machines-outils, avec un \u00e9chantillonnage \u00e0 1 000 Hz.<\/p>\n<\/div><\/div>\n<\/div>\n\n<div class=\"et_pb_image_9 et_pb_image et_pb_module et_flex_module apieq-img\"><span class=\"et_pb_image_wrap\"><img decoding=\"async\" data-src=\"\/wp-content\/uploads\/2026\/09\/api-equip-ballbar.webp\" alt=\"Ballbar sans fil API\" title=\"Ballbar sans fil API\" width=\"275\" height=\"88\" data-srcset=\"\/wp-content\/uploads\/2026\/09\/api-equip-ballbar.webp 275w\" data-sizes=\"(max-width: 275px) 100vw, 275px\" class=\"wp-image-287358 lazyload\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 275px; --smush-placeholder-aspect-ratio: 275\/88;\" \/><\/span><\/div>\n\n<a class=\"et_pb_link_9 et_pb_link et_pb_module et_flex_module apieq-go\" href=\"\/fr\/ballbar\/\"><span class=\"et_pb_link_inner\"><span class=\"et-pb-icon\">$<\/span><span class=\"et_pb_link_text\">D\u00e9couvrir Ballbar<\/span><\/span><\/a>\n<\/div>\n\n<div class=\"et_pb_group_28 et_pb_group et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apieq-card apieq-tile\">\n<div class=\"et_pb_group_29 et_pb_group et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apieq-tile-words\">\n<div class=\"et_pb_text_26 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apieq-tile-name\"><div class=\"et_pb_text_inner\"><h3>SwivelCheck<\/h3>\n<\/div><\/div>\n\n<div class=\"et_pb_text_27 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apieq-tile-desc\"><div class=\"et_pb_text_inner\"><p>\u00c9talonnage des axes pivotants et des tables rotatives.<\/p>\n<\/div><\/div>\n<\/div>\n\n<div class=\"et_pb_image_10 et_pb_image et_pb_module et_flex_module apieq-img\"><span class=\"et_pb_image_wrap\"><img decoding=\"async\" data-src=\"\/wp-content\/uploads\/2026\/09\/api-equip-swivelcheck.webp\" alt=\"SwivelCheck\" title=\"SwivelCheck\" width=\"489\" height=\"640\" data-srcset=\"\/wp-content\/uploads\/2026\/09\/api-equip-swivelcheck.webp 489w, \/wp-content\/uploads\/2026\/09\/api-equip-swivelcheck-480x628.webp 480w\" data-sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 489px, 100vw\" class=\"wp-image-287359 lazyload\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 489px; --smush-placeholder-aspect-ratio: 489\/640;\" \/><\/span><\/div>\n\n<a class=\"et_pb_link_10 et_pb_link et_pb_module et_flex_module apieq-go\" href=\"\/fr\/swivel-check-2\/\"><span class=\"et_pb_link_inner\"><span class=\"et-pb-icon\">$<\/span><span class=\"et_pb_link_text\">D\u00e9couvrir SwivelCheck<\/span><\/span><\/a>\n<\/div>\n\n<div class=\"et_pb_group_30 et_pb_group et-last-child et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apieq-card apieq-tile apieq-robot\">\n<div class=\"et_pb_group_31 et_pb_group et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apieq-tile-words\">\n<div class=\"et_pb_text_28 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apieq-tile-name\"><div class=\"et_pb_text_inner\"><h3>\u00c9talonnage des robots<\/h3>\n<\/div><\/div>\n\n<div class=\"et_pb_text_29 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apieq-tile-desc\"><div class=\"et_pb_text_inner\"><p>Mesure en temps r\u00e9el \u00e0 6 degr\u00e9s de libert\u00e9 pour des robots plus pr\u00e9cis.<\/p>\n<\/div><\/div>\n<\/div>\n\n<div class=\"et_pb_image_11 et_pb_image et_pb_module et_flex_module apieq-img\"><span class=\"et_pb_image_wrap\"><img decoding=\"async\" data-src=\"\/wp-content\/uploads\/2026\/09\/api-equip-robot-calibration.webp\" alt=\"Laser tracker \u00e9talonnant un bras robotis\u00e9\" title=\"Laser tracker \u00e9talonnant un bras robotis\u00e9\" width=\"573\" height=\"483\" data-srcset=\"\/wp-content\/uploads\/2026\/09\/api-equip-robot-calibration.webp 573w, \/wp-content\/uploads\/2026\/09\/api-equip-robot-calibration-480x405.webp 480w\" data-sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 573px, 100vw\" class=\"wp-image-287360 lazyload\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 573px; --smush-placeholder-aspect-ratio: 573\/483;\" \/><\/span><\/div>\n\n<a class=\"et_pb_link_11 et_pb_link et_pb_module et_flex_module apieq-go\" href=\"\/fr\/calibration-du-robot\/\"><span class=\"et_pb_link_inner\"><span class=\"et-pb-icon\">$<\/span><span class=\"et_pb_link_text\">D\u00e9couvrir l\u2019\u00e9talonnage des robots<\/span><\/span><\/a>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_code_2 et_pb_code et_pb_module apieq-css\"><div class=\"et_pb_code_inner\"><style>\n\/* Homepage equipment section 2026: layout helpers only. Copy, images, links and colors live in the modules. *\/\n.apieq{overflow-x:clip}\n.apieq-row{margin-left:auto!important;margin-right:auto!important}\n.apieq h2,.apieq h3{margin:0;padding-bottom:0!important}\n.apieq-eyebrow p{display:flex;align-items:center;gap:10px;text-transform:uppercase;letter-spacing:1px}\n.apieq-eyebrow p::before{content:\"\";flex:none;width:6px;height:6px;border-radius:50%;background:#d90025}\n.apieq-kicker p{text-transform:uppercase;letter-spacing:1px;opacity:.8}\n.apieq-grid>.apieq-big{flex:0 0 calc((100% - 64px)*.4 + 16px);min-width:0}\n.apieq-grid>.apieq-tiles{flex:1 1 0;min-width:0}\n.apieq-tiles>.apieq-card{flex:0 0 calc((100% - 32px)\/3);min-width:0;box-sizing:border-box}\n.apieq-card{position:relative;overflow:hidden;box-sizing:border-box}\n.apieq-card>.et_pb_image{z-index:0;pointer-events:none}\n.apieq-card-words,.apieq-tile-words{position:relative;z-index:1}\n.apieq-card .et_pb_image img{display:block}\n.apieq-go,.apieq-go .et_pb_link_inner{position:static!important}\n.apieq-big .et_pb_button_module_wrapper,.apieq-big a.et_pb_button,.apieq-help .et_pb_button_module_wrapper,.apieq-help a.et_pb_button{position:static!important}\nbody #page-container .et_pb_section .apieq-card a.et_pb_button.apieq-btn::before{content:\"\"!important;position:absolute!important;top:0!important;right:0!important;bottom:0!important;left:0!important;width:auto!important;height:auto!important;z-index:2;display:block!important;opacity:1!important;margin:0!important;background:none!important;border:0!important;font-size:0!important;transform:none!important}\n.apieq-go .et_pb_link_inner{width:34px;height:34px;border:1px solid #e5e5e5;border-radius:50%;background:#fff;justify-content:center!important;align-items:center!important;box-sizing:border-box;transition:background-color .2s,border-color .2s}\n.apieq-go .et_pb_link_text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}\n.apieq-go .et_pb_link_inner::after{content:\"\";position:absolute;inset:0;z-index:2}\n.apieq-tile:hover .apieq-go .et_pb_link_inner{background:#d90025;border-color:#d90025}\n.apieq-tile:hover .apieq-go .et-pb-icon{color:#fff!important}\n.apieq-go .et_pb_link_inner:focus-visible{outline:2px solid #d90025;outline-offset:3px}\n.apieq-all .et_pb_link_inner{white-space:nowrap}\nbody #page-container .et_pb_section .apieq-btn{white-space:nowrap}\nbody #page-container .et_pb_section a.apieq-btn:hover{padding-left:20px!important;padding-right:20px!important}\n@media (max-width:980px){\n .apieq-grid>.apieq-big{flex:none;width:100%}\n .apieq-grid>.apieq-tiles{flex:none;width:100%}\n}\n@media (max-width:767px){\n .apieq-tiles{flex-wrap:nowrap!important;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}\n body #page-container .apieq .apieq-grid>.apieq-tiles.et_pb_group{width:calc(100% + 20px)!important;max-width:none!important;margin-right:-20px!important;padding-right:20px!important;box-sizing:border-box}\n .apieq-tiles::-webkit-scrollbar{display:none}\n .apieq-tiles>.apieq-card{flex:0 0 156px;scroll-snap-align:start}\n .apieq-tile .apieq-go{align-self:flex-end}\n}\n.apieq-css{display:none!important}\n\n\/* French homepage only: clear translated copy without changing card composition. *\/\n@media(min-width:768px){\n .api-fr-equipment .apieq-line .apieq-img{width:225px!important}\n .api-fr-equipment .apieq-ladar .apieq-img{width:45px!important}\n .api-fr-equipment .apieq-vprobe .apieq-img{width:43px!important}\n .api-fr-equipment .apieq-progage .apieq-img{width:90px!important}\n .api-fr-equipment .apieq-robot .apieq-img{width:126px!important}\n}\n@media(min-width:981px){\n .api-fr-equipment .apieq-xd .apieq-img{width:130px!important}\n .api-fr-equipment .apieq-xd .apieq-card-desc{max-width:210px!important}\n}\n@media(max-width:767px){\n .api-fr-equipment .apieq-line{min-height:540px!important}\n .api-fr-equipment .apieq-xd .apieq-kicker{max-width:180px!important}\n .api-fr-equipment .apieq-xd .apieq-kicker p{line-height:1.3!important}\n .api-fr-intro :is(h1,h2){line-height:1.3!important;overflow-wrap:break-word}\n .api-fr-intro p{line-height:1.5!important}\n}\n<\/style><\/div><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_section_4 et_pb_section et_section_regular et_block_section apisol\" id=\"solutions\">\n<div class=\"et_pb_row_4 et_pb_row et_block_row apisol-row\">\n<div class=\"et_pb_column_6 et_pb_column et_pb_column_4_4 et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough\">\n<div class=\"et_pb_group_32 et_pb_group et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apisol-head\">\n<div class=\"et_pb_group_33 et_pb_group et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apisol-titles\">\n<div class=\"et_pb_text_30 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apisol-eyebrow\"><div class=\"et_pb_text_inner\"><p>DES SOLUTIONS ADAPT\u00c9ES \u00c0 VOS D\u00c9FIS<\/p>\n<\/div><\/div>\n\n<div class=\"et_pb_heading_1 et_pb_heading et_pb_module et_flex_module apisol-title\"><div class=\"et_pb_heading_container\"><h2 class=\"et_pb_module_header\">Quel d\u00e9fi souhaitez-vous<br>relever<span style=\"color:#d90025\"> ?<\/span><\/h2><\/div><\/div>\n<\/div>\n\n<div class=\"et_pb_text_31 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apisol-intro\"><div class=\"et_pb_text_inner\"><p>Partez du r\u00e9sultat que vous recherchez.<br \/>Nous apportons la technologie et l\u2019expertise.<\/p>\n<\/div><\/div>\n<\/div>\n\n<div class=\"et_pb_tabs_0 et_pb_tabs et_pb_module apisol-tabs\"><ul class=\"et_pb_tabs_controls clearfix\"><li class=\"et_pb_tab_nav_item_0 et_pb_tab_nav_item et_pb_tab_0 et_pb_tab_active\"><a class=\"et_pb_tab_nav_item_link\" href=\"#\">Automatiser la mesure\nInt\u00e9grez le contr\u00f4le \u00e0 votre processus.<\/a><\/li><li class=\"et_pb_tab_nav_item_1 et_pb_tab_nav_item et_pb_tab_1\"><a class=\"et_pb_tab_nav_item_link\" href=\"#\">Am\u00e9liorer la pr\u00e9cision des machines\nIdentifiez les erreurs. D\u00e9finissez les corrections.<\/a><\/li><li class=\"et_pb_tab_nav_item_2 et_pb_tab_nav_item et_pb_tab_2\"><a class=\"et_pb_tab_nav_item_link\" href=\"#\">Contr\u00f4ler et v\u00e9rifier les pi\u00e8ces\n\u00c9valuez pr\u00e9cis\u00e9ment la conformit\u00e9 de votre pi\u00e8ce.<\/a><\/li><li class=\"et_pb_tab_nav_item_3 et_pb_tab_nav_item et_pb_tab_3\"><a class=\"et_pb_tab_nav_item_link\" href=\"#\">Relever les g\u00e9om\u00e9tries complexes\nDe la pi\u00e8ce physique au mod\u00e8le num\u00e9rique.<\/a><\/li><\/ul><div class=\"et_pb_all_tabs\">\n<div class=\"et_pb_tab_0 et_pb_tab clearfix et_pb_active_content et_pb_module et_flex_module apisol-automation\"><div class=\"et_pb_tab_content et_flex_module\">\n<div class=\"et_pb_group_34 et_pb_group et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apisol-photo-wrap\">\n<div class=\"et_pb_image_12 et_pb_image et_pb_module et_flex_module apisol-image\"><span class=\"et_pb_image_wrap\"><img decoding=\"async\" data-src=\"https:\/\/apimetrology.com\/wp-content\/uploads\/2022\/05\/robot-car-line-final2.png\" alt=\"Mesure automatis\u00e9e robotis\u00e9e sur une ligne de production automobile\" title=\"Automatiser la mesure\" width=\"3000\" height=\"1500\" data-srcset=\"https:\/\/apimetrology.com\/wp-content\/uploads\/2022\/05\/robot-car-line-final2.png 3000w, https:\/\/apimetrology.com\/wp-content\/uploads\/2022\/05\/robot-car-line-final2-1280x640.png 1280w, https:\/\/apimetrology.com\/wp-content\/uploads\/2022\/05\/robot-car-line-final2-980x490.png 980w, https:\/\/apimetrology.com\/wp-content\/uploads\/2022\/05\/robot-car-line-final2-480x240.png 480w\" data-sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 3000px, 100vw\" class=\"wp-image-277408 lazyload\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 3000px; --smush-placeholder-aspect-ratio: 3000\/1500;\" \/><\/span><\/div>\n\n<div class=\"et_pb_text_32 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apisol-caption\"><div class=\"et_pb_text_inner\"><p>MESURE AUTOMATIS\u00c9E<\/p>\n<\/div><\/div>\n<\/div>\n\n<div class=\"et_pb_group_35 et_pb_group et-last-child et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apisol-panel-copy\">\n<div class=\"et_pb_heading_2 et_pb_heading et_pb_module et_flex_module apisol-panel-title\"><div class=\"et_pb_heading_container\"><h3 class=\"et_pb_module_header\">Int\u00e9grez la mesure \u00e0 votre flux de production.<\/h3><\/div><\/div>\n\n<div class=\"et_pb_text_33 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apisol-description\"><div class=\"et_pb_text_inner\"><p>Associez les technologies de mesure API \u00e0 la robotique et aux syst\u00e8mes de production pour int\u00e9grer des contr\u00f4les r\u00e9p\u00e9tables \u00e0 votre processus.<\/p>\n<\/div><\/div>\n\n<div class=\"et_pb_group_36 et_pb_group et-last-child et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apisol-panel-footer\">\n<div class=\"et_pb_text_34 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apisol-tags\"><div class=\"et_pb_text_inner\"><p>Robotique \u00b7 Mesure en cours de production<\/p>\n<\/div><\/div>\n\n<a class=\"et_pb_link_12 et_pb_link et_pb_module et_flex_module apisol-explore\" href=\"\/fr\/automation\/\"><span class=\"et_pb_link_inner\"><span class=\"et_pb_link_text\">D\u00e9couvrir la solution \u2197<\/span><\/span><\/a>\n<\/div>\n<\/div>\n<\/div><\/div>\n\n<div class=\"et_pb_tab_1 et_pb_tab clearfix et_pb_module et_flex_module apisol-accuracy\"><div class=\"et_pb_tab_content et_flex_module\">\n<div class=\"et_pb_group_37 et_pb_group et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apisol-photo-wrap\">\n<div class=\"et_pb_image_13 et_pb_image et_pb_module et_flex_module apisol-image\"><span class=\"et_pb_image_wrap\"><img decoding=\"async\" data-src=\"https:\/\/apimetrology.com\/wp-content\/uploads\/2026\/09\/api-solutions-machine-accuracy.webp\" alt=\"Optique de mesure API dans une machine-outil lors de la compensation des erreurs volum\u00e9triques\" title=\"Am\u00e9liorer la pr\u00e9cision des machines\" width=\"1100\" height=\"619\" data-srcset=\"https:\/\/apimetrology.com\/wp-content\/uploads\/2026\/09\/api-solutions-machine-accuracy.webp 1100w, https:\/\/apimetrology.com\/wp-content\/uploads\/2026\/09\/api-solutions-machine-accuracy-980x551.webp 980w, https:\/\/apimetrology.com\/wp-content\/uploads\/2026\/09\/api-solutions-machine-accuracy-480x270.webp 480w\" data-sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1100px, 100vw\" class=\"wp-image-287368 lazyload\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1100px; --smush-placeholder-aspect-ratio: 1100\/619;\" \/><\/span><\/div>\n\n<div class=\"et_pb_text_35 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apisol-caption\"><div class=\"et_pb_text_inner\"><p>PR\u00c9CISION DES MACHINES-OUTILS<\/p>\n<\/div><\/div>\n<\/div>\n\n<div class=\"et_pb_group_38 et_pb_group et-last-child et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apisol-panel-copy\">\n<div class=\"et_pb_heading_3 et_pb_heading et_pb_module et_flex_module apisol-panel-title\"><div class=\"et_pb_heading_container\"><h3 class=\"et_pb_module_header\">Faites de la pr\u00e9cision une \u00e9tape du processus.<\/h3><\/div><\/div>\n\n<div class=\"et_pb_text_36 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apisol-description\"><div class=\"et_pb_text_inner\"><p>\u00c9valuez les performances de votre machine dans tout son volume de travail. Adaptez l\u2019\u00e9talonnage et la compensation des erreurs aux pi\u00e8ces \u00e0 produire.<\/p>\n<\/div><\/div>\n\n<div class=\"et_pb_group_39 et_pb_group et-last-child et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apisol-panel-footer\">\n<div class=\"et_pb_text_37 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apisol-tags\"><div class=\"et_pb_text_inner\"><p>\u00c9talonnage \u00b7 Compensation volum\u00e9trique<\/p>\n<\/div><\/div>\n\n<a class=\"et_pb_link_13 et_pb_link et_pb_module et_flex_module apisol-explore\" href=\"\/fr\/calibration\/\"><span class=\"et_pb_link_inner\"><span class=\"et_pb_link_text\">D\u00e9couvrir la solution \u2197<\/span><\/span><\/a>\n<\/div>\n<\/div>\n<\/div><\/div>\n\n<div class=\"et_pb_tab_2 et_pb_tab clearfix et_pb_module et_flex_module apisol-inspection\"><div class=\"et_pb_tab_content et_flex_module\">\n<div class=\"et_pb_group_40 et_pb_group et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apisol-photo-wrap\">\n<div class=\"et_pb_image_14 et_pb_image et_pb_module et_flex_module apisol-image\"><span class=\"et_pb_image_wrap\"><img decoding=\"async\" data-src=\"https:\/\/apimetrology.com\/wp-content\/uploads\/2020\/04\/radian_application_01.jpg\" alt=\"Laser tracker API contr\u00f4lant une grande pi\u00e8ce usin\u00e9e\" title=\"Contr\u00f4ler et v\u00e9rifier les pi\u00e8ces\" width=\"985\" height=\"649\" data-srcset=\"https:\/\/apimetrology.com\/wp-content\/uploads\/2020\/04\/radian_application_01.jpg 985w, https:\/\/apimetrology.com\/wp-content\/uploads\/2020\/04\/radian_application_01-300x198.jpg 300w, https:\/\/apimetrology.com\/wp-content\/uploads\/2020\/04\/radian_application_01-768x506.jpg 768w, https:\/\/apimetrology.com\/wp-content\/uploads\/2020\/04\/radian_application_01-100x66.jpg 100w\" data-sizes=\"(max-width: 985px) 100vw, 985px\" class=\"wp-image-3705 lazyload\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 985px; --smush-placeholder-aspect-ratio: 985\/649;\" \/><\/span><\/div>\n\n<div class=\"et_pb_text_38 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apisol-caption\"><div class=\"et_pb_text_inner\"><p>CONTR\u00d4LE ET ALIGNEMENT DES PI\u00c8CES<\/p>\n<\/div><\/div>\n<\/div>\n\n<div class=\"et_pb_group_41 et_pb_group et-last-child et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apisol-panel-copy\">\n<div class=\"et_pb_heading_4 et_pb_heading et_pb_module et_flex_module apisol-panel-title\"><div class=\"et_pb_heading_container\"><h3 class=\"et_pb_module_header\">\u00c9valuez pr\u00e9cis\u00e9ment la conformit\u00e9 de votre pi\u00e8ce.<\/h3><\/div><\/div>\n\n<div class=\"et_pb_text_39 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apisol-description\"><div class=\"et_pb_text_inner\"><p>V\u00e9rifiez les cotes critiques, contr\u00f4lez l\u2019alignement et comparez les pi\u00e8ces aux exigences de conception, du premier article \u00e0 la production en s\u00e9rie.<\/p>\n<\/div><\/div>\n\n<div class=\"et_pb_group_42 et_pb_group et-last-child et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apisol-panel-footer\">\n<div class=\"et_pb_text_40 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apisol-tags\"><div class=\"et_pb_text_inner\"><p>Contr\u00f4le \u00b7 Alignement \u00b7 Premier article<\/p>\n<\/div><\/div>\n\n<a class=\"et_pb_link_14 et_pb_link et_pb_module et_flex_module apisol-explore\" href=\"\/fr\/inspection-et-alignement\/\"><span class=\"et_pb_link_inner\"><span class=\"et_pb_link_text\">D\u00e9couvrir la solution \u2197<\/span><\/span><\/a>\n<\/div>\n<\/div>\n<\/div><\/div>\n\n<div class=\"et_pb_tab_3 et_pb_tab clearfix et_pb_module et_flex_module apisol-geometry\"><div class=\"et_pb_tab_content et_flex_module\">\n<div class=\"et_pb_group_43 et_pb_group et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apisol-photo-wrap\">\n<div class=\"et_pb_image_15 et_pb_image et_pb_module et_flex_module apisol-image\"><span class=\"et_pb_image_wrap\"><img decoding=\"async\" data-src=\"https:\/\/apimetrology.com\/wp-content\/uploads\/2025\/03\/DSC_5121.jpg\" alt=\"Syst\u00e8me de palpage portatif API relevant une g\u00e9om\u00e9trie physique complexe\" title=\"Relever les g\u00e9om\u00e9tries complexes\" width=\"2064\" height=\"1376\" data-srcset=\"https:\/\/apimetrology.com\/wp-content\/uploads\/2025\/03\/DSC_5121.jpg 2064w, https:\/\/apimetrology.com\/wp-content\/uploads\/2025\/03\/DSC_5121-1280x853.jpg 1280w, https:\/\/apimetrology.com\/wp-content\/uploads\/2025\/03\/DSC_5121-980x653.jpg 980w, https:\/\/apimetrology.com\/wp-content\/uploads\/2025\/03\/DSC_5121-480x320.jpg 480w\" data-sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 2064px, 100vw\" class=\"wp-image-285374 lazyload\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 2064px; --smush-placeholder-aspect-ratio: 2064\/1376;\" \/><\/span><\/div>\n\n<div class=\"et_pb_text_41 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apisol-caption\"><div class=\"et_pb_text_inner\"><p>R\u00c9TRO-ING\u00c9NIERIE<\/p>\n<\/div><\/div>\n<\/div>\n\n<div class=\"et_pb_group_44 et_pb_group et-last-child et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apisol-panel-copy\">\n<div class=\"et_pb_heading_5 et_pb_heading et_pb_module et_flex_module apisol-panel-title\"><div class=\"et_pb_heading_container\"><h3 class=\"et_pb_module_header\">Transformez votre pi\u00e8ce en donn\u00e9es exploitables.<\/h3><\/div><\/div>\n\n<div class=\"et_pb_text_42 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apisol-description\"><div class=\"et_pb_text_inner\"><p>Relevez la g\u00e9om\u00e9trie des pi\u00e8ces pour la mod\u00e9lisation num\u00e9rique, le remplacement de pi\u00e8ces anciennes et la v\u00e9rification des conceptions.<\/p>\n<\/div><\/div>\n\n<div class=\"et_pb_group_45 et_pb_group et-last-child et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apisol-panel-footer\">\n<div class=\"et_pb_text_43 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apisol-tags\"><div class=\"et_pb_text_inner\"><p>Relev\u00e9 3D \u00b7 R\u00e9tro-ing\u00e9nierie<\/p>\n<\/div><\/div>\n\n<a class=\"et_pb_link_15 et_pb_link et_pb_module et_flex_module apisol-explore\" href=\"\/fr\/ingenierie-inverse\/\"><span class=\"et_pb_link_inner\"><span class=\"et_pb_link_text\">D\u00e9couvrir la solution \u2197<\/span><\/span><\/a>\n<\/div>\n<\/div>\n<\/div><\/div>\n<\/div><\/div>\n\n<div class=\"et_pb_group_46 et_pb_group et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough apisol-support\">\n<div class=\"et_pb_text_44 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module apisol-support-copy\"><div class=\"et_pb_text_inner\"><p>Le bon syst\u00e8me. <strong>L\u2019expertise adapt\u00e9e.<\/strong><\/p>\n<\/div><\/div>\n\n<a class=\"et_pb_link_16 et_pb_link et_pb_module et_flex_module apisol-support-link\" href=\"\/fr\/services\/\"><span class=\"et_pb_link_inner\"><span class=\"et_pb_link_text\">Besoin d\u2019un accompagnement sur le terrain ? D\u00e9couvrez API Services \u2197<\/span><\/span><\/a>\n<\/div>\n\n<div class=\"et_pb_code_3 et_pb_code et_pb_module apisol-style\"><div class=\"et_pb_code_inner\"><style>\n\/* Solutions: native Divi Tabs with nested editable modules. Layout styling only. *\/\n.apisol{overflow-x:clip}\n.apisol-row{margin-left:auto!important;margin-right:auto!important}\n.apisol h2,.apisol h3{padding-bottom:0!important;margin:0}\n.apisol-head{width:100%}\n.apisol-eyebrow p{letter-spacing:1.7px;text-transform:uppercase}\n.apisol-tabs.et_pb_tabs{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.28fr);gap:42px;border:0!important;width:100%;background:transparent}\n.apisol-tabs>ul.et_pb_tabs_controls{display:flex;flex-direction:column;counter-reset:solution;background:transparent!important;padding:0!important;margin:0!important;align-self:start}\n.apisol-tabs>ul.et_pb_tabs_controls:after{display:none!important}\n.apisol-tabs>ul.et_pb_tabs_controls>li{counter-increment:solution;float:none!important;width:100%;height:auto!important;min-height:116px;box-sizing:border-box;border:0!important;border-top:1px solid #d6d6d6!important;background:transparent!important;position:relative;display:block!important;padding:0!important;transition:background .2s}\n.apisol-tabs>ul.et_pb_tabs_controls>li:last-child{border-bottom:1px solid #d6d6d6!important}\n.apisol-tabs>ul.et_pb_tabs_controls>li.et_pb_tab_active{border-top:2px solid #d90025!important;background:#fff!important}\n.apisol-tabs>ul.et_pb_tabs_controls>li:before{content:counter(solution,decimal-leading-zero);position:absolute;top:31px;left:14px;font:500 12px\/1.5 Roboto,sans-serif;color:#888}\n.apisol-tabs>ul.et_pb_tabs_controls>li.et_pb_tab_active:before{color:#d90025}\n.apisol-tabs>ul.et_pb_tabs_controls>li:after{content:'+';position:absolute;right:16px;top:30px;font:300 26px\/1 Roboto,sans-serif;pointer-events:none;color:#777}\n.apisol-tabs>ul.et_pb_tabs_controls>li.et_pb_tab_active:after{content:'\u2197';color:#d90025}\n.apisol-tabs>ul.et_pb_tabs_controls>li>a{display:block!important;padding:24px 44px 25px 46px!important;white-space:pre-line;font:400 15px\/1.65 Roboto,sans-serif!important;color:#686868!important;min-height:115px;box-sizing:border-box}\n.apisol-tabs>ul.et_pb_tabs_controls>li>a::first-line{font-size:23px;font-weight:500;line-height:1.7;color:#252525}\n.apisol-tabs>ul.et_pb_tabs_controls>li>a:focus-visible{outline:2px solid #d90025;outline-offset:-4px;border-radius:6px}\n.apisol-tabs>.et_pb_all_tabs{background:#fff!important;border-radius:14px;overflow:hidden;min-width:0;box-shadow:0 12px 36px rgba(0,0,0,.045)}\n.apisol-tabs>.et_pb_all_tabs>.et_pb_tab{padding:0!important;border:0!important}\n.apisol-tabs .et_pb_tab_content{width:100%;min-width:0}\n.apisol-photo-wrap{position:relative;width:100%;overflow:hidden}\n.apisol-image,.apisol-image .et_pb_image_wrap{width:100%!important;max-width:none!important;display:block!important}\n.apisol-image img{width:100%!important;height:310px!important;display:block;object-fit:cover;object-position:center}\n.apisol-automation .apisol-image img{object-fit:contain;background:#e5e5e5}\n.apisol-geometry .apisol-image img{object-position:center 65%}\n.apisol-caption{position:absolute!important;bottom:0;left:0;right:0;padding:45px 28px 20px!important;background:linear-gradient(transparent,rgba(0,0,0,.65));pointer-events:none}\n.apisol-caption p{letter-spacing:1.5px}\n.apisol-panel-copy{box-sizing:border-box;width:100%}\n.apisol-panel-footer{width:100%}\n.apisol-explore .et_pb_link_inner{white-space:nowrap}\n.apisol-support{width:100%}\n.apisol-style{display:none!important}\n@media(max-width:1200px) and (min-width:981px){.apisol-tabs{gap:30px!important}.apisol-tabs>ul.et_pb_tabs_controls>li>a::first-line{font-size:20px}}\n@media(max-width:980px){.apisol-tabs.et_pb_tabs{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:24px}.apisol-tabs>ul.et_pb_tabs_controls>li>a::first-line{font-size:18px}.apisol-tabs>ul.et_pb_tabs_controls>li>a{font-size:13px!important;padding-left:38px!important;padding-right:25px!important}.apisol-tabs>ul.et_pb_tabs_controls>li:before{left:8px;top:30px}.apisol-tabs>ul.et_pb_tabs_controls>li:after{right:8px;font-size:20px}.apisol-image img{height:245px!important}}\n@media(max-width:767px){.apisol-tabs.et_pb_tabs{display:block}.apisol-tabs>ul.et_pb_tabs_controls{margin-bottom:24px!important}.apisol-tabs>ul.et_pb_tabs_controls>li{min-height:90px}.apisol-tabs>ul.et_pb_tabs_controls>li>a{padding:16px 32px 16px 40px!important;min-height:89px;font-size:13px!important}.apisol-tabs>ul.et_pb_tabs_controls>li>a::first-line{font-size:20px}.apisol-tabs>ul.et_pb_tabs_controls>li:before{top:23px}.apisol-tabs>ul.et_pb_tabs_controls>li:after{top:25px}.apisol-image img{height:225px!important}.apisol-caption{padding:40px 22px 17px!important}.apisol-support .et_pb_link_inner{white-space:normal}}\n<\/style><\/div><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_section_5 et_pb_section et_section_regular et_block_section api-home-blog\">\n<div class=\"et_pb_row_5 et_pb_row et_block_row\">\n<div class=\"et_pb_column_7 et_pb_column et_pb_column_4_4 et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough\">\n<div class=\"et_pb_code_4 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><div id=\"apiblog\" class=\"apiblog\" aria-labelledby=\"apiblog-title\">\n<style>\n.apiblog{position:relative;background:radial-gradient(900px 520px at 90% -18%,rgba(217,0,37,.42) 0%,rgba(217,0,37,0) 62%),#1c1c1c;color:#fff;font-family:Roboto,Helvetica,Arial,sans-serif;overflow:hidden;-webkit-font-smoothing:antialiased}\n.apiblog *,.apiblog *::before,.apiblog *::after{box-sizing:border-box}\n.apiblog a{text-decoration:none}\n.apiblog__inner{max-width:1440px;margin:0 auto;padding:80px clamp(16px,5.5vw,80px)}\n.apiblog__head{display:flex;justify-content:space-between;align-items:flex-end;gap:28px 48px;flex-wrap:wrap;margin-bottom:40px}\n.apiblog .apiblog__eyebrow{margin:0 0 18px;padding:0;font-size:12px;line-height:1.2;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#fff}\n.apiblog__eyebrow::before{content:\"\";display:inline-block;width:8px;height:8px;border-radius:50%;background:#d90025;margin-right:10px;vertical-align:1px}\n.apiblog .apiblog__title{margin:0;padding:0;font-family:Lexend,Roboto,Helvetica,Arial,sans-serif;font-weight:300;font-size:clamp(44px,4.45vw,64px);line-height:1;letter-spacing:-.035em;color:#fff}\n.apiblog__title span{color:#d90025}\n.apiblog__actions{display:flex;align-items:center;gap:28px}\n.apiblog__tabs{display:flex;gap:20px}\n.apiblog .apiblog__tabs a{display:inline-flex;align-items:center;height:44px;padding:0 2px;border-bottom:2px solid transparent;color:rgba(255,255,255,.66);font-size:14px;font-weight:400;white-space:nowrap;transition:color .2s ease}\n.apiblog .apiblog__tabs a:hover{color:#fff}\n.apiblog .apiblog__tabs a.is-current{color:#fff;font-weight:500;border-bottom-color:#d90025}\n.apiblog .apiblog__cta{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:48px;padding:0 22px;border-radius:12px;background:#d90025;color:#fff;font-size:15px;font-weight:500;white-space:nowrap;transition:background-color .2s ease}\n.apiblog .apiblog__cta:hover{background:#c20020;color:#fff}\n.apiblog__cta svg,.apiblog__read svg{width:16px;height:16px;flex:none}\n.apiblog__cta--m{display:none!important}\n.apiblog__list{display:flex;gap:12px;height:540px}\n.apiblog .apiblog__item{position:relative;display:block;flex:1 1 0;min-width:0;border-radius:12px;overflow:hidden;background:#111;color:#fff;box-shadow:0 0 0 1px #000,0 18px 40px -18px rgba(0,0,0,.95);transition:flex-grow .7s cubic-bezier(.2,.7,.2,1),height .6s cubic-bezier(.2,.7,.2,1)}\n.apiblog__item.is-active{flex-grow:7}\n.apiblog__img{position:absolute;left:0;top:0;width:100%;height:100%;object-fit:cover;object-position:right center;display:block;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}\n.apiblog__item:hover .apiblog__img{transform:scale(1.04)}\n.apiblog__shade{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.9) 0%,rgba(0,0,0,.55) 34%,rgba(0,0,0,0) 75%),linear-gradient(to right,rgba(0,0,0,.72) 0%,rgba(0,0,0,.38) 35%,rgba(0,0,0,0) 62%)}\n.apiblog__dim{position:absolute;inset:0;background:#000;opacity:.55;transition:opacity .6s ease}\n.apiblog__item.is-active .apiblog__dim{opacity:0}\n.apiblog__open{position:absolute;left:40px;bottom:40px;width:min(560px,calc(var(--apb-openw,700px) - 80px));display:flex;flex-direction:column;gap:16px;opacity:0;visibility:hidden;transform:translateY(14px);transition:opacity .25s ease,transform .25s ease,visibility 0s linear .25s}\n.apiblog__item.is-active .apiblog__open{opacity:1;visibility:visible;transform:none;transition:opacity .5s ease .3s,transform .6s cubic-bezier(.2,.7,.2,1) .3s,visibility 0s}\n.apiblog__meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;font-size:13px;line-height:1.4;color:rgba(255,255,255,.9)}\n.apiblog__cat{font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase}\n.apiblog__latest{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:9999px;background:#d90025;color:#fff;font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase}\n.apiblog .apiblog__h{margin:0;padding:0;font-family:Lexend,Roboto,Helvetica,Arial,sans-serif;font-weight:300;font-size:38px;line-height:1.12;letter-spacing:-.02em;color:#fff;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}\n.apiblog .apiblog__ex{margin:0;padding:0;font-size:15px;line-height:1.6;font-weight:300;color:rgba(255,255,255,.88);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}\n.apiblog__read{align-self:flex-start;margin-top:6px;display:inline-flex;align-items:center;gap:10px;height:44px;padding:0 20px;border-radius:12px;background:#fff;color:#000;font-size:14px;font-weight:500;transition:background-color .2s ease,color .2s ease}\n.apiblog__item:hover .apiblog__read{background:#d90025;color:#fff}\n.apiblog__count{display:none}\n.apiblog__closed{position:absolute;inset:0;opacity:1;transition:opacity .3s ease .2s}\n.apiblog__item.is-active .apiblog__closed{opacity:0;transition:opacity .15s ease}\n.apiblog__num{position:absolute;left:0;right:0;top:30px;text-align:center;font-family:Lexend,Roboto,Helvetica,Arial,sans-serif;font-weight:300;font-size:22px;color:#fff}\n.apiblog__vt{position:absolute;left:50%;bottom:32px;transform:translateX(-50%) rotate(180deg);writing-mode:vertical-rl;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-height:380px;font-size:15px;line-height:1.3;color:#fff}\n.apiblog__plus{display:none}\n.apiblog__fill{position:absolute;left:0;right:0;bottom:0;height:3px;background:#d90025;transform:scaleX(0);transform-origin:left center;opacity:0}\n.apiblog.is-running .apiblog__item.is-active .apiblog__fill{opacity:1;animation:apbFill var(--apb-dur,6s) linear forwards}\n@keyframes apbFill{from{transform:scaleX(0)}to{transform:scaleX(1)}}\n.apiblog__item.is-skel{background:linear-gradient(100deg,#222 30%,#2c2c2c 50%,#222 70%);background-size:300% 100%;animation:apbSkel 1.4s ease infinite}\n@keyframes apbSkel{from{background-position:100% 0}to{background-position:0 0}}\n.apiblog__msg{padding:24px 0;color:rgba(255,255,255,.8)}\n.apiblog__msg a{color:#fff;text-decoration:underline}\n.apiblog a:focus-visible{outline:2px solid #fff;outline-offset:3px}\n.apiblog .apiblog__item:focus-visible{outline:2px solid #d90025;outline-offset:3px}\n@media (max-width:1199px){.apiblog__list{height:480px}.apiblog .apiblog__h{font-size:32px}}\n@media (max-width:899px){\n.apiblog__inner{padding:56px 16px}\n.apiblog__head{flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:20px;margin-bottom:24px}\n.apiblog .apiblog__eyebrow{margin-bottom:14px}\n.apiblog .apiblog__title{font-size:46px;line-height:1.02}\n.apiblog__actions{display:block}\n.apiblog__tabs{overflow-x:auto;margin:0 -16px;padding:0 16px;scrollbar-width:none}\n.apiblog__tabs::-webkit-scrollbar{display:none}\n.apiblog__actions>.apiblog__cta{display:none}\n.apiblog__cta--m{display:flex!important;width:100%;height:52px;margin-top:24px;font-size:16px}\n.apiblog__list{flex-direction:column;gap:8px;height:auto}\n.apiblog .apiblog__item{flex:none;height:64px}\n.apiblog__item.is-active{height:420px}\n.apiblog__img{height:420px}\n.apiblog__item:hover .apiblog__img{transform:none}\n.apiblog__dim{opacity:.6}\n.apiblog__open{left:20px;right:20px;bottom:24px;width:auto;gap:12px}\n.apiblog .apiblog__h{font-size:27px;line-height:1.15;-webkit-line-clamp:4}\n.apiblog .apiblog__ex{display:none}\n.apiblog__read{margin-top:4px;padding:0 18px}\n.apiblog__item.is-active .apiblog__count{display:inline-block;position:absolute;left:20px;top:18px;font-family:Lexend,Roboto,Helvetica,Arial,sans-serif;font-weight:300;font-size:14px;color:#fff;background:rgba(0,0,0,.45);padding:4px 10px;border-radius:9999px}\n.apiblog__closed{display:flex;align-items:center;gap:14px;padding:0 18px}\n.apiblog__num{position:static;font-size:20px;color:rgba(255,255,255,.75);flex:none}\n.apiblog__vt{position:static;transform:none;writing-mode:horizontal-tb;flex:1 1 auto;min-width:0;max-height:none}\n.apiblog__plus{display:flex;flex:none;width:32px;height:32px;border-radius:50%;border:1px solid rgba(255,255,255,.4);align-items:center;justify-content:center}\n}\n@media (prefers-reduced-motion:reduce){.apiblog *{transition-duration:.01ms!important;animation:none!important}}\n<\/style>\n<div class=\"apiblog__inner\">\n<div class=\"apiblog__head\">\n<div>\n<p class=\"apiblog__eyebrow\">API Metrology<\/p>\n<h2 id=\"apiblog-title\" class=\"apiblog__title\">Le blog de la m\u00e9trologie<span>.<\/span><\/h2>\n<\/div>\n<div class=\"apiblog__actions\">\n<nav class=\"apiblog__tabs\" aria-label=\"Cat\u00e9gories du blog\">\n<a class=\"is-current\" href=\"\/fr\/nouvelles\/\">Tout<\/a>\n<a href=\"\/fr\/category\/etude-de-cas\/\">\u00c9tudes de cas<\/a>\n<a href=\"\/fr\/category\/mise-en-avant-du-produit\/\">Pr\u00e9sentation des produits<\/a>\n<a href=\"\/fr\/category\/education-fr\/\">Ressources p\u00e9dagogiques<\/a>\n<a href=\"\/fr\/category\/evenements\/\">\u00c9v\u00e9nements<\/a>\n<\/nav>\n<a class=\"apiblog__cta\" href=\"\/fr\/nouvelles\/\">Toutes les actualit\u00e9s<svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3 8h10M9 4l4 4-4 4\"\/><\/svg><\/a>\n<\/div>\n<\/div>\n<div class=\"apiblog__list\" aria-live=\"polite\" aria-label=\"Derniers articles\">\n<div class=\"apiblog__item is-skel is-active\" role=\"status\" aria-label=\"Chargement des articles\"><\/div><div class=\"apiblog__item is-skel\"><\/div><div class=\"apiblog__item is-skel\"><\/div><div class=\"apiblog__item is-skel\"><\/div><div class=\"apiblog__item is-skel\"><\/div><div class=\"apiblog__item is-skel\"><\/div>\n<\/div>\n<a class=\"apiblog__cta apiblog__cta--m\" href=\"\/fr\/nouvelles\/\">Toutes les actualit\u00e9s<svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3 8h10M9 4l4 4-4 4\"\/><\/svg><\/a>\n<noscript><p class=\"apiblog__msg\"><a href=\"\/fr\/nouvelles\/\">Lire les derni\u00e8res actualit\u00e9s et \u00e9tudes de cas d\u2019API Metrology<\/a><\/p><\/noscript>\n<\/div>\n<script>\n(function () {\n  var root = document.getElementById('apiblog');\n  if (!root || root.getAttribute('data-ready')) return;\n  root.setAttribute('data-ready', '1');\n  var list = root.querySelector('.apiblog__list');\n  var COUNT = 6, DURATION = 6000;\n  var ARROW = '<svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3 8h10M9 4l4 4-4 4\"\/><\/svg>';\n  var PLUS = '<svg width=\"18\" height=\"18\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M8 3v10M3 8h10\"\/><\/svg>';\n  var mobileMq = window.matchMedia('(max-width: 899px)');\n  var reduceMq = window.matchMedia('(prefers-reduced-motion: reduce)');\n  root.style.setProperty('--apb-dur', (DURATION \/ 1000) + 's');\n\n  function decode(s) { var t = document.createElement('textarea'); t.innerHTML = s || ''; return t.value; }\n  function esc(s) { return String(s).replace(\/[&<>\"']\/g, function (c) { return { '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;', \"'\": '&#39;' }[c]; }); }\n  function strip(html) { var d = document.createElement('div'); d.innerHTML = html || ''; return (d.textContent || '').replace(\/\\s*\\[(\u2026|\\.\\.\\.)\\]\\s*$\/, '').replace(\/\\s+\/g, ' ').trim(); }\n  function fmtDate(iso) { var d = new Date(iso); return isNaN(d) ? '' : d.toLocaleDateString('fr-FR', { month: 'short', day: 'numeric', year: 'numeric' }); }\n\n  function categoryName(terms) {\n    var ids = {110:'\u00c9tudes de cas',109:'Ressources p\u00e9dagogiques',124:'Pr\u00e9sentation des produits',150:'\u00c9v\u00e9nements'};\n    for (var i=0; i<(terms || []).length; i++) { if (ids[terms[i].id]) return ids[terms[i].id]; }\n    var labels = {\n      'education':'Ressources p\u00e9dagogiques','educational':'Ressources p\u00e9dagogiques','\u00e9ducation':'Ressources p\u00e9dagogiques',\n      'product highlight':'Pr\u00e9sentation des produits','product highlights':'Pr\u00e9sentation des produits','mise en avant du produit':'Pr\u00e9sentation des produits',\n      'case study':'\u00c9tudes de cas','case studies':'\u00c9tudes de cas','case_study':'\u00c9tudes de cas','\u00e9tude de cas':'\u00c9tudes de cas','\u00e9tudes de cas':'\u00c9tudes de cas',\n      'event':'\u00c9v\u00e9nements','events':'\u00c9v\u00e9nements','\u00e9v\u00e9nements':'\u00c9v\u00e9nements','news':'Actualit\u00e9s','actualit\u00e9s':'Actualit\u00e9s',\n      'uncategorized':'Non class\u00e9','non class\u00e9':'Non class\u00e9','blog':'Blog','articles':'Articles',\n      'press release':'Communiqu\u00e9s de presse','press releases':'Communiqu\u00e9s de presse'\n    };\n    for (var j=0; j<(terms || []).length; j++) { var label=labels[decode(terms[j].name || '').trim().toLowerCase()]; if(label) return label; }\n    return 'Actualit\u00e9s';\n  }\n\n  function mapPost(p) {\n    var media = p._embedded && p._embedded['wp:featuredmedia'] && p._embedded['wp:featuredmedia'][0];\n    if (!media || !media.source_url) return null;\n    var sizes = (media.media_details && media.media_details.sizes) || {};\n    var pick = sizes['1536x1536'] || sizes.large || sizes['et-pb-post-main-image-fullwidth'] || {};\n    var terms = (p._embedded['wp:term'] && p._embedded['wp:term'][0]) || [];\n    var misc = (p.yoast_head_json && p.yoast_head_json.twitter_misc) || {};\n    var rt = misc['Est. reading time'] ? String(misc['Est. reading time']).replace(\/\\s*minutes?\/, ' min de lecture') : '';\n    var ex = strip(p.excerpt && p.excerpt.rendered) || (p.yoast_head_json && p.yoast_head_json.description) || '';\n    if (ex.length > 170) ex = ex.slice(0, 167).replace(\/\\s+\\S*$\/, '') + '\u2026';\n    return {\n      url: p.link, img: pick.source_url || media.source_url, alt: decode(p.title && p.title.rendered) || '',\n      title: decode(p.title && p.title.rendered), cat: categoryName(terms),\n      date: fmtDate(p.date), read: rt, ex: ex\n    };\n  }\n\n  function render(posts) {\n    var n = posts.length, html = '';\n    posts.forEach(function (p, i) {\n      var num = (i + 1 < 10 ? '0' : '') + (i + 1);\n      html += '<a class=\"apiblog__item' + (i === 0 ? ' is-active' : '') + '\" href=\"' + esc(p.url) + '\" data-i=\"' + i + '\" aria-label=\"' + esc(p.title) + '\">' +\n        '<img class=\"apiblog__img\" src=\"' + esc(p.img) + '\" alt=\"' + esc(p.alt) + '\" loading=\"lazy\" decoding=\"async\">' +\n        '<span class=\"apiblog__shade\"><\/span><span class=\"apiblog__dim\"><\/span>' +\n        '<span class=\"apiblog__count\">' + num + ' \/ ' + (n < 10 ? '0' : '') + n + '<\/span>' +\n        '<span class=\"apiblog__open\">' +\n          '<span class=\"apiblog__meta\">' + (i === 0 ? '<span class=\"apiblog__latest\">\u00c0 la une<\/span>' : '') +\n            '<span class=\"apiblog__cat\">' + esc(p.cat) + '<\/span><span>' + esc([p.date, p.read].filter(Boolean).join(' \u00b7 ')) + '<\/span><\/span>' +\n          '<span class=\"apiblog__h\">' + esc(p.title) + '<\/span>' +\n          (p.ex ? '<span class=\"apiblog__ex\">' + esc(p.ex) + '<\/span>' : '') +\n          '<span class=\"apiblog__read\">Lire l\u2019article' + ARROW + '<\/span>' +\n        '<\/span>' +\n        '<span class=\"apiblog__closed\" aria-hidden=\"true\"><span class=\"apiblog__num\">' + num + '<\/span><span class=\"apiblog__vt\">' + esc(p.title) + '<\/span><span class=\"apiblog__plus\">' + PLUS + '<\/span><\/span>' +\n        '<span class=\"apiblog__fill\"><\/span>' +\n        '<\/a>';\n    });\n    list.innerHTML = html;\n    init();\n  }\n\n  function fail() {\n    list.style.height = 'auto';\n    list.innerHTML = '<p class=\"apiblog__msg\">Impossible de charger les derniers articles. <a href=\"\/fr\/nouvelles\/\">Consulter toutes les actualit\u00e9s d\u2019API Metrology<\/a>.<\/p>';\n  }\n\n  function init() {\n    var items = Array.prototype.slice.call(list.querySelectorAll('.apiblog__item'));\n    var active = 0, hovering = false, touched = false, visible = true, timer = null;\n\n    function running() { return !reduceMq.matches && !hovering && !touched && visible && items.length > 1; }\n    function sizeVars() {\n      var gap = 12, w = list.clientWidth - gap * (items.length - 1);\n      root.style.setProperty('--apb-openw', Math.round(w * 7 \/ (items.length + 6)) + 'px');\n    }\n    function restartFill() {\n      var f = items[active] && items[active].querySelector('.apiblog__fill');\n      if (!f) return;\n      var clone = f.cloneNode(true); f.parentNode.replaceChild(clone, f);\n    }\n    function sync() {\n      root.classList.toggle('is-running', running());\n      clearTimeout(timer);\n      if (running()) {\n        restartFill();\n        timer = setTimeout(function () { setActive((active + 1) % items.length); }, DURATION);\n      }\n    }\n    function setActive(i) {\n      active = i;\n      items.forEach(function (el, k) {\n        var on = k === i;\n        el.classList.toggle('is-active', on);\n        el.setAttribute('aria-expanded', on ? 'true' : 'false');\n      });\n      sync();\n    }\n\n    items.forEach(function (el, i) {\n      el.addEventListener('pointerenter', function (e) {\n        if (e.pointerType !== 'mouse' || mobileMq.matches) return;\n        hovering = true;\n        if (i !== active) setActive(i); else sync();\n      });\n      el.addEventListener('focus', function () {\n        var kb = true; try { kb = el.matches(':focus-visible'); } catch (err) {}\n        if (kb && i !== active) { touched = true; setActive(i); }\n      });\n      el.addEventListener('click', function (e) {\n        if (i !== active) { e.preventDefault(); touched = true; setActive(i); }\n      });\n    });\n    list.addEventListener('pointerleave', function (e) { if (e.pointerType === 'mouse') { hovering = false; sync(); } });\n    if ('IntersectionObserver' in window) {\n      new IntersectionObserver(function (entries) { visible = entries[0].isIntersecting; sync(); }, { threshold: 0.35 }).observe(list);\n    }\n    window.addEventListener('resize', sizeVars);\n    sizeVars();\n    setActive(0);\n  }\n\n  fetch('\/wp-json\/wp\/v2\/posts?per_page=12&lang=fr&categories=110,109,124,150' +\n    '&_embed=wp:featuredmedia,wp:term&_fields=id,link,date,title,excerpt,yoast_head_json,_links,_embedded', { credentials: 'omit' })\n    .then(function (r) { if (!r.ok) throw new Error(r.status); return r.json(); })\n    .then(function (data) {\n      var posts = (data || []).filter(function (p) { return p.link && \/\\\/fr\\\/\/.test(p.link); }).map(mapPost).filter(Boolean).slice(0, COUNT);\n      if (posts.length) render(posts); else fail();\n    })\n    .catch(fail);\n})();\n<\/script>\n<\/div>\n<\/div><\/div>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":18,"featured_media":5938,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-255006","page","type-page","status-publish","has-post-thumbnail","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.3 (Yoast SEO v28.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>API Metrology | Services de mesure 3D et de m\u00e9trologie | Laser tracker, \u00e9talonnage de machines-outils et de robots<\/title>\n<meta name=\"description\" content=\"API est un fabricant et fournisseur de laser trackers, de m\u00e9trologie pour l&#039;\u00e9talonnage des machines-outils et des robots, de services de m\u00e9trologie industrielle.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/apimetrology.com\/fr\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"M\u00e9trologie API Mesure de pr\u00e9cision\" \/>\n<meta property=\"og:description\" content=\"API est un fabricant et fournisseur de laser trackers, de m\u00e9trologie pour l&#039;\u00e9talonnage des machines-outils et des robots, de services de m\u00e9trologie industrielle.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/apimetrology.com\/fr\/\" \/>\n<meta property=\"og:site_name\" content=\"API Metrology\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/apimetrology\/\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-13T23:36:02+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/apimetrology.com\/wp-content\/uploads\/2018\/09\/api_logo.png\" \/>\n\t<meta property=\"og:image:width\" content=\"107\" \/>\n\t<meta property=\"og:image:height\" content=\"42\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data1\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/apimetrology.com\\\/fr\\\/\",\"url\":\"https:\\\/\\\/apimetrology.com\\\/fr\\\/\",\"name\":\"API Metrology | Services de mesure 3D et de m\u00e9trologie | Laser tracker, \u00e9talonnage de machines-outils et de robots\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/apimetrology.com\\\/fr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/apimetrology.com\\\/fr\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/apimetrology.com\\\/fr\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/apimetrology.com\\\/wp-content\\\/uploads\\\/2018\\\/09\\\/api_logo.png\",\"datePublished\":\"2021-03-04T13:43:18+00:00\",\"dateModified\":\"2026-10-13T23:36:02+00:00\",\"description\":\"API est un fabricant et fournisseur de laser trackers, de m\u00e9trologie pour l'\u00e9talonnage des machines-outils et des robots, de services de m\u00e9trologie industrielle.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/apimetrology.com\\\/fr\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/apimetrology.com\\\/fr\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/apimetrology.com\\\/fr\\\/#primaryimage\",\"url\":\"https:\\\/\\\/apimetrology.com\\\/wp-content\\\/uploads\\\/2018\\\/09\\\/api_logo.png\",\"contentUrl\":\"https:\\\/\\\/apimetrology.com\\\/wp-content\\\/uploads\\\/2018\\\/09\\\/api_logo.png\",\"width\":107,\"height\":42,\"caption\":\"API Metrology Logo\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/apimetrology.com\\\/fr\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/apimetrology.com\\\/fr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"M\u00e9trologie API Mesure de pr\u00e9cision\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/apimetrology.com\\\/fr\\\/#website\",\"url\":\"https:\\\/\\\/apimetrology.com\\\/fr\\\/\",\"name\":\"API Metrology\",\"description\":\"Laser Tracker, Machine Tool and Robot Calibration Equipment Supplier\",\"publisher\":{\"@id\":\"https:\\\/\\\/apimetrology.com\\\/fr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/apimetrology.com\\\/fr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/apimetrology.com\\\/fr\\\/#organization\",\"name\":\"API Metrology\",\"url\":\"https:\\\/\\\/apimetrology.com\\\/fr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/apimetrology.com\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/apimetrology.com\\\/wp-content\\\/uploads\\\/2018\\\/11\\\/API-logo.png\",\"contentUrl\":\"https:\\\/\\\/apimetrology.com\\\/wp-content\\\/uploads\\\/2018\\\/11\\\/API-logo.png\",\"width\":1080,\"height\":699,\"caption\":\"API Metrology\"},\"image\":{\"@id\":\"https:\\\/\\\/apimetrology.com\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/apimetrology\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/apimetrology\\\/\",\"https:\\\/\\\/www.youtube.com\\\/@AutomatedPrecision\"]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"API Metrology | Services de mesure 3D et de m\u00e9trologie | Laser tracker, \u00e9talonnage de machines-outils et de robots","description":"API est un fabricant et fournisseur de laser trackers, de m\u00e9trologie pour l'\u00e9talonnage des machines-outils et des robots, de services de m\u00e9trologie industrielle.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/apimetrology.com\/fr\/","og_locale":"fr_FR","og_type":"article","og_title":"M\u00e9trologie API Mesure de pr\u00e9cision","og_description":"API est un fabricant et fournisseur de laser trackers, de m\u00e9trologie pour l'\u00e9talonnage des machines-outils et des robots, de services de m\u00e9trologie industrielle.","og_url":"https:\/\/apimetrology.com\/fr\/","og_site_name":"API Metrology","article_publisher":"https:\/\/www.facebook.com\/apimetrology\/","article_modified_time":"2026-10-13T23:36:02+00:00","og_image":[{"width":107,"height":42,"url":"https:\/\/apimetrology.com\/wp-content\/uploads\/2018\/09\/api_logo.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/apimetrology.com\/fr\/","url":"https:\/\/apimetrology.com\/fr\/","name":"API Metrology | Services de mesure 3D et de m\u00e9trologie | Laser tracker, \u00e9talonnage de machines-outils et de robots","isPartOf":{"@id":"https:\/\/apimetrology.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/apimetrology.com\/fr\/#primaryimage"},"image":{"@id":"https:\/\/apimetrology.com\/fr\/#primaryimage"},"thumbnailUrl":"https:\/\/apimetrology.com\/wp-content\/uploads\/2018\/09\/api_logo.png","datePublished":"2021-03-04T13:43:18+00:00","dateModified":"2026-10-13T23:36:02+00:00","description":"API est un fabricant et fournisseur de laser trackers, de m\u00e9trologie pour l'\u00e9talonnage des machines-outils et des robots, de services de m\u00e9trologie industrielle.","breadcrumb":{"@id":"https:\/\/apimetrology.com\/fr\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/apimetrology.com\/fr\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/apimetrology.com\/fr\/#primaryimage","url":"https:\/\/apimetrology.com\/wp-content\/uploads\/2018\/09\/api_logo.png","contentUrl":"https:\/\/apimetrology.com\/wp-content\/uploads\/2018\/09\/api_logo.png","width":107,"height":42,"caption":"API Metrology Logo"},{"@type":"BreadcrumbList","@id":"https:\/\/apimetrology.com\/fr\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/apimetrology.com\/fr\/"},{"@type":"ListItem","position":2,"name":"M\u00e9trologie API Mesure de pr\u00e9cision"}]},{"@type":"WebSite","@id":"https:\/\/apimetrology.com\/fr\/#website","url":"https:\/\/apimetrology.com\/fr\/","name":"API Metrology","description":"Laser Tracker, Machine Tool and Robot Calibration Equipment Supplier","publisher":{"@id":"https:\/\/apimetrology.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/apimetrology.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/apimetrology.com\/fr\/#organization","name":"API Metrology","url":"https:\/\/apimetrology.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/apimetrology.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/apimetrology.com\/wp-content\/uploads\/2018\/11\/API-logo.png","contentUrl":"https:\/\/apimetrology.com\/wp-content\/uploads\/2018\/11\/API-logo.png","width":1080,"height":699,"caption":"API Metrology"},"image":{"@id":"https:\/\/apimetrology.com\/fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/apimetrology\/","https:\/\/www.linkedin.com\/company\/apimetrology\/","https:\/\/www.youtube.com\/@AutomatedPrecision"]}]}},"_links":{"self":[{"href":"https:\/\/apimetrology.com\/fr\/wp-json\/wp\/v2\/pages\/255006","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/apimetrology.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/apimetrology.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/apimetrology.com\/fr\/wp-json\/wp\/v2\/users\/18"}],"replies":[{"embeddable":true,"href":"https:\/\/apimetrology.com\/fr\/wp-json\/wp\/v2\/comments?post=255006"}],"version-history":[{"count":5,"href":"https:\/\/apimetrology.com\/fr\/wp-json\/wp\/v2\/pages\/255006\/revisions"}],"predecessor-version":[{"id":287845,"href":"https:\/\/apimetrology.com\/fr\/wp-json\/wp\/v2\/pages\/255006\/revisions\/287845"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/apimetrology.com\/fr\/wp-json\/wp\/v2\/media\/5938"}],"wp:attachment":[{"href":"https:\/\/apimetrology.com\/fr\/wp-json\/wp\/v2\/media?parent=255006"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}