🔥 3D Multi-Angle Measuring Ruler📐

$24.98
Ruler Unit:  INCH
Color:  Red
people are viewing this right now
Free worldwide shipping
Free returns
Sustainably made
Secure payments
Quantity

Description

 

  • 😊You can return items for a refund or exchange within 15 days. 
  • 💯Payments Via PayPal® and CreditCard.
  • 🚢Shipping>>Worldwide Express Shipping Available.
  • ⭐Returns>>100% Money Back Guarantee.
  • You can click the link to check your order-check your order

Description

Tired of 3D measurements? Unlock precision in your woodworking with our 3D Multi-Angle Measuring Ruler. This high-precision tool ensures accurate measurements for engineers and carpenters, making it a must-have for precise and efficient layout work.

  • High accuracy.
  • Multiple purposes, 45 and 90 degrees.
  • Easy to disassemble and carry.
  • Available in inches and centimeters.

Specs

  • Aluminum alloy material.
  • It comes in inches and centimeters versions.
  • Dimensions: 11.2 x 7.6 x 6.4 cm (4.4  x 3 x 2.52 inch).
  • Anodized surface treatment.

√What You Get

  • Color and unit options.
  • 1 x Set of multi-angle measuring ruler, hexagon screw, and allen wrench.

Inch Version

Available colors: blue and red

Centimeter Version

Available colors: blue and red

Material

The measuring ruler is made of aluminum alloy, with high hardness, light weight, corrosion resistance, rust prevention and other characteristics.

Features

The surface of the measuring ruler is anodized, with high surface hardness and wear resistance, which helps to maintain the accuracy of the scale. It can be used as a carpenter’s measuring tool and square, with simple operation, and has the common functions of measurement, correction, marking and other carpenters

Applicable Scenario

Suitable for DIY, engineers, carpenters and decoration workers. It is a necessary measuring tool for workers in the wood industry. It is suitable for round materials, three-dimensional workpieces, square wood, pipes, etc. If someone around you is keen on DIY, this multifunctional multi-angle measuring ruler will be the best gift.

Design

The longest scale is 112 mm (4.4 inches). The ruler body is thickened. One ruler can be used for multiple purposes. It can be scribed. It can measure 45 and 90 degrees. It is easy to disassemble and easy to carry.



 

PACKAGE:

  • 1* 3D Multi-Angle Measuring Ruler

Click on "ADD TO CART" to get yours now!


HOW TO PAY

✅Payments Via PayPal®Credit and Debit Card.

If you want to checkout with a Credit and Debit Card, just enter your * Card No* Expiration Date, and * CVV.

✈ WORLDWIDE SHIPPING ✈
  • Tracking Numbers will be sent so that you can track it. Cool gadgets are worth waiting for!
  • Tip: Buying 2 products or more at the same time will save you quite a lot on shipping fees.

🔒 100% RISK-FREE PURCHASE 🔥
  • We aim to provide the best experience to our customers through our online store. To back that up, we offer a RISK-FREE 30 day guarantee. 
  • If you ever feel unsatisfied with our products, please contact us, we will make it right by offering you a replacement or refund.

