CNC Machining and Fabrication Services
<![CDATA[<![CDATA[<![CDATA[ window._currentDevice = 'desktop'; window.Parameters = window.Parameters || { AjaxContainer: 'div.dmBody', WrappingContainer: 'div.dmOuter', HomeUrl: 'https://www.hardrockhddp.com/', AccountUUID: 'c1f9a940fb4d4c0392fd141cac88908c', SystemID: 'US_HIBU_PRODUCTION', SiteAlias: 'f41529a4cb2f4368b718a555342972db', SiteType: atob('RFVEQU9ORQ=='), PublicationDate: 'Fri Jul 21 17:25:58 UTC 2023', ExternalUid: '668692663', IsSiteMultilingual: false, InitialPostAlias: '', InitialDynamicItem: '', DynamicPageInfo: { isDynamicPage: false, base64JsonRowData: 'null', }, InitialPageAlias: 'cnc-machining-fabrication', InitialPageUuid: '256948ad95464f74b43038cf023d3912', InitialPageId: '87724859', InitialEncodedPageAlias: 'Y25jLW1hY2hpbmluZy1mYWJyaWNhdGlvbg==', CurrentPageUrl: '', IsCurrentHomePage: false, AllowAjax: false, AfterAjaxCommand: null, HomeLinkText: 'Back To Home', UseGalleryModule: false, CurrentThemeName: 'Layout Theme', ThemeVersion: '10490', DefaultPageAlias: '', RemoveDID: true, WidgetStyleID: null, IsHeaderFixed: false, IsHeaderSkinny: false, IsBfs: true, StorePageAlias: 'null', StorePagesUrls: 'e30=', IsNewStore: 'false', StorePath: '', StoreId: 'null', StoreVersion: 0, StoreBaseUrl: '', StoreCleanUrl: true, StoreDisableScrolling: true, IsStoreSuspended: false, NotificationSubDomain: 'hardrockhddp', HasCustomDomain: true, showCookieNotification: false, cookiesNotificationMarkup: 'null', translatedPageUrl: '', isFastMigrationSite: false, sidebarPosition: 'NA', currentLanguage: 'en', currentLocale: 'en', NavItems: '{}', errors: { general: 'There was an error connecting to the page.
Make sure you are not offline.’, password: ‘Incorrect name/password combination’, tryAgain: ‘Try again’ }, NavigationAreaParams: { ShowBackToHomeOnInnerPages: true, NavbarSize: 4, NavbarLiveHomePage: ‘https://www.hardrockhddp.com/’, BlockContainerSelector: ‘.dmBody’, NavbarSelector: ‘#dmNav:has(a)’, SubNavbarSelector: ‘#subnav_main’ }, hasCustomCode: true, planID: ‘753’, customTemplateId: ‘null’, siteTemplateId: ‘null’, productId: ‘DM_DIRECT’, disableTracking: false, pageType: ‘FROM_SCRATCH’, isRuntimeServer: true, isInEditor: false, }; window.Parameters.LayoutID = {}; window.Parameters.LayoutID[window._currentDevice] = 6; window.Parameters.LayoutVariationID = {}; window.Parameters.LayoutVariationID[window._currentDevice] = 5; ]]]]]]>]]]]>]]> <![CDATA[> 0 } ]]]]]]>]]]]>]]> <![CDATA[<![CDATA[]]> <![CDATA[]]> <![CDATA[<![CDATA[ { setTimeout(() => { storedRuntimeCssLink.disabled = false; storedGlobalCssLink.disabled = false; if (storedPageCssLink) { storedPageCssLink.disabled = false; } cssLinks = null; }, 0); }); } } function loadCSS(link) { try { var urlParams = new URLSearchParams(window.location.search); var noCSS = !!urlParams.get(“nocss”); var cssTimeout = urlParams.get(“cssTimeout”) || 0; if (noCSS) { return; } if (link.href.includes(“d-css-runtime”)) { cssLinks.runtime = link; checkCss(); } else if (link.id === “siteGlobalCss”) { cssLinks.global = link; checkCss(); } else if(link.id.includes(“CssLink”)) { cssLinks.page = link; checkCss(); } else { requestIdleCallback(function () { window.setTimeout(function () { loadCssLink(link); }, parseInt(cssTimeout, 10)); }); } } catch (e) { throw e } } window.loadCSS = window.loadCSS || loadCSS; })(); ]]]]]]>]]]]>]]> <![CDATA[<![CDATA[]]]]>]]> <![CDATA[<![CDATA[ { setTimeout(() => { storedRuntimeCssLink.disabled = false; storedGlobalCssLink.disabled = false; if (storedPageCssLink) { storedPageCssLink.disabled = false; } cssLinks = null; }, 0); }); } } function loadCSS(link) { try { var urlParams = new URLSearchParams(window.location.search); var noCSS = !!urlParams.get(“nocss”); var cssTimeout = urlParams.get(“cssTimeout”) || 0; if (noCSS) { return; } if (link.href.includes(“d-css-runtime”)) { cssLinks.runtime = link; checkCss(); } else if (link.id === “siteGlobalCss”) { cssLinks.global = link; checkCss(); } else if(link.id.includes(“CssLink”)) { cssLinks.page = link; checkCss(); } else { requestIdleCallback(function () { window.setTimeout(function () { loadCssLink(link); }, parseInt(cssTimeout, 10)); }); } } catch (e) { throw e } } window.loadCSS = window.loadCSS || loadCSS; })(); ]]]]]]>]]]]>]]> CNC Machining and Fabrication Services | Winder, GA <![CDATA[]]> <![CDATA[]]> <![CDATA[]]> <![CDATA[<![CDATA[ 1){ $(element).find(‘.multipleYextError’).addClass(‘hasError’); return; }else if(data.config.type === ‘none’){ $(element).find(‘.editorOnlyInfo’).addClass(‘inEditor’); } } } /* refresh yext script */ window.refreshYext = function(){ loadYext(true); } //function for Omniture tracking window._trackConvWidgetClickEvent = function(eventName) { if(typeof(HAF)===”object”){ HAF.OmTracking.onCMClick(eventName) } return; } /* draw yext map */ var drawMap = function(yextData){ var zoom = data.config.mapZoom; var yData = yextData.entities[0].attributes; var addressQuery = yData[‘address1’] + ” ” + yData[‘address2’] + ” ” + yData[‘city’] + ” ” + yData[‘state’] + ” ” + yData[‘zip’]; dmAPI.drawMap({addressQuery: addressQuery, zoom: zoom, container: $(element).find(‘.yextMap’)}); } var formatPhoneBeforeRender = function(num,cb) { if (!cb) cb = function(){return} if(data.config.formatPhone){ var s2 = (“”+num).replace(/D/g, ”); var m = s2.match(/^(d{3})(d{3})(d{4})$/); var formatted = (!m) ? null : “(” + m[1] + “) ” + m[2] + “-” + m[3]; cb(formatted); return formatted; } else { cb(num); return num; } } var displayTextdList = function(type,yextData,firstOnly) { var list = “”; if(yextData.entities[0].attributes[type]) { var yextAtt = yextData.entities[0].attributes[type] } else { var yextAtt = false } if(yextAtt && Array.isArray(yextAtt)) { for (var i=0; i< yextAtt.length; i++) { if (yextAtt[i] === 'Android Pay') { list += '
<![CDATA[<![CDATA[ 0) { $.each(customIcons, function(i, cicon) { var classList = $(cicon).attr(‘class’).split(/s+/); $.each(classList, function(index, item) { if(item != ‘custom-user-icon’) { $( “.” + item + ” > svg” ).addClass(item); // add the calling class to the child svg element directly $( “.” + item + ” > svg” ).unwrap(); // remove the parent div } }); }); } } // adds click or hover listeners function addListener() { // add listener and animation for floating icons hover animation if(!isMobile() && data.config.DesktopLayout === ‘Float’) animateFloat(‘.float-container’, 300); // click handlers for desktop bar and mobile options else { $(“#conversion-menu-container”).off(‘click’, ‘.fab,.overlay’); $(“#conversion-menu-container”).on(‘click’, ‘.fab,.overlay’, function(){ HasOpenedMenu = true; $(‘.animation’).remove(); // remove any animations we have if(isMobile()) { animateIcons(‘overlay’); data.config.MobileLayout === ‘Full’? animateBg(‘.mobile-bg’) : ”; } else { // bar desktop animateIcons(‘helpText’); animateBg(‘.desktop-bg’); } }); } } // listens for share button click and triggers response function addShareListener() { $(“#conversion-menu-container”).off(‘click’, ‘.share’); $(“.share”).on(‘click’, function() { // console.log(‘share clicked modal should open’); MicroModal.show(‘social-modal-menu’); }); } function addPixelListener() { $(‘.bsr-menulink’).click(function() { var eventName = $(this).data(‘eventname’); if(!eventName) { fbq(‘track’, ‘Contact’); } else { fbq(‘trackCustom’, eventName); } }); } function addChatListener() { $(“.bsr-chat”).on(‘click’, function() { $(“#chat-script”).remove(); // Get rid of any chat-script on the page $.each(data.config.IconList, function(index,value){ if(value.hasOwnProperty(‘ChatScript’)) { var cscript = value.ChatScript; // Check if the script is a src or raw script // Changed mind and wanted to input tags so this is saved for posterity /* var re = new RegExp(‘^(?:[a-z]+:)?//’, ‘i’); // non case-sensitive, protocol-agnostic if (re.test(cscript)) { $(‘body’).append(”); return false; // break out of the $.each() on first occurence } else { $(‘body’).append(” + cscript + ”); return false; // break out of the $.each() on first occurence } */ $(‘body’).append(cscript); } }); }); } // // ANIMATIONS // function animateFocus() { $(‘.animation’).remove(); //in case already in DOM if(!HasOpenedMenu) { if(isMobile()) { const pulse = ”; setTimeout(function() { $(‘#masterfab’).append(pulse); }, +data.config.FocusDelay); } // desktop else { data.config.DesktopLayout === ‘Float’? animateFloatFocus() : animateBarFocus(); } } } function animateFloatFocus() { if($(‘.focus’)[0]) { const id = $(‘.focus’)[0].id; setTimeout(function() { $(‘#’+id).css(‘max-width’, ”); $(‘#’+id).addClass(‘slide-pulse’); }, +data.config.FocusDelay); } } // opens fixed bar on desktop after set interval function animateBarFocus() { if(!$(“.desktop-bg”).is(“:visible”)) { setTimeout(function() { animateIcons(‘helpText’); animateBg(‘.desktop-bg’); }, +data.config.FocusDelay); } } // adds hover listeners and animates floating icons on desktop function animateFloat(selector, dur) { $(“#float-container”).off(“mouseenter”, selector); $(“#float-container”).on(“mouseenter”, selector, function(event) { // console.log(‘float mouse enter’); HasOpenedMenu = true; var id = $(this)[0].id; // cancel animation on hover data.config.FocusAni? $(‘#’+id).removeClass(‘slide-pulse’) : 0; $(‘#text-‘+id).fadeIn(); $(‘#float-text-‘+id).fadeIn(dur).css(“display”,”inline-flex”); $(‘#’+id).stop().animate({ “max-width”: “200px”, }, dur); }); $(“#float-container”).off(“mouseleave”, selector); $(“#float-container”).on(“mouseleave”, selector, function(event) { // console.log(‘float mouse leave’); var id = $(this)[0].id; $(‘#text-‘+id).fadeOut(dur); $(‘#’+id).stop().animate({ “max-width”: “42.666px”, }, dur); }); } // animates icons slide up and transparent overlay(depending on showType) function animateIcons(showType) { if($(“.overlay”).is(“:visible”) || $(“.desktop-bg”).is(“:visible”)) { if(showType === ‘overlay’) $(‘.overlay’).fadeOut(125); else if(showType === ‘helpText’) $(‘#help-text’).fadeOut(125); // add plus icon back $(‘#main-container’).empty().append(getSvg(data.config.MobileMain)); $(‘.fab.child’).stop().animate({ bottom : $(‘#masterfab’).css(‘bottom’), opacity : 0 }, 125, function() { $(this).hide(); }); } else { if(showType === ‘overlay’) $(‘.overlay’).fadeIn(125); else if(showType === ‘helpText’) $(‘#help-text’).fadeIn(125); // add close icon on mobile only if(isMobile()) $(‘#main-container’).empty().append(getSvg(‘close’)); $(“.fab.child”).each(function(){ $(this).stop().show().animate({ bottom : (parseInt($(“#masterfab”).css(“bottom”)) + parseInt($(“#masterfab”).outerHeight() + 20) + 56 * $(this).data(“subitem”) – $(“.fab.child”).outerHeight()) + “px”, opacity : 1 }, 125); }); } } // adds overlay that slides up function animateBg(selector) { if($(selector).is(“:visible”)) { $(‘#main-container’).removeClass(‘open’); $(“#masterfab.fab.master-mobile”).removeClass(‘mobile-open’) var mainIcon = data.config.DeskMain // revert to default main icon style if(isMobile()) { mainIcon = data.config.MobileMain; $(‘#masterfab’).css({‘background’: ”, ‘box-shadow’: ”}); // restore default } $(‘#main-container’).empty().append(getSvg(mainIcon)); $(‘.menu-link, .child’).hide(); // slide down to cloes $(selector).stop().animate({ height : 0, opacity : 0 }, 125, function(){ $(this).hide(); }); } else { $(‘#main-container’).addClass(‘open’); $(“#masterfab.fab.master-mobile”).addClass(‘mobile-open’) var topArea = 100; if(isMobile()) { $(‘#masterfab’).css({‘background’: ‘none’, ‘box-shadow’: ‘none’}); // make icon flat $(‘#main-container’).empty().append(getSvg(‘close’)); // add x icon } else if(data.config.DesktopLayout === ‘Bar’) { // hack to get height of bar help text before it’s visible $(selector).css({‘position’:’absolute’,’visibility’:’hidden’, ‘display’:’block’}); topArea = $(“#help-text”).height()? $(“#help-text”).height() + 60 : 40; $(selector).removeAttr(‘style’); } // slide up to open $(selector).stop().show().animate({ height : (((data.config.IconList.length+1) * 56) + topArea) + “px”, opacity : 1 },125, function() { $(‘.menu-link’).fadeIn(125); $(selector).css(“display”,”flex”) }); } } function getItems(type, float) { $(‘.child’).remove(); // remove any items already in DOM var html = ”, label = ”, icon = ”, text = ”; var items = float? data.config.IconList : data.config.IconList.reverse(); items.forEach(function(item, index) { if(item.showonmobile==true && data.device === ‘mobile’){ index = index+1; if(type === ‘rightText’){ label = ” + item.Label + ”; } if(type === ‘leftText’) { label = ” + item.Label + ”; } if(type === ‘bsrRightText’) { label = ” + item.Label + ”; } icon = ”+getItemIcon(item)+”; html += ‘ ‘+getItemAction(item, icon+label)+’ ‘; if(item.Action === ‘Share’) { $.getScript(‘https://cdn.jsdelivr.net/npm/micromodal/dist/micromodal.min.js’, function() { MicroModal.init(); $(‘.share-container’).html(getSocialItems(item)); // add social icons to modal addShareListener(); // if social sharing enabled add click handler }); } } else if(item.showondesktop==true && (data.device === ‘desktop’ || data.device === ‘tablet’) ){ if(type === ‘rightText’){ label = ” + item.Label + ”; } if(type === ‘leftText’) { label = ” + item.Label + ”; } if(!float) { icon = ”+getItemIcon(item)+”; html += ‘ ‘+getItemAction(item, icon+label)+’ ‘; } // floating icons on desktop only else { // add focus class for focus animation label = item.Label; var focusClass = item.Animate? ‘focus’ : ”; icon = ”+getItemIcon(item)+”; text = ”+label+”; html += ‘ ‘+getItemAction(item, icon)+’ ‘+getItemAction(item, text)+’ ‘; } // if action is share add share items to modal if(item.Action === ‘Share’) { $.getScript(‘https://cdn.jsdelivr.net/npm/micromodal/dist/micromodal.min.js’, function() { MicroModal.init(); $(‘.share-container’).html(getSocialItems(item)); // add social icons to modal addShareListener(); // if social sharing enabled add click handler }); } } }); return html; } function getSocialItems(item) { let html = ”; const content = getShareContent(item); if(item.Email) html += getShareHtml(‘Email’, content.link, content.title, ‘Tab’, ‘social’); if(item.Facebook) html += getShareHtml(‘Facebook’, content.link, content.title, ‘Tab’, ‘social’); if(item.Tumblr) html += getShareHtml(‘Tumblr’, content.link, content.title, ‘Tab’, ‘social’); if(item.LinkedIn) html += getShareHtml(‘LinkedIn’, content.link, content.title, ‘Tab’, ‘social’); if(item.Twitter) html += getShareHtml(‘Twitter’, content.link, content.title, ‘Tab’, ‘social’); if(item.Reddit) html += getShareHtml(‘Reddit’, content.link, content.title, ‘Tab’, ‘social’); //if(item.GooglePlus) html += getShareHtml(‘GooglePlus’, content.link, content.title, ‘Tab’, ‘social’); if(item.Pinterest) html += getShareHtml(‘Pinterest’, content.link, content.title, ‘Tab’, ‘social’); return html; } // // Social Share Functions // function getShareContent(item) { // set link to the current page url let link = item.ShareLink? item.Link.href : window.top.location.href; link = encodeURI(link); // get default page title from the actual page title const pageTitle = item.ShareTitle? item.ShareTitle : document.title; const encodedTitle = encodeURI(pageTitle); return {link: link, title: encodedTitle}; } function getShareHtml(site, link, encodedTitle, action, linkClass) { let href = ”; switch(site) { case ‘Email’: href = “mailto:?Subject=”+encodedTitle+”&body=Check out this site: “+window.location.href; statsEventName = ‘CM_SHARE_EMAIL’; return ( ‘ ‘+getSvg(‘shareenvelope’)+’ ‘); case ‘Facebook’: href = ‘https://www.facebook.com/sharer/sharer.php?u=’+link; statsEventName = ‘CM_SHARE_FB’; return ( ‘ ‘+getSvg(‘facebook’)+’ ‘); case ‘Tumblr’: href = ‘http://tumblr.com/share/link?url=’+link+’&name=’+encodedTitle; return ( ‘ ‘+getSvg(‘tumblr’)+’ ‘); case ‘LinkedIn’: href = ‘http://www.linkedin.com/shareArticle?mini=true&url=’+link+’&title=’+encodedTitle; statsEventName = ‘CM_SHARE_LINKEDIN’; return ( ‘ ‘+getSvg(‘linkedIn’)+’ ‘); case ‘Twitter’: href = ‘https://twitter.com/intent/tweet?text=’+link; statsEventName = ‘CM_SHARE_TWITTER’; return ( ‘ ‘+getSvg(‘twitter’)+’ ‘); case ‘Reddit’: href = ‘http://www.reddit.com/submit?url=’+link+’&title=’+encodedTitle+’&text=’+encodedTitle; return ( ‘ ‘+getSvg(‘reddit’)+’ ‘); /* case ‘GooglePlus’: href = ‘https://plus.google.com/share?url=’+link; statsEventName = ‘CM_SHARE_GOOGLE_PLUS’; return ( ‘ ‘+getSvg(‘gPlus’)+’ ‘); */ case ‘Pinterest’: href = ‘http://pinterest.com/pin/create/button/?url=’+link+’&description=’+encodedTitle; return ( ‘ ‘+getSvg(‘pinterest’)+’ ‘); default: return ”; } } // // Helpers // // check display type function isMobile() { return data.device === ‘mobile’; } function getItemAction(item, elem) { var statsEventName=”; switch(item.Action) { case ‘Link’: if(!item.Link) item.Link = { target: ‘target=”_blank’, href: ‘http://www.google.com’ } // default link var target = item.Link.target? item.Link.target : ”; var statsEventName = ‘CM_LINK_CLICK’; return ”+elem+”; case ‘Call’: statsEventName = ‘CM_CLICK_TO_CALL’; return ”+elem+”; case ‘Sms’: statsEventName = ‘CM_CLICK_TO_SMS’; return ”+elem+”; case ‘Email’: statsEventName = ‘CM_CLICK_TO_EMAIL’; return ”+elem+”; case ‘Map’: statsEventName = ‘CM_DIRECTION’; return ”+elem+”; case ‘Mess’: statsEventName = ‘CM_FB_MESSAGE’; return ”+elem+”; case ‘Share’: return ”+elem+”; case ‘Chat’: return ”+elem+”; default: return ”; } } // returns new default icon only if icon is default (identified by path data in default svg MUST CHANGE FOR DIFFERENT DEFAUTL) function xgetItemIcon(item) { // icon is default if(item.CustomIcon) { return ”+item.Icon+”; } else { switch(item.Action) { case ‘Link’: return getSvg(‘link’); case ‘Call’: return getSvg(‘phone’); case ‘Sms’: return getSvg(‘sms’); case ‘Email’: return getSvg(‘envelope’); case ‘Mess’: return getSvg(‘messenger’); case ‘Map’: return getSvg(‘map’); case ‘Share’: return getSvg(‘share’); } } } /* ——————— */ function getItemIcon(item) { var lcase = item.Action.toLowerCase(); if(item.CustomIcon) { switch(item.CustomIcon_Select) { case ‘custom_icon1’: // return ” + data.config.custom_icon1 + ”; return ” + data.config.custom_icon1 + ”; case ‘custom_icon2’: return ” + data.config.custom_icon2 + ”; case ‘custom_icon3’: return ” + data.config.custom_icon3 + ”; case ‘custom_icon4’: return ” + data.config.custom_icon4 + ”; case ‘custom_icon5’: return ” + data.config.custom_icon5 + ”; case ‘custom_icon6’: return ” + data.config.custom_icon6 + ”; } } else { switch(item.Action) { case ‘Link’: return getSvg(‘link’); case ‘Call’: return getSvg(‘phone’); case ‘Sms’: return getSvg(‘sms’); case ‘Email’: return getSvg(‘envelope’); case ‘Mess’: return getSvg(‘messenger’); case ‘Map’: return getSvg(‘map’); case ‘Share’: return getSvg(‘share’); case ‘Chat’: return getSvg(‘chat’); } } } /* ——————— */ window._trackConvWidgetClickEvent = function(eventName) { if(typeof(HAF)===”object”){ HAF.OmTracking.onCMClick(eventName) } return; } function dudaicon(icon){ return ”+icon+” } function xgetSvg(name) { const type = name? name : data.config.DeskMain; switch(type) { case ‘vEllipsis’: return ‘More’; case ‘map’: return ” case ‘hEllipsis’: return ‘More’; case ‘plus’: return ‘More’; case ‘bars’: return ‘More’; case ‘envelope’: return ‘Email’; case ‘shareenvelope’: return ‘Email’; case ‘phone’: return ‘Phone’; case ‘close’: return ‘Close’; case ‘facebook’: return ‘Facebook’; case ‘messenger’: return ‘Facebook Messenger’ case ‘tumblr’: return ‘Tumblr’; case ‘linkedIn’: return ‘LinkedIn’; case ‘twitter’: return ‘Twitter’; case ‘reddit’: return ‘Reddit’; case ‘pinterest’: return ‘Pinterest’; case ‘share’: return ‘Share’; case ‘sms’: return ‘SMS Text’; case ‘link’: return ”; default: return ”; } } function getSvg(name) { const type = name? name : data.config.DeskMain; switch(type) { case ‘vEllipsis’: return ‘More’; case ‘map’: return ” case ‘hEllipsis’: return ‘More’; case ‘plus’: return ‘More’; case ‘bars’: return ‘More’; case ‘envelope’: return ‘Email’; case ‘shareenvelope’: return ‘Email’; case ‘phone’: return ‘Phone’; case ‘close’: return ‘Close’; case ‘facebook’: return ‘Facebook’; case ‘messenger’: return ‘Facebook Messenger’ case ‘tumblr’: return ‘Tumblr’; case ‘linkedIn’: return ‘LinkedIn’; case ‘twitter’: return ‘Twitter’; case ‘reddit’: return ‘Reddit’; case ‘pinterest’: return ‘Pinterest’; case ‘share’: return ‘Share’; case ‘sms’: return ‘SMS Text’; case ‘link’: return ”; case ‘chat’: // return ‘Email’; return ”; default: return ”; } } }; ]]]]]]>]]]]>]]> <![CDATA[]]> <![CDATA[]]]]>]]> <![CDATA[]]> <![CDATA[]]> <![CDATA[]]> <![CDATA[]]]]>]]> <![CDATA[]]> <![CDATA[]]> <![CDATA[]]> <![CDATA[]]> <![CDATA[]]> <![CDATA[]]> <![CDATA[]]>
<![CDATA[]]> <![CDATA[<![CDATA[]]]]>]]>
<![CDATA[<![CDATA[]]]]>]]> <![CDATA[<![CDATA[]]]]>]]> <![CDATA[<![CDATA[]]]]>]]> <![CDATA[<![CDATA[]]]]>]]>
<![CDATA[]]> <![CDATA[]]>
<![CDATA[]]> <![CDATA[<![CDATA[]]> <![CDATA[]]>
CNC Machining and Fabrication Services
Contact Hardrock HDDP for metal fabrication and machine shop services including custom manufacturing. Nationwide shipping. 20+ years of experience. Free quotes.
If you have any question please CONTACT Us Email us at: [email protected] Call US :(936) 588-1888
Don’t Forget to Visit our Services