一種基于表格的線束導(dǎo)線長度計(jì)算方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種導(dǎo)線長度計(jì)算方法,特別是一種基于表格的線束導(dǎo)線長度計(jì)算方法。
【背景技術(shù)】
[0002]在現(xiàn)代汽車上,汽車線束特別多,電子控制系統(tǒng)與線束有著密切關(guān)系。有人曾經(jīng)打了一個(gè)形象的比喻:如果把微機(jī)、傳感器與執(zhí)行元件的功能用人體來比喻,可以說微機(jī)相當(dāng)于人腦,傳感器相當(dāng)于感覺器官,執(zhí)行元件相當(dāng)于運(yùn)動(dòng)器官,那么線束就是神經(jīng)和血管了。汽車線束是汽車電路的網(wǎng)絡(luò)主體,連接汽車的電氣電子部件并使之發(fā)揮功能,沒有線束也就不存在汽車電路。在目前,不管是高級豪華汽車還是經(jīng)濟(jì)型普通汽車,線束編成的形式基本上是一樣的,都是由電線、聯(lián)插件和包裹膠帶組成,它既要確保傳送電信號,也要保證連接電路的可靠性,向電子電氣部件供應(yīng)規(guī)定的電流值,防止對周圍電路的電磁干擾,并要排除電器短路。
[0003]線束導(dǎo)線的線號長度計(jì)算的時(shí)候,傳統(tǒng)的方式是采用人工手動(dòng)計(jì)算,但是當(dāng)線束長度較長,節(jié)點(diǎn)較多并且線號很多的時(shí)候,人工計(jì)算就需要耗費(fèi)大量的人力,并且很容易出錯(cuò)。目前也有一些專業(yè)的線束計(jì)算軟件,但是對線束圖紙格式要求嚴(yán)格,需要將普通圖紙轉(zhuǎn)化為專用格式才能使用,轉(zhuǎn)化過程需要花費(fèi)大量的時(shí)間,同時(shí)各家圖紙不同,轉(zhuǎn)化困難。
【發(fā)明內(nèi)容】
[0004]本發(fā)明所要解決的技術(shù)問題是提供一種計(jì)算方便快捷的基于表格的線束導(dǎo)線長度計(jì)算方法。
[0005]為解決上述技術(shù)問題,本發(fā)明所采用的技術(shù)方案是:
一種基于表格的線束導(dǎo)線長度計(jì)算方法,其特征在于:將線束的各節(jié)點(diǎn)之間長度錄入線段長度表,根據(jù)輸入的線號從線號的起點(diǎn)開始遞歸尋找路徑直到查找到線號的終點(diǎn),當(dāng)遞歸到表格頂端查找不到終點(diǎn)的時(shí)候,則返回表格底端繼續(xù)查找,將遞歸查找過程中的各段長度記錄并進(jìn)行相加,得出需要線號的導(dǎo)線長度。
[0006]進(jìn)一步地,所述基于表格的線束導(dǎo)線長度計(jì)算方法采用表格宏命令完成。
[0007]進(jìn)一步地,所述表格宏命令包含工作表界面調(diào)用函數(shù)、計(jì)算路徑函數(shù)定義、處理沒找到終點(diǎn)情況函數(shù)定義、計(jì)算長度函數(shù)定義、返回函數(shù)結(jié)果、遞歸尋找路徑、構(gòu)造遞歸用字典、分叉尋找。
[0008]本發(fā)明與現(xiàn)有技術(shù)相比,具有以下優(yōu)點(diǎn)和效果:
1、操作簡單,只需要將圖紙各節(jié)點(diǎn)和長度信息進(jìn)行簡單的表格錄入,就能夠自動(dòng)進(jìn)行計(jì)算,無需依賴圖紙,對圖紙格式?jīng)]有要求;
2、通過表格的宏命令的自動(dòng)計(jì)算,計(jì)算方便并且計(jì)算準(zhǔn)確率高。
【附圖說明】
[0009]圖1是本發(fā)明的一種基于表格的線束導(dǎo)線長度計(jì)算方法的實(shí)施例示意圖。
【具體實(shí)施方式】
[0010]下面結(jié)合附圖并通過實(shí)施例對本發(fā)明作進(jìn)一步的詳細(xì)說明,以下實(shí)施例是對本發(fā)明的解釋而本發(fā)明并不局限于以下實(shí)施例。
[0011]本發(fā)明的一種基于表格的線束導(dǎo)線長度計(jì)算方法,將線束的各節(jié)點(diǎn)之間長度錄入線段長度表,根據(jù)輸入的線號從線號的起點(diǎn)開始遞歸尋找路徑直到查找到線號的終點(diǎn),當(dāng)遞歸到表格頂端查找不到終點(diǎn)的時(shí)候,則返回表格底端繼續(xù)查找,將遞歸查找過程中的各段長度記錄并進(jìn)行相加,得出需要線號的導(dǎo)線長度。
[0012]基于表格的線束導(dǎo)線長度計(jì)算方法采用表格宏命令完成。表格宏命令包含工作表界面調(diào)用函數(shù)、計(jì)算路徑函數(shù)定義、處理沒找到終點(diǎn)情況函數(shù)定義、計(jì)算長度函數(shù)定義、返回函數(shù)結(jié)果、遞歸尋找路徑、構(gòu)造遞歸用字典、分叉尋找。
[0013]計(jì)算路徑函數(shù)代碼為: arr = LinesPoints
For i = LBound (arr) To UBound (arr)
If Not die (arr (i,I)) Like 〃*〃 & SIGN—START & arr(i, 2) & SIGN—
END & Then
die (arr(i,I)) = die (arr(i,I)) & SIGN—DELIMITER & SIGN—START & arr(i, 2) & SIGN—ENDEnd If
If Not die (arr (i,2)) Like "*〃 & arr(i, I) & SIGN—END & "*〃
Then
die (arr (i,2)) = die (arr(i,2)) & SIGN—DELIMITER & SIGN—START & arr(i, I) & SIGN—ENDEnd IfNext i
arrResult (I, I) = Road (FromA, ToBj die,F(xiàn)alse)
’處理沒找到的情況
If Len (arrResult (I, I)) > O And Right (arrResult (I, 1),I)= 〃 —"Then arrResult(1, I)= 〃〃
計(jì)算長度函數(shù)代碼為:
If Len(arrResult(I, I)) > O Thendie.RemoveAllarrLength = LinesLengthFor i = LBound (arr) To UBound (arr)
die (arr (i,2) & 〃一〃 & arr (i, I)) = arrLength (i,I) die (arr (i,I) & 〃一〃 & arr (i, 2)) = arrLength (i,I)
Next i
arrPathPoints = VBA.Split (arrResult (I, 1),〃一〃)For i = LBound (arrPathPoints) To UBound (arrPathPoints) -1
dblLength = dblLength + die (arrPathPoints (i) & 〃一〃 &
arrPathPoints(i +1))
Next i
arrResult(2, I) = dblLength
Else
arrResult (2, I) = OEnd IfEnd If構(gòu)造遞歸用字典:
Set die = New Dict1nary
For Each vDicKey In dicChild
If Not (vDicKey = FromA) Then vDicItem = dicChild(vDicKey)
vDicItem = VBA.Replace(vDicItem, SIGN—DELIMITER & SIGN—START & FromA & SIGN—END,
If Len(vDicItem) > O Then die.Add vDicKey, vDicItemEnd IfNext vDicKey
分叉查找
vArr = VBA-Split(MicKdicChilcKFromA)j 2),SIGN—DELIMITER)
For i = LBound (vArr) To UBound (vArr)
VArrElement = vArr (i)
VArrElement = VBA.Replace(vArrElement, SIGN—START,〃〃)
VArrElement = VBA.Replace (vArrElement, SIGN—END,〃〃)
If VArrElement = ToB Then ’ 找到Road = FromA & " — " & ToBbStop = TrueExit For
Else
arrConPoints = VBA.Split (Mid (dicChild(vArrElement), 2),SIGN—DELIMITER) ’取得節(jié)點(diǎn)的相關(guān)節(jié)點(diǎn)
If IsArray(arrConPoints) Then
If UBound (arrConPoints) = LBound(arrConPoints) Then
’斷路
ElseIf UBound(arrConPoints) > LBound(arrConPoints)
Then ’遞歸
If Not bStop Then Road = FromA & " — " &
Road (vArrElement, ToBj die,bStop)End IfEnd IfEnd If
If bStop Then Exit ForNext iEnd IfEnd Funct1n
實(shí)施例:如圖所示,表一是線束圖紙中各節(jié)點(diǎn)之間尺寸列表,表二是線號的起點(diǎn)和終點(diǎn)列表,當(dāng)需要計(jì)算線號I的長度的時(shí)候,首先從表二中查詢得到線號I起點(diǎn)為B,終點(diǎn)為A,從表一中B點(diǎn)開始用遞歸進(jìn)行查詢,直到查詢到A點(diǎn)為止,當(dāng)查詢到表一頂端沒有查找到A點(diǎn)的時(shí)候,返回表一底端繼續(xù)遞歸查詢直至查詢到A點(diǎn)。記錄下從B點(diǎn)到A點(diǎn)之間各段的尺寸并將各段尺寸相加,從而得到線號I的長度。
[0014]本說明書中所描述的以上內(nèi)容僅僅是對本發(fā)明所作的舉例說明。本發(fā)明所屬技術(shù)領(lǐng)域的技術(shù)人員可以對所描述的具體實(shí)施例做各種各樣的修改或補(bǔ)充或采用類似的方式替代,只要不偏離本發(fā)明說明書的內(nèi)容或者超越本權(quán)利要求書所定義的范圍,均應(yīng)屬于本發(fā)明的保護(hù)范圍。
【主權(quán)項(xiàng)】
1.一種基于表格的線束導(dǎo)線長度計(jì)算方法,其特征在于:將線束的各節(jié)點(diǎn)之間長度錄入線段長度表,根據(jù)輸入的線號從線號的起點(diǎn)開始遞歸尋找路徑直到查找到線號的終點(diǎn),當(dāng)遞歸到表格頂端查找不到終點(diǎn)的時(shí)候,則返回表格底端繼續(xù)查找,將遞歸查找過程中的各段長度記錄并進(jìn)行相加,得出需要線號的導(dǎo)線長度。2.按照權(quán)利要求1所述的基于表格的線束導(dǎo)線長度計(jì)算方法,其特征在于:所述基于表格的線束導(dǎo)線長度計(jì)算方法采用表格宏命令完成。3.按照權(quán)利要求2所述的基于表格的線束導(dǎo)線長度計(jì)算方法,其特征在于:所述表格宏命令包含工作表界面調(diào)用函數(shù)、計(jì)算路徑函數(shù)定義、處理沒找到終點(diǎn)情況函數(shù)定義、計(jì)算長度函數(shù)定義、返回函數(shù)結(jié)果、遞歸尋找路徑、構(gòu)造遞歸用字典、分叉尋找。
【專利摘要】本發(fā)明公開了一種基于表格的線束導(dǎo)線長度計(jì)算方法,將線束的各節(jié)點(diǎn)之間長度錄入線段長度表,根據(jù)輸入的線號從線號的起點(diǎn)開始遞歸尋找路徑直到查找到線號的終點(diǎn),當(dāng)遞歸到表格頂端查找不到終點(diǎn)的時(shí)候,則返回表格底端繼續(xù)查找,將遞歸查找過程中的各段長度記錄并進(jìn)行相加,得出需要線號的導(dǎo)線長度。本發(fā)明操作簡單,只需要將圖紙各節(jié)點(diǎn)和長度信息進(jìn)行簡單的表格錄入,就能夠自動(dòng)進(jìn)行計(jì)算,無需依賴圖紙,對圖紙格式?jīng)]有要求,通過表格的宏命令的自動(dòng)計(jì)算,計(jì)算方便并且計(jì)算準(zhǔn)確率高。
【IPC分類】G06F9/44, G06F17/50
【公開號】CN105138792
【申請?zhí)枴緾N201510572911
【發(fā)明人】李鎖, 李曉波
【申請人】南通友星線束有限公司
【公開日】2015年12月9日
【申請日】2015年9月10日