摘要:公差分析軟件、尺寸鏈計算、尺寸公差分析、公差仿真分析、尺寸工程、尺寸鏈校核
在上期內容中,我們對DTAS Python腳本自動化建模-專治建模界的 "二高" 問題(高重復、高耗時)進行了深入探討。DTAS可以自由編寫Python腳本,開發(fā)自己特定場景的虛擬裝配與虛擬測量 ,成功將用戶從繁瑣的重復建模中解放出來,不僅大幅提升了建模效率,還讓腳本能夠重復利用,真正實現(xiàn)了建模的自動化與智能化。
而本期,我們將繼續(xù)深入探索DTAS Python腳本的——自定義測量功能,看看它是如何為復雜應用場景提供定制化解決方案的。
Python腳本應用場景舉例
場景舉例
如圖所示:6塊馬蹄狀的零件通過兩孔銷裝到綠色圓盤,6塊馬蹄狀內表面圍成的最小圓的直徑是如何變化的?軟件中是沒有此類型測量,DTAS軟件可以通過編寫腳本來實現(xiàn)此場景下的測量。
軟件操作
準備好了嗎?讓我們開始這段自動化測量的探索之旅,一起解鎖DTAS 3D公差仿真分析的新技能吧!
點擊鏈接:Python腳本自動化自定義測量/Python腳本自動化自定義測量
案例腳本
如下:
# DTAS Soft # zjy 20241104 # Function:求xy平面上24個點算出的最大外接圓半徑及x,y坐標 # # 獲取24個點的坐標參數 p1 = [features[0][0], features[0][1], features[0][2]] p2 = [features[1][0], features[1][1], features[1][2]] p3 = [features[2][0], features[2][1], features[2][2]] p4 = [features[3][0], features[3][1], features[3][2]] p5 = [features[4][0], features[4][1], features[4][2]] p6 = [features[5][0], features[5][1], features[5][2]] p7 = [features[6][0], features[6][1], features[6][2]] p8 = [features[7][0], features[7][1], features[7][2]] p9 = [features[8][0], features[8][1], features[8][2]] p10 = [features[9][0], features[9][1], features[9][2]] p11 = [features[10][0], features[10][1], features[10][2]] p12 = [features[11][0], features[11][1], features[11][2]] p13 = [features[12][0], features[12][1], features[12][2]] p14 = [features[13][0], features[13][1], features[13][2]] p15 = [features[14][0], features[14][1], features[14][2]] p16 = [features[15][0], features[15][1], features[15][2]] p17 = [features[16][0], features[16][1], features[16][2]] p18 = [features[17][0], features[17][1], features[17][2]] p19 = [features[18][0], features[18][1], features[18][2]] p20 = [features[19][0], features[19][1], features[19][2]] p21 = [features[20][0], features[20][1], features[20][2]] p22 = [features[21][0], features[21][1], features[21][2]] p23 = [features[22][0], features[22][1], features[22][2]] p24 = [features[23][0], features[23][1], features[23][2]] # 求24個點在xy平面上的投影點 facePos1 = [1,0,0] facePos2 = [0,1,0] facePos3 = [1,1,0] p1Pos = PointProjectionOntoThePlane(p1,facePos1,facePos2,facePos3) p2Pos = PointProjectionOntoThePlane(p2,facePos1,facePos2,facePos3) p3Pos = PointProjectionOntoThePlane(p3,facePos1,facePos2,facePos3) p4Pos = PointProjectionOntoThePlane(p4,facePos1,facePos2,facePos3) p5Pos = PointProjectionOntoThePlane(p5,facePos1,facePos2,facePos3) p6Pos = PointProjectionOntoThePlane(p6,facePos1,facePos2,facePos3) p7Pos = PointProjectionOntoThePlane(p7,facePos1,facePos2,facePos3) p8Pos = PointProjectionOntoThePlane(p8,facePos1,facePos2,facePos3) p9Pos = PointProjectionOntoThePlane(p9,facePos1,facePos2,facePos3) p10Pos = PointProjectionOntoThePlane(p10,facePos1,facePos2,facePos3) p11Pos = PointProjectionOntoThePlane(p11,facePos1,facePos2,facePos3) p12Pos = PointProjectionOntoThePlane(p12,facePos1,facePos2,facePos3) p13Pos = PointProjectionOntoThePlane(p13,facePos1,facePos2,facePos3) p14Pos = PointProjectionOntoThePlane(p14,facePos1,facePos2,facePos3) p15Pos = PointProjectionOntoThePlane(p15,facePos1,facePos2,facePos3) p16Pos = PointProjectionOntoThePlane(p16,facePos1,facePos2,facePos3) p17Pos = PointProjectionOntoThePlane(p17,facePos1,facePos2,facePos3) p18Pos = PointProjectionOntoThePlane(p18,facePos1,facePos2,facePos3) p19Pos = PointProjectionOntoThePlane(p19,facePos1,facePos2,facePos3) p20Pos = PointProjectionOntoThePlane(p20,facePos1,facePos2,facePos3) p21Pos = PointProjectionOntoThePlane(p21,facePos1,facePos2,facePos3) p22Pos = PointProjectionOntoThePlane(p22,facePos1,facePos2,facePos3) p23Pos = PointProjectionOntoThePlane(p23,facePos1,facePos2,facePos3) p24Pos = PointProjectionOntoThePlane(p24,facePos1,facePos2,facePos3) # 求xy平面上24個點算出的最大內接圓半徑及x,y坐標 listPos = [p1Pos[0],p1Pos[1],p2Pos[0],p2Pos[1],p3Pos[0],p3Pos[1],p4Pos[0],p4Pos[1],\ p5Pos[0],p5Pos[1],p6Pos[0],p6Pos[1],p7Pos[0],p7Pos[1],p8Pos[0],p8Pos[1] ,\ p9Pos[0],p9Pos[1],p10Pos[0],p10Pos[1],p11Pos[0],p11Pos[1],p12Pos[0],p12Pos[1],\ p13Pos[0],p13Pos[1],p14Pos[0],p14Pos[1],p15Pos[0],p15Pos[1],p16Pos[0],p16Pos[1],\ p17Pos[0],p17Pos[1],p18Pos[0],p18Pos[1],p19Pos[0],p19Pos[1],p20Pos[0],p20Pos[1],\ p21Pos[0],p21Pos[1],p22Pos[0],p22Pos[1],p23Pos[0],p23Pos[1],p24Pos[0],p24Pos[1]] # 0:半徑; 1: x; 2:y #dtas底層函數FittingMaxCircleIn-最大內接圓 res = FittingMaxCircleIn(listPos) SetHolePinCenter('monitor', DTASPoint(res[1],res[2], 30),False) SetHolePinDiameter('monitor', 2*res[0],False) measureValue = 2*res[0] # end
總結
DTAS創(chuàng)造性的將CAE腳本自動化技術、二次開發(fā)等引入CAT領域
1.開放底層API、支持宏錄制、編寫Python腳本,將用戶從繁瑣重復的建模中解放,使用腳本自動化技術可以提高建模效率,并且腳本等可以重復使用;
2.支持用戶開發(fā)自定義的公差分析模型如虛擬裝配虛擬測量等,大大增強了軟件面對復雜應用場景的拓展性與中高級、專家及用戶使用軟件的自由性;
3.構建軟件用戶生態(tài)、公差自動化智能化分析的前提。
下期我們介紹第三個場景的應用,敬請期待!