⏱Limited Time✈️Over $49.99 Free Shipping✈️
Aluminum Alloy Triangle Ruler
Aluminum Alloy Triangle Ruler
Aluminum Alloy Triangle Ruler
Aluminum Alloy Triangle Ruler
Aluminum Alloy Triangle Ruler
Aluminum Alloy Triangle Ruler
Aluminum Alloy Triangle Ruler
1 / 7
Aluminum Alloy Triangle Ruler
Aluminum Alloy Triangle Ruler
Aluminum Alloy Triangle Ruler
Aluminum Alloy Triangle Ruler
Aluminum Alloy Triangle Ruler
Aluminum Alloy Triangle Ruler
Aluminum Alloy Triangle Ruler
50% OFF
韩文俊

Aluminum Alloy Triangle Ruler

$49.86 $99.72
1 sold
Qty

No Paypal, No Problem!
You can still purchase with your credit card
  • Buy More Get More Discount. 
  • Returns>> Fast refund,100% Money Back Guarantee.
  • 96.8% of Reviewers Recommends This Product.
Are you still using several triangle rules which has different length to meet your carpentry needs? Now maybe you should try Aluminum Alloy Triangle Ruler. It can be easily expanded and adjusted to meet all your needs!
  • Collapsible ruler bar - Its 6-inch fold-out extension arm can meet 6 inch or 12 inch layout needs. When it is opening,the measuring distance will increase.It is portable because the storage space will be reduced after folding.
  • Material - It is not easy to break because it is made of solid aluminum alloy construction.Ideal for all building and remodeling projects.
  • Adjustable positioning tool - When in use, it can adjust to the required angel, then tighten the nut positioning and press the middle adjustable lever to achieve precise positioning.
  • Stainless steel needle drawing tool - The tail is screwed and fixed on the ruler body so it is easy to carry and open. It is durable and won't shake off during use.
  • Practical gifts - Perfect for DIY-ers, craftsmen and builders, these metal template tool set are a must-have for any toolbox. The tail is screwed and fixed on the ruler body easy to carry.
  • Portable - Lightweight and very easy to put in your tool box or pocket.

Specification:

  • material:aluminium alloy
  • weight:480g

MONEY BACK GUARANTEE

    We want you to be 100% satisfied with the products you buy from us. If for ANY reason you are not satisfied with your purchase, we offer an iron-clad money-back guarantee. Buying online can be a daunting task, so we want you to realize that there are absolutely ZERO risks in buying something and trying it out. If you don’t like it, we’ll make it right… It’s our promise!

    You May Also Like Don't Like These?
    Customer Reviews

    Here are what our customers say.

    Write a Review
    Customer Reviews
    Wow you reached the bottom
    Newest
    Most liked
    Highest ratings
    Lowest ratings
    ×
    class SpzCustomFileUpload extends SPZ.BaseElement { constructor(element) { super(element); this.uploadCount_ = 0; this.fileList_ = []; } buildCallback() { this.action = SPZServices.actionServiceForDoc(this.element); this.registerAction('upload', (data) => { this.handleFileUpload_(data.event?.detail?.data || []); }); this.registerAction('delete', (data) => { this.handleFileDelete_(data?.args?.data); }); this.registerAction('preview', (data) => { this.handleFilePreview_(data?.args?.data); }); this.registerAction('limit', (data) => { this.handleFileLimit_(); }); this.registerAction('sizeLimit', (data) => { this.handleFileSizeLimit_(); }); } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } setData_(count, file) { this.uploadCount_ = count; this.fileList_ = file; } handleFileUpload_(data) { data.forEach(i => { if(this.fileList_.some(j => j.url === i.url)) return; this.fileList_.push(i); }) this.uploadCount_++; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileUpload", { count: this.uploadCount_, files: this.fileList_}); if(this.fileList_.length >= 5){ document.querySelector('#review_upload').style.display = 'none'; } if(this.fileList_.length > 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '8px'; } } handleFileDelete_(index) { this.fileList_.splice(index, 1); this.uploadCount_--; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileDelete", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; if(this.fileList_?.length === 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '132px'; } } handleFilePreview_(index) { const finalPreviewData = this.fileList_[index]; const filePreviewModal = document.getElementById('filePreviewModal'); const fullScreenVideo = document.getElementById('fullScreenVideo'); const fullScreenImage = document.getElementById('fullScreenImage'); const previewModalClose = document.getElementById('previewModalClose'); const previewLoading = document.getElementById('previewLoading'); filePreviewModal.style.display = 'block'; previewLoading.style.display = 'flex'; if(finalPreviewData?.type === 'video'){ const media = this.mediaParse_(this.fileList_[index]?.url); fullScreenVideo.addEventListener('canplaythrough', function() { previewLoading.style.display = 'none'; }); fullScreenImage.src = ''; fullScreenImage.style.display = 'none'; fullScreenVideo.style.display = 'block'; fullScreenVideo.src = media.mp4 || ''; } else { fullScreenImage.onload = function() { previewLoading.style.display = 'none'; }; fullScreenVideo.src = ''; fullScreenVideo.style.display = 'none'; fullScreenImage.style.display = 'block'; fullScreenImage.src = finalPreviewData.url; } previewModalClose.addEventListener('click', function() { filePreviewModal.style.display = 'none'; }); } handleFileLimit_() { alert(window.AppReviewsLocale.comment_file_limit || 'please do not upload files more than 5'); this.triggerEvent_("handleFileLimit"); } handleFileSizeLimit_() { alert(window.AppReviewsLocale.comment_file_size_limit || 'File size does not exceed 10M'); } clear(){ this.fileList_ = []; this.uploadCount_ = 0; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleClear", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; } mediaParse_(url) { var result = {}; try { url.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (str, key, value) { try { result[key] = decodeURIComponent(value); } catch (e) { result[key] = value; } }); result.preview_image = url.split('?')[0]; } catch (e) {}; return result; } triggerEvent_(name, data) { const event = SPZUtils.Event.create(this.win, name, data); this.action.trigger(this.element, name, event); } } SPZ.defineElement('spz-custom-file-upload', SpzCustomFileUpload);
    The review would not show in product details on storefront since it does not support to.