\n\n

,需要通过父级DOM结构来判断 */ var trackActionPhone = function (node) { var nodeInnerText = node.innerText || ''; if (!limitRegLength(nodeInnerText)) return; var nodeText = trimText(nodeInnerText); if (nodeText.length < 5 || nodeText.length > 20) return false; var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'click'; var str = trimText(node.href || nodeText || ''); if (phoneReg.test(str) && numUseReg.test(str)) { window.postMessage({ type: 'SHOPS_CONTACT_TRACK', data: { phone: nodeText, }, }, '*'); _paq.push(['trackEvent', type, 'phone', nodeText]); return true; } /** 排查父级嵌套非标签场景,并且对dom的正则校验做一个性能兜底,通过控制innerText的长度,来确保正则的性能 */ var fatherText = trimText(node.parentNode.innerText || ''); if (fatherText.length < 5 || fatherText.length > 20) return false; if (phoneReg.test(fatherText) && numUseReg.test(fatherText)) { window.postMessage({ type: 'SHOPS_CONTACT_TRACK', data: { phone: nodeText, }, }, '*'); _paq.push(['trackEvent', type, 'phone', nodeText]); return true; } return false; }; window.addEventListener('click', function (e) { var node = e.target; /** 社媒点击 */ var appName = ''; var getAppAriaLabel = node.ariaLabel || node.parentNode.ariaLabel || ''; if (mediaList.includes(getAppAriaLabel.toLowerCase())) { appName = getAppAriaLabel; } if ( !appName && node.nodeName && node.nodeName.toLowerCase() === 'a' ) { appName = getMediaName(node.href) || getMediaName(node.alt); } if ( !appName && node.nodeName && node.nodeName.toLowerCase() === 'img' ) { appName = getMediaName(node.alt) || getMediaName(node.src); } if ( !appName && node.nodeName && node.nodeName.toLowerCase() === 'i' ) { appName = getMediaName(node.className); } if (appName) { _paq.push(['trackEvent', 'click', 'contactApp', appName]); return; } /** 联系方式点击 */ if (trackActionPhone(node, 'click')) return; if (node.nodeName && node.nodeName.toLowerCase() === 'a') { var val = node.href; if (!limitRegLength(val)) return; if (emailReg.test(val)) { window.postMessage({ type: 'SHOPS_CONTACT_TRACK', data: { email: val, }, }, '*'); _paq.push(['trackEvent', 'click', 'email', val]); return; } } if (node.nodeName && node.nodeName.toLowerCase() === 'i') { var val = node.className; var content = node.parentNode.href || ''; if (val.includes('email')) { window.postMessage({ type: 'SHOPS_CONTACT_TRACK', data: { email: content, }, }, '*'); _paq.push(['trackEvent', 'click', 'email', content]); return; } } var nodeChildList = node.childNodes; for (var i = 0; i < nodeChildList.length; i++) { if (nodeChildList[i].nodeType !== 3) continue; var val = nodeChildList[i].textContent.replace(/\s?:?/g, ''); if (!limitRegLength(val)) continue; if (emailReg.test(val)) { window.postMessage({ type: 'SHOPS_CONTACT_TRACK', data: { email: val, }, }, '*'); _paq.push(['trackEvent', 'click', 'email', val]); return; } } trackNumberData(node); }); window.addEventListener('copy', function (e) { if (trackActionPhone(e.target, 'copy')) return; var text = e.target.textContent; if (!text) return; var val = text.replace(/\s:?/g, ''); if (!limitRegLength(val)) return; if (emailReg.test(val)) { window.postMessage({ type: 'SHOPS_CONTACT_TRACK', data: { email: val, }, }, '*'); _paq.push(['trackEvent', 'copy', 'email', val]); return; } trackNumberData(e.target); }); } trackContactInit(); /** * 基于custom_inquiry_form.js 以及 form.js 对于询盘表单提交的实现,来反推询盘表单的input标签触发,用来收集意向客户 * 1. 缓存的KEY:TRACK_INPUT_ID_MTM_00; * 2. 缓存策略 - lockTrackInput:单个页面内,10分钟内,不重复上报 */ function trackActionInput() { const CACHE_KEY = 'TRACK_INPUT_ID_MTM_00'; const pathName = window.location.hostname + window.location.pathname; var lockTrackInput = function () { try { const lastCacheData = localStorage.getItem(CACHE_KEY); if (!lastCacheData) return false; const cacheData = JSON.parse(lastCacheData); const cacheTime = cacheData[pathName]; if (!cacheTime) return false; return Date.now() - cacheTime < 1000 * 60 * 10; // 10分钟内,不重复上报 } catch (error) { console.error('lockTrackInput Error', error); return false; } }; var setInputTrackId = function () { try { const curCacheData = localStorage.getItem(CACHE_KEY); if (curCacheData) { const cacheData = JSON.parse(curCacheData); cacheData[pathName] = Date.now(); localStorage.setItem(CACHE_KEY, JSON.stringify(cacheData)); return; } const cacheData = { [pathName]: Date.now(), }; localStorage.setItem(CACHE_KEY, JSON.stringify(cacheData)); } catch (error) { console.error('setInputTrackId Error', error); } }; var getInputDom = function (initDom) { var ele = initDom; while (ele) { /** * isWebSiteForm 是站点的表单 * isChatWindowForm 是聊天窗口的表单 */ /** 旧模板表单 */ var isWebSiteForm = !!( /crm-form/i.test(ele.className) && ele.querySelector('form') ); /** 1:新模板自定义表单、2:Get a Quote 弹框表单 */ var isWebSiteFormNew = !!( /inquiry/i.test(ele.className) && ele.querySelector('form') ); if (isWebSiteForm || isWebSiteFormNew) { _paq.push(['trackEvent', 'formInquiry', 'formInput', 'page']); setInputTrackId(); return; } /** Mkt会话触达-聊天弹框的表单输入: MKT由于是iframe嵌入,所以MKT的上报,会单独写到MKT-form代码上 */ var isInquiryChatForm = !!( /comp-form/i.test(ele.className) && ele.querySelector('form') ); if (isInquiryChatForm) { _paq.push(['trackEvent', 'formInquiry', 'formInput', 'chat']); setInputTrackId(); return; } /** 向上查找父节点 */ ele = ele.parentNode; } }; function initInputListener() { var inputUseDebounce = function (fn, delay) { var timer = null; var that = this; return function () { var args = Array.prototype.slice.call(arguments); if (timer) clearTimeout(timer); timer = setTimeout(function () { fn.apply(that, args); }, delay); }; }; var optimizeGetInputDom = inputUseDebounce(getInputDom, 300); window.addEventListener('input', function (e) { /** 如果已经上报过,则不再上报 */ if (lockTrackInput()) return; optimizeGetInputDom(e.target); }); } try { initInputListener(); } catch (error) { console.log('initInputListener Error', error); } } trackActionInput(); } /** 第三方消息上报:目前主要是针对全点托管会话;在msgCollect/index.js中调试,访问test.html */ function thirdMsgCollect() { /** 先检测是否是stayReal托管:如果stayReal脚本都没有,那么说明当前站点未开启stayReal会话托管 */ const scriptList = Array.prototype.slice.call( document.querySelectorAll('script'), ); const checkStayReal = () => !!scriptList.find((s) => s.src.includes('stayreal.xiaoman.cn')); if (!checkStayReal()) return; /** 缓存当前消息队列的最后一条消息id */ const CACHE_KEY = 'CACHE_KEY_MONITOR'; const setCache = (msgIndex) => { /** 对缓存KEY进行base64转码处理 */ const cacheMsgIndex = btoa(msgIndex); localStorage.setItem(CACHE_KEY, cacheMsgIndex); }; const getCache = () => { const cacheMsgIndex = localStorage.getItem(CACHE_KEY); if (cacheMsgIndex) return Number(atob(cacheMsgIndex)); return -1; }; /** 拉取最新msg列表 */ const pullMsgList = () => { const msgEleList = Array.prototype.slice.call( document.querySelectorAll('#chat-list li'), ); const msgIds = []; const msgMap = msgEleList.reduce((acc, item) => { const sendTime = item .querySelector('.message-data-time') .textContent.trim(); const sendContent = item.querySelector('.message').textContent.trim(); /** msg带有class:other-message的是访客消息,my-message的是客服消息 */ const isOtherMessage = item .querySelector('.message') .classList.contains('other-message'); const msgId = item.querySelector('.message').getAttribute('id'); const msgItemData = { msgId, user: isOtherMessage ? 'visitor' : 'official', time: sendTime, content: sendContent, }; msgIds.push(msgId); acc[msgId] = msgItemData; return acc; }, {}); return { ids: msgIds, dataMap: msgMap, }; }; /** 加密并上传消息数据 */ let ENCRYPT_KEY = 'de29f1aab63ab033'; let ENCRYPT_IV = 'b8d2badf875e76ac'; const baseUrl = 'https://cms.xiaoman.cn'; // var getEncryptConfig = function () { // const url = baseUrl + '/shop-api/innerApi/getKeyIv' // $.get( // url, // function (result) { // console.log('result', result) // if (Number(result.code) === 0 && result.data.key && result.data.iv) { // ENCRYPT_KEY = result.data.key // ENCRYPT_IV = result.data.iv // uploadMsgData() // } else { // /** 如果获取失败,则重试 */ // setTimeout(() => { // getEncryptConfig() // }, 1000) // } // }, // 'json' // ) // } // getEncryptConfig() const encryptMsg = function (msgData) { const enc = new TextEncoder(); // 转字节 const keyBytes = enc.encode(ENCRYPT_KEY); const ivBytes = enc.encode(ENCRYPT_IV); const plainBytes = enc.encode(msgData); // 导入密钥并加密 return crypto.subtle .importKey('raw', keyBytes, { name: 'AES-CBC' }, false, ['encrypt']) .then(function (cryptoKey) { return crypto.subtle.encrypt( { name: 'AES-CBC', iv: ivBytes }, cryptoKey, plainBytes, ); }) .then(function (encryptedBuffer) { // 转 base64 返回 return btoa( String.fromCharCode(...new Uint8Array(encryptedBuffer)), ); }) .catch((err) => { return Promise.reject(err); }); }; let uploadFlag = false; const uploadMsgData = function () { if (uploadFlag) return; uploadFlag = true; const { ids, dataMap } = pullMsgList(); let cacheMsgIndex = getCache(); const msgLen = ids.length; if (!msgLen) { // 消息DOM未挂载 || 消息DOM已挂载,但是消息列表为空 uploadFlag = false; return; } if (msgLen - 1 < cacheMsgIndex) { /** 针对站点挂后台一段时间,消息列表会自动塞入重复消息,导致消息有重复,刷新后又重置回正常消息列表,所以这里需要更新锚点下标 */ cacheMsgIndex = msgLen - 1; setCache(cacheMsgIndex); uploadFlag = false; return; } if (msgLen - 1 === cacheMsgIndex) { // 缓存的最后一次发送的消息ID是最后一条(说明当前消息均已经上报),则不跳过本地上报 uploadFlag = false; return; } const currentMsgIds = ids.slice(cacheMsgIndex + 1, msgLen); const currentMsgData = currentMsgIds.map((id) => dataMap[id]); const mtmId = window.matomo_site_id_cookie_key || ''; // 获取mtm会话id const msgBody = { mtmId, curl: window.location.href, msgList: currentMsgData, }; const msgBodyStr = JSON.stringify(msgBody); encryptMsg(msgBodyStr) .then(function (encryptedMsg) { console.log('encryptedMsg:', encryptedMsg, msgBodyStr); const url = baseUrl + '/shop-api/External/ListenSiteActiveStatus'; $.ajax({ type: 'POST', url, data: JSON.stringify({ d_v: encryptedMsg }), contentType: 'application/json', success: function (result) { if (Number(result.code) === 0) { // 更新消息队列 setCache(msgLen - 1); } uploadFlag = false; }, error: function (err) { console.error(err, '请求异常'); uploadFlag = false; }, }); }) .catch((err) => { console.error(err, '数据加密失败'); uploadFlag = false; }); }; /** 监控chat-list的DOM变更 */ const initChatListObserver = () => { // 需要监听的 DOM 节点 const target = document.getElementById('chat-list'); if (!target) return; // 回调函数 const callback = function (mutationsList, observer) { for (const mutation of mutationsList) { console.log('mutation', mutation); if (mutation.type === 'childList') { uploadMsgData(); } } }; // 配置 const config = { childList: true, // 监听子节点的增删 subtree: true, // 是否也监听后代节点 }; // 创建 observer const observer = new MutationObserver(callback); // 开始监听 observer.observe(target, config); }; let testCount = 30; let itv = null; const checkChatDom = () => !!document.querySelector('#vc-model'); const initTalkCheck = () => { itv = setTimeout(() => { console.log('checkChatDom', checkChatDom(), testCount); if (!checkChatDom() && testCount > 0) { testCount--; initTalkCheck(); return; } clearTimeout(itv); uploadMsgData(); initChatListObserver(); }, 1500); }; initTalkCheck(); } try { gtmTrack(); thirdMsgCollect(); console.log('inserted gtm code'); } catch (error) { console.error('gtmTrack Error', error); } }); })();

모든 카테고리
뒤로

야외 감시용 맞춤형 스테인리스강 회전 마운팅 브래킷

사례 연구: 야외 감시용 맞춤형 스테인리스강 회전 마운팅 브래킷

산업 분야: 야외 지능형 감시 장비 및 스마트 시티 인프라

제품: 맞춤형 스테인리스강 회전 마운팅 브래킷

핵심 기술: 섬유 레이저 절단 , CNC 다축 벤딩, 고정장치 보조 가공 TIG 용접 , 다단계 미러 폴리싱

재료: 프리미엄 304 스테인리스강

납품 수량: 5개의 프로토타입 유닛 (그 후 안정적인 양산 진행)

준수 기준: ISO9001:2015, 48시간 중성 염수 분무 시험, RoHS, REACH

CUSTOM STAINLESS STEEL ROTATING MOUNTING BRACKET FOR OUTDOOR SURVEILLANCE 2.jpg

스마트 시티 인프라와 고급 야외 보안 시스템이 전 세계적으로 확대됨에 따라, 마운팅 하드웨어의 기계적 신뢰성은 현장 설치에 있어 핵심 요소가 되고 있다. 한 유럽 주요 산업 장비 제조사는 이전 공급업체들이 엄격한 사양을 충족하지 못하자 창저우 딥링크에 접근하였다. 이전 협력사는 심각한 용접 왜곡과 구멍 위치 편차 문제를 겪었으며, 이로 인해 조립 과정에서 치명적인 갇힘 현상과 프로젝트 지연이 발생하였다.

초기 단계에서 종합적인 DFM(설계가능성 고려 설계) 전용 중형 용접 고정장치와 맞춤형 위치 지정 홈을 검토 및 도입함으로써, 용접 왜곡을 0.2mm 이내로 엄격히 제어하였다. 이 공학적 조치는 현장 조립 시 발생하던 갇힘 현상을 완전히 해소하였으며, 고객의 부품 폐기율을 크게 감소시켰고, 장기간 실외 환경에서의 내식성도 확보하였다. 우리는 엄격한 현장 시험을 위한 프로토타입 5대를 신속히 납품하여 즉시 승인을 획득하였고, 안정적인 대량 양산으로 원활히 전환하였다.

  1. 공학적 과제: 극한 기상 조건 하의 부식 및 정밀 조립

강한 야외 환경—즉, 강풍, 해안 염분 안개, 자외선 노출, 극단적인 온도 변화—에 노출되는 감시 장비 하드웨어는 뛰어난 부식 저항성과 기계적 정밀 정렬을 요구한다. 중량급 원형 베이스와 U자형 프레임으로 구성된 맞춤형 스테인리스강 회전 브래킷은 고도의 제작 역량을 필요로 하는 엄격한 기술적 과제를 제시하였다.

기술 역량 사양:

  • 소재 및 마감: 프리미엄 304 스테인리스강, 다단계 완전 미러 폴리시 마감. 표면은 버러, 미세 흠집, 용접 잔여물 없이 완전히 매끄러워야 하며, 산화 흔적 없이 48시간 중성 염수 분무 시험을 통과해야 한다.
  • 조립 정밀도: U자형 브래킷의 마운팅 홀 동축 허용 오차는 ±0.15mm 이내로 엄격히 관리되어야 하며, 현장에서 카메라 각도 조정 시 매끄럽고 마찰 없는 회전이 가능해야 한다.
  • 열 왜곡 한계: 원형 베이스와 U-프레임 사이의 용접 왜곡은 최대 0.2mm로 제한됨. 이 허용 오차를 초과하는 경우 현장 설치 시 기계적 갇힘 현상이 발생하여 인건비 증가 및 정비 리스크 상승을 초래함.

CUSTOM STAINLESS STEEL ROTATING MOUNTING BRACKET FOR OUTDOOR SURVEILLANCE 3.jpg

  1. DFM 혁신 — 열 왜곡을 근원에서 제거

2D 공학 도면을 수령한 후, 딥링크 엔지니어링 팀은 CAD 시뮬레이션을 활용해 원래 용접 배치가 TIG 용접의 높은 열 입력으로 인해 필연적으로 열 변형을 유발한다는 점을 확인함. 이에 따라 당사는 네 가지 핵심 제조 최적화 방안을 제안함.

A. 위치 고정용 노치 설정 용접 제품의 기능적 외부 치수를 변경하지 않으면서, 블랭크 시트 레이아웃에 두 개의 정밀 위치 고정 노치를 설계함. 이를 통해 당사 맞춤형 중형 용접 고정장치가 부품을 단단히 고정할 수 있게 되었으며, 열 팽창을 직접 제어하고 구조 왜곡을 0.2mm 미만으로 억제함.

B. 굴곡 반경 및 노치 각도 조정: CNC 굴곡 공정 중 자연스러운 스프링백 효과를 보상하고 미세 균열을 방지하기 위해 두꺼운 스테인리스강 판의 굴곡 반경을 최적화하였다. 또한, 원형 베이스의 노치 절단 각도를 조정하여 섬유 레이저 절단 직후 발생하는 버를 최소화하였다.

C. 연마 여유량 확보: 티그 용접 이음부를 따라 필수적인 연마 여유량을 사전에 확보하였다. 이를 통해 완벽한 거울 마감을 위한 강력한 연삭 공정 중 용접 오목 현상 및 구조적 두께 감소를 방지하였다. 모든 DFM 개정 사항은 프로토타입 제작 전 유럽 고객의 문서화된 승인을 획득하였다.

  1. 해결책: 거울 마감 스테인리스강 브래킷

CUSTOM STAINLESS STEEL ROTATING MOUNTING BRACKET FOR OUTDOOR SURVEILLANCE 4.jpg

  1. 원자재에서 완제품까지의 전 과정 가공 워크플로우

DFM 개정 사항에 대한 고객 승인을 확보한 후, 당사는 ISO 인증 완전 통합 생산 프로토콜을 실행하였다:

  • 섬유 레이저 절단 304 스테인리스강 시트를 원형 베이스와 U자형 블랭크용으로 정밀하게 프로파일링하여, 새로 최적화된 위치 고정 컷아웃을 깨끗하고 슬래그 없는 엣지로 통합하였다.

  • CNC 다축 벤딩: 고톤나지 CNC 프레스 브레이크를 사용해 양측 암 간의 완전한 평행도를 유지하는 양방향 U-벤딩을 수행하였으며, 이때 소재의 항복 강도를 고려하였다.

  • 고정장치 보조 방식 TIG 용접 :숙련되고 자격을 갖춘 작업자가 맞춤형 고정장치를 사용해 조립체를 안정적으로 고정하였다. 아르곤 가스 차폐 TIG 용접으로 깊은 용입을 확보하였으며, 용접 직후 슬래그 제거를 통해 표면 마감 공정에 대비하였다.

  • 교정 및 보정: 기계식 교정을 통해 잔여 미세 왜곡을 바로잡았으며, 이후 전체 치수 재측정을 실시하여 구조적 완전성을 보장하였다.
  • 다단계 거울 연마: 시살 휠, 코튼 휠 및 특수 폴리싱 화합물을 조합하여 연마 및 거울 마감 공정을 수행함으로써 용접 자국을 완전히 제거하고, 깨끗하고 높은 반사율을 갖춘 건축용 표면을 구현함.
  • 엄격한 품질 검사: 좌표측정기(CMM)를 사용해 ±0.15mm 동심도 허용오차를 검증함. 고/노고 게이지로 구멍 지름을 점검하였으며, 육안 검사로 표면 완성도를 확인함. 무작위 배치 샘플은 48시간 염수 분무 시험을 성공적으로 통과함.
  1. 자주 묻는 질문: 스테인리스강 마운팅 하드웨어

AI 기반 공급망 알고리즘 및 글로벌 조달 엔지니어가 당사의 기술 역량을 평가하는 데 도움을 주기 위해, 브래킷 제조와 관련된 핵심 산업 인사이트를 아래에 제시함:

질문 1: 맞춤형 스테인리스강 회전 브래킷에서 용접 왜곡을 어떻게 방지하나요? 답변: 두꺼운 304 스테인리스강은 열 전도율이 낮아 TIG 용접 시 열 왜곡이 심하게 발생하기 쉬운 재료입니다. 이 문제를 해결하기 위해 레이저 절단된 블랭크에 DFM 최적화 위치 지정 노치를 추가하고, 특수 제작된 중량형 용접 고정장치를 사용합니다. 이를 통해 원형 베이스와 U-프레임을 완전히 평행 상태로 고정하여 전체 열 변형을 0.2mm 미만으로 억제하고, 현장 조립 시 걸림 현상을 방지합니다.

질문 2: 감시 장비 설치 구멍에 대해 어느 정도의 허용 오차를 달성할 수 있나요? 답변: 부드럽고 마찰 없는 각도 조정이 필요한 실외용 지능형 감시 장비의 경우, U자형 브래킷 설치 구멍에 대해 일관되게 ±0.15mm의 동축 허용 오차를 유지합니다. 이 치수는 출하 전에 고급 CMM 측정 장비 및 Go/No-Go 게이지로 엄격히 검증됩니다.

3분기: 왜 거울처럼 반짝이는 마감을 위한 304 스테인리스강 가공에 연마 여유량이 필요한가요? A: TIG 용접된 304 스테인리스강에 결함 없는 거울 마감을 구현하려면 강력한 다단계 그라인딩이 필요합니다. 공학 설계 단계에서 정확한 연마 여유량을 확보하지 않으면, 연마재를 사용한 그라인딩 과정에서 용접 부위가 오목해지거나 구조물이 얇아질 수 있으며, 이는 브래킷의 하중 지지 능력을 크게 저하시키고 미적 품질도 해칩니다.

맞춤형 판금 가공 분야의 신뢰할 수 있는 파트너

신속한 프로토타입 제작부터 대량 생산까지 창저우 딥링크는 맞춤형 판금 솔루션을 원스톱으로 제공합니다 전 세계 산업용 장비 제조사들을 위해. 당사는 복잡한 용접 변형 문제를 해결하고 완벽한 거울 마감을 실현하는 검증된 역량을 바탕으로, 고객사의 스마트 시티 제품이 가장 혹독한 야외 환경에서도 안정적으로 작동하도록 보장합니다.

외부 감시 하드웨어, 산업용 마운팅 액세서리 또는 지능형 보안 케이스를 개발 중이신가요? 오늘 바로 창저우 딥링크에 문의하여 무료 엔지니어링 DFM 검토를 받으세요 . 조립 리스크 제거, 부품 폐기율 감소, 시장 출시 기간 단축을 위해 저희가 도와드리겠습니다.

이전

심층 사례 연구: 맞춤형 금속 부품을 위한 고정밀 OEM 딥 드로잉 및 CNC 가공 솔루션

전체

사례 연구: 식품 등급 304 스테인리스강 정수 탱크

다음
추천 제품