3D Speed Square

$19.99
$38.99
-49%
Color:  Red
Quantity
/** @private {string} */ class SpzCustomAnchorScroll extends SPZ.BaseElement { static deferredMount() { return false; } constructor(element) { super(element); /** @private {Element} */ this.scrollableContainer_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { this.viewport_ = this.getViewport(); this.initActions_(); } setTarget(containerId, targetId) { this.containerId = '#' + containerId; this.targetId = '#' + targetId; } scrollToTarget() { const container = document.querySelector(this.containerId); const target = container.querySelector(this.targetId); const {scrollTop} = container; const eleOffsetTop = this.getOffsetTop_(target, container); this.viewport_ .interpolateScrollIntoView_( container, scrollTop, scrollTop + eleOffsetTop ); } initActions_() { this.registerAction( 'scrollToTarget', (invocation) => this.scrollToTarget(invocation?.caller) ); this.registerAction( 'setTarget', (invocation) => this.setTarget(invocation?.args?.containerId, invocation?.args?.targetId) ); } /** * @param {Element} element * @param {Element} container * @return {number} * @private */ getOffsetTop_(element, container) { if (!element./*OK*/ getClientRects().length) { return 0; } const rect = element./*OK*/ getBoundingClientRect(); if (rect.width || rect.height) { return rect.top - container./*OK*/ getBoundingClientRect().top; } return rect.top; } } SPZ.defineElement('spz-custom-anchor-scroll', SpzCustomAnchorScroll); const STRENGTHEN_TRUST_URL = "/api/strengthen_trust/settings"; class SpzCustomStrengthenTrust extends SPZ.BaseElement { constructor(element) { super(element); this.renderElement_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { this.xhr_ = SPZServices.xhrFor(this.win); const renderId = this.element.getAttribute('render-id'); SPZCore.Dom.waitForChild( document.body, () => !!document.getElementById(renderId), () => { this.renderElement_ = SPZCore.Dom.scopedQuerySelector( document.body, `#${renderId}` ); if (this.renderElement_) { this.render_(); } this.registerAction('track', (invocation) => { this.track_(invocation.args); }); } ); } render_() { this.fetchData_().then((data) => { if (!data) { return; } SPZ.whenApiDefined(this.renderElement_).then((apis) => { apis?.render(data); document.querySelector('#strengthen-trust-render-1539149753700').addEventListener('click',(event)=>{ if(event.target.nodeName == 'A'){ this.track_({type: 'trust_content_click'}); } }) }); }); } track_(data = {}) { const track = window.sa && window.sa.track; if (!track) { return; } track('trust_enhancement_event', data); } parseJSON_(string) { let result = {}; try { result = JSON.parse(string); } catch (e) {} return result; } fetchData_() { return this.xhr_ .fetchJson(STRENGTHEN_TRUST_URL) .then((responseData) => { if (!responseData || !responseData.data) { return null; } const data = responseData.data; const moduleSettings = (data.module_settings || []).reduce((result, moduleSetting) => { return result.concat(Object.assign(moduleSetting, { logos: (moduleSetting.logos || []).map((item) => { return moduleSetting.logos_type == 'custom' ? this.parseJSON_(item) : item; }) })); }, []); return Object.assign(data, { module_settings: moduleSettings, isEditor: window.self !== window.top, }); }); } } SPZ.defineElement('spz-custom-strengthen-trust', SpzCustomStrengthenTrust);

Description

It’s time to #UpgradeYourMeasurements

Feel confident in your sketches with the precision and versatility of the 3D multi-measuring ruler.

OVER 10,00+ HAPPY CUSTOMERS

Precision Perfected! 

Streamline your creative process with our handy tool, making every project a breeze.

Ensure accurate measurements, turning your ideas into flawlessly crafted realities.

Perfect your sketches with easy angle measurement and replication.

  • 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.
  • Available colors: red, blue and black.
  • 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.

Quality Guarantee

We love our 3D Speed Square and are confident you will too! That’s why we’re offering a 30-Day, Risk-Free Trial. If you’re not satisfied, we’ll gladly issue a full refund in accordance with our Return & Refund Policy.