const TAG = "spz-custom-product-automatic"; class SpzCustomProductAutomatic extends SPZ.BaseElement { constructor(element) { super(element); this.variant_id = '440a6789-7f9e-42c7-8767-bcd62f3fd1ea'; this.isRTL = SPZ.win.document.dir === 'rtl'; } static deferredMount() { return false; } buildCallback() { this.action_ = SPZServices.actionServiceForDoc(this.element); this.templates_ = SPZServices.templatesForDoc(this.element); this.xhr_ = SPZServices.xhrFor(this.win); this.setupAction_(); this.viewport_ = this.getViewport(); } mountCallback() { this.init(); // 监听事件 this.bindEvent_(); } async init() { this.handleFitTheme(); const data = await this.getDiscountList(); this.renderApiData_(data); } async getDiscountList() { const productId = '374f4803-ef01-4e2d-a4b2-ab4af921510e'; const variantId = this.variant_id; const productType = 'default'; const reqBody = { product_id: productId, variant_id: variantId, discount_method: "DM_AUTOMATIC", customer: { customer_id: window.C_SETTINGS.customer.customer_id, email: window.C_SETTINGS.customer.customer_email }, product_type: productType } const url = `/api/storefront/promotion/display_setting/text/list`; const data = await this.xhr_.fetchJson(url, { method: "post", body: reqBody }).then(res => { return res; }).catch(err => { this.setContainerDisabled(false); }) return data; } async renderDiscountList() { this.setContainerDisabled(true); const data = await this.getDiscountList(); this.setContainerDisabled(false); // 重新渲染 抖动问题处理 this.renderApiData_(data); } clearDom() { const children = this.element.querySelector('*:not(template)'); children && SPZCore.Dom.removeElement(children); } async renderApiData_(data) { const parentDiv = document.querySelector('.automatic_discount_container'); const newTplDom = await this.getRenderTemplate(data); if (parentDiv) { parentDiv.innerHTML = ''; parentDiv.appendChild(newTplDom); } else { console.log('automatic_discount_container is null'); } } doRender_(data) { const renderData = data || {}; return this.templates_ .findAndRenderTemplate(this.element, renderData) .then((el) => { this.clearDom(); this.element.appendChild(el); }); } async getRenderTemplate(data) { const renderData = data || {}; return this.templates_ .findAndRenderTemplate(this.element, { ...renderData, isRTL: this.isRTL }) .then((el) => { this.clearDom(); return el; }); } setContainerDisabled(isDisable) { const automaticDiscountEl = document.querySelector('.automatic_discount_container_outer'); if(isDisable) { automaticDiscountEl.setAttribute('disabled', ''); } else { automaticDiscountEl.removeAttribute('disabled'); } } // 绑定事件 bindEvent_() { window.addEventListener('click', (e) => { let containerNodes = document.querySelectorAll(".automatic-container .panel"); let bool; Array.from(containerNodes).forEach((node) => { if(node.contains(e.target)){ bool = true; } }) // 是否popover面板点击范围 if (bool) { return; } if(e.target.classList.contains('drowdown-icon') || e.target.parentNode.classList.contains('drowdown-icon')){ return; } const nodes = document.querySelectorAll('.automatic-container'); Array.from(nodes).forEach((node) => { node.classList.remove('open-dropdown'); }) // 兼容主题 this.toggleProductSticky(true); }) // 监听变体变化 document.addEventListener('dj.variantChange', async(event) => { // 重新渲染 const variant = event.detail.selected; if (variant.product_id == '374f4803-ef01-4e2d-a4b2-ab4af921510e' && variant.id != this.variant_id) { this.variant_id = variant.id; this.renderDiscountList(); } }); } // 兼容主题 handleFitTheme() { // top 属性影响抖动 let productInfoEl = null; if (window.SHOPLAZZA.theme.merchant_theme_name === 'Wind' || window.SHOPLAZZA.theme.merchant_theme_name === 'Flash') { productInfoEl = document.querySelector('.product-info-body .product-sticky-container'); } else if (window.SHOPLAZZA.theme.merchant_theme_name === 'Hero') { productInfoEl = document.querySelector('.product__info-wrapper .properties-content'); } if(productInfoEl){ productInfoEl.classList.add('force-top-auto'); } } // 兼容 wind/flash /hero 主题 (sticky属性影响 popover 层级展示, 会被其他元素覆盖) toggleProductSticky(isSticky) { let productInfoEl = null; if (window.SHOPLAZZA.theme.merchant_theme_name === 'Wind' || window.SHOPLAZZA.theme.merchant_theme_name === 'Flash') { productInfoEl = document.querySelector('.product-info-body .product-sticky-container'); } else if (window.SHOPLAZZA.theme.merchant_theme_name === 'Hero') { productInfoEl = document.querySelector('.product__info-wrapper .properties-content'); } if(productInfoEl){ if(isSticky) { // 还原该主题原有的sticky属性值 productInfoEl.classList.remove('force-position-static'); return; } productInfoEl.classList.toggle('force-position-static'); } } setupAction_() { this.registerAction('handleDropdown', (invocation) => { const discount_id = invocation.args.discount_id; const nodes = document.querySelectorAll('.automatic-container'); Array.from(nodes).forEach((node) => { if(node.getAttribute('id') != `automatic-${discount_id}`) { node.classList.remove('open-dropdown'); } }) const $discount_item = document.querySelector(`#automatic-${discount_id}`); $discount_item && $discount_item.classList.toggle('open-dropdown'); // 兼容主题 this.toggleProductSticky(); }); } triggerEvent_(name, data) { const event = SPZUtils.Event.create(this.win, `${ TAG }.${ name }`, data || {}); this.action_.trigger(this.element, name, event); } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } } SPZ.defineElement(TAG, SpzCustomProductAutomatic);