1.繪制彎矩圖
建立彎矩單元表。例如梁單元
i節點單元表名稱為imom,j節點單元表名稱為jmom,
ETABLE,NI,SMISC,1 !單元I點軸力
ETABLE,NJ,SMISC,7 !單元J點軸力
ETABLE,QI,SMISC,2 !單元I點剪力
ETABLE,QJ,SMISC,8 !單元J點剪力
ETABLE,MI,SMISC,6 !單元I點彎矩
ETABLE,MJ,SMISC,12 !單元J點彎矩
plls,imom,jmom
2.標注彎矩圖
PLOTCTRLS>>NUMBERING>>SVAL ON即可在畫出彎矩圖的同時在圖上標出彎矩值的大小
3.調整彎矩圖
如果彎矩圖方向錯誤,則繪制彎矩圖命令為
plls,imom,jmom,-1
同一個節點處兩邊的單元內力有細微差別,
導致內力數字標注出現重影。觀察上面整體軸力圖也可以發現,
一段一段的,好像馬賽克,其實上面整體彎矩圖也是,不過不是
很明顯罷了。這是EULER-BEONOULI梁理論以及ANSYS輸出定義造成
的(詳細原因就不展開了,看看梁理論的書和ANSYS的說明吧)。
為了修正重影和節點兩邊內力值不一樣的問題,遍制了宏文件ITFAVG.MAC
命令文件內容如下:
!---------------------------------------------------------------------
!宏:ITFAVG.MAC(INTERNAL FORCE AVERAGE MACRO)
!獲取線性單元內力,并對單元邊界處的內力進行平衡
!輸入信息
!內力類型:MFORX,MFORY,MFORZ,MMOMX,MMOMY,MMOMZ
*ASK,ITFTYPE,'PLEASE INPUT THE TYPE OF INTERNAL FORCE','MMOMY'
!需處理的單元包
*ASK,EASSEMBLY,'PLEASE INPUT THE COMPONENT NAME OF ELEMENTS TO BE PROCESSED!',
'EOUTER'
!需處理的節點包
*ASK,NASSEMBLY,'PLEASE INPUT THE COMPONENT NAME OF NODE TO BE PROCESSED!','NOU
TER'
!無需處理的節點包
*ASK,UNASSEMBLY,'PLEASE INPUT THE COMPONENT NAME OF THE UNCHANGED NODE!(NONE I
F THERE'S NO SUCH COMPONENT)','NONE'
/POST1
!輸入信息:內力類型,欲處理單元的集合,欲處理節點的集合
!ITFTYPE='MMOMY'
!EASSEMBLY='EOUTER'
!NASSEMBLY='NOUTER'
!按內力類型確定ANSYS輸出信息SMISC的編號
*IF,ITFTYPE,EQ,'MFORX',THEN
ITFINUM=1
ITFJNUM=7
*ELSEIF,ITFTYPE,EQ,'MFORY',THEN
ITFINUM=2
ITFJNUM=8
*ELSEIF,ITFTYPE,EQ,'MFORZ',THEN
ITFINUM=3
ITFJNUM=9
*ELSEIF,ITFTYPE,EQ,'MMOMX',THEN
ITFINUM=4
ITFJNUM=10
*ELSEIF,ITFTYPE,EQ,'MMOMY',THEN
ITFINUM=5
ITFJNUM=11
*ELSEIF,ITFTYPE,EQ,'MMOMZ',THEN
ITFINUM=6
ITFJNUM=12
*ELSE
*ENDIF
!對不需平均的節點進行處理
*IF,UNASSEMBLY,NE,'NONE',THEN
!選出不進行處理的節點包并獲取不進行處理節點的數目
CMSEL,S,UNASSEMBLY
*GET,UNNODNUM,NODE,0,COUNT
!定義長度為UNNODNUM的數組(UNNOD),以存放選中單元的單元編號
*DIM,UNNOD,ARRAY,UNNODNUM
!將選中單元的編號按順序存入數組UNNOD
*DO,I,0,UNNODNUM-1,1
UNNOD(I+1)=NDNEXT(I)
*ENDDO
*ELSE
UNNODNUM=0
*ENDIF
!選出所需的單元和節點包
CMSEL,S,EASSEMBLY
CMSEL,S,NASSEMBLY
!獲得當前選中單元總數(存入變量SELELENUM)
*GET,SELELENUM,ELEM,0,COUNT
!定義長度為SELELENUM的數組(ELENUM),以存放選中單元的單元編號
*DIM,ELENUM,ARRAY,SELELENUM
!將選中單元的編號按順序存入數組ELENUM
*DO,I,0,SELELENUM-1,1
ELENUM(I+1)=ELNEXT(I)
*ENDDO
!獲得當前選中節點總數(存入變量SELNODNUM)
*GET,SELNODNUM,NODE,0,COUNT
!定義長度為SELNODNUM的數組(NODNUM),以存放選中單元的單元編號
*DIM,NODNUM,ARRAY,SELNODNUM
!將選中單元的編號按順序存入數組NODNUM
*DO,I,0,SELNODNUM-1,1
NODNUM(I+1)=NDNEXT(I)
*ENDDO
!定義所需的線性單元內力ETABLE,節點I的內力存入數組ITNFI,
!節點J的內力存入數組ITNFJ
ETABLE,ITNFI,SMISC,ITFINUM
ETABLE,ITNFJ,SMISC,ITFJNUM
!定義所需的結果數組,并將其置零
ETABLE,ITNFINEO,SMISC,5
SADD,ITNFINEO,ITNFI,,1
ETABLE,ITNFJNEO,SMISC,11
SADD,ITNFJNEO,ITNFJ,,1
*DO,K,1,SELNODNUM,1
!處理不需平均的節點
INDEX=0
*IF,UNNODNUM,GE,1,THEN
*DO,J,1,UNNODNUM
*IF,NODNUM(K),EQ,UNNOD(J),THEN
INDEX=1
*ELSE
*ENDIF
*ENDDO
*ELSE
*ENDIF
*DO,J,1,SELELENUM,1
!選出和節點K相連的線性單元中,I節點(對線性單元而言)為節點K的單元編號
*IF,NELEM(ELENUM(J),1),EQ,NODNUM(K),THEN
ELEI=ELENUM(J)
*EXIT
*ELSE
*ENDIF
*ENDDO
*DO,J,1,SELELENUM,1
!選出和節點K相連的線性單元中,J節點(對線性單元而言)為節點K的單元編號
*IF,NELEM(ELENUM(J),2),EQ,NODNUM(K),THEN
ELEJ=ELENUM(J)
*EXIT
*ELSE
*ENDIF
*ENDDO
*IF,INDEX,EQ,0,THEN
*IF,ELEJ,NE,0,THEN !有可能出現ELEJ為0的情況
!取出I節點為節點K的單元的I節點端的內力放入參數ETELEI
*GET,ETELEI,ELEM,ELEI,ETAB,ITNFI
!取出J節點為節點K的單元的J節點端的內力放入參數ETELEJ
*GET,ETELEJ,ELEM,ELEJ,ETAB,ITNFJ
!平均節點K的單元的I節點端的內力和節點K的單元的J節點端的內力
ETAVE=(ETELEI+ETELEJ)/2
!將平均后的內力存入結果數組中
DETAB,ELEI,ITNFINEO,ETAVE
DETAB,ELEJ,ITNFJNEO,ETAVE
*ELSE
*ENDIF
*ELSE
*ENDIF
*ENDDO
/UDOC,1,LOGO,OFF
PLLS,ITNFINEO,ITNFJNEO
!END OF ITFAVG.MAC
(2)
對體和面來說,ANSYS默認的結果輸出格式是云圖格式,而這種彩色云圖打印為黑白圖像時對比很不明顯,無法表達清楚,對于發表文章非常不便。發文章所用的結果圖最好是等值線圖,并且最好是黑白的等值線圖。一般借用photoshop等第三方軟件,很麻煩,效果也不好。ansys本身也能實現這項功能。
1.將要輸出的結果調出,這時為彩色云圖;
2.將云圖轉換為等值線圖的形式
GUI:plotCtrls—>Device Options—>[/DEVI]中的vector mode 選為on
命令:/DEVICE,VECTOR,1
這時結果為彩色等值線,若直接輸出,打印為黑白圖像時仍然不清晰,為此需進行以下幾步將圖像轉換為黑白形式;
3. 將背景變為白色
命令:jpgprf,500,100,1
/rep
4.對等值線中的等值線符號(圖中為A,B,C等)的疏密進行調整
GUI:plotCtrls—>Style—>Contours—> Contours Labeling 在Key Vector mode contour label 中選中on every Nth elem,然后在N= 輸入框中輸入合適的數值,例如5,多試幾次,直到疏密合適
命令:/clabel,1,5
5.將彩色等值線變為黑色
GUI:plotCtrls—>Style—>Colors—>Contours Colors 將Items Numbered 1,Items Numbered 2等復選框中的顏色均選為黑色,圖像即可變為黑白等值線圖像
命令:/color,cntr,whit,1 等等
6.修改
在顯示等值線時,圖形中太多的標識字母(A、B等)使得等值線圖完全看不清楚。請問有沒有什么方法可以去掉圖形的這些標識字母呢
在plotCtrls下面的style下面的contours下面的contour Labeling,在彈出的contour labeling options里面的vector mode contour labels選off
后處理中畫出了結構的等值線圖,可否將等值線邊的字母改為相應的數值標注
/PNUM,SVAL,1
/replot
如果還想將等值線的字母去掉
/PNUM,SVAL,1
/CLABEL,1,-1
/replot
7.出圖
GUI:plotCtrls—>Capture Image
建立彎矩單元表。例如梁單元
i節點單元表名稱為imom,j節點單元表名稱為jmom,
ETABLE,NI,SMISC,1 !單元I點軸力
ETABLE,NJ,SMISC,7 !單元J點軸力
ETABLE,QI,SMISC,2 !單元I點剪力
ETABLE,QJ,SMISC,8 !單元J點剪力
ETABLE,MI,SMISC,6 !單元I點彎矩
ETABLE,MJ,SMISC,12 !單元J點彎矩
plls,imom,jmom
2.標注彎矩圖
PLOTCTRLS>>NUMBERING>>SVAL ON即可在畫出彎矩圖的同時在圖上標出彎矩值的大小
3.調整彎矩圖
如果彎矩圖方向錯誤,則繪制彎矩圖命令為
plls,imom,jmom,-1
同一個節點處兩邊的單元內力有細微差別,
導致內力數字標注出現重影。觀察上面整體軸力圖也可以發現,
一段一段的,好像馬賽克,其實上面整體彎矩圖也是,不過不是
很明顯罷了。這是EULER-BEONOULI梁理論以及ANSYS輸出定義造成
的(詳細原因就不展開了,看看梁理論的書和ANSYS的說明吧)。
為了修正重影和節點兩邊內力值不一樣的問題,遍制了宏文件ITFAVG.MAC
命令文件內容如下:
!---------------------------------------------------------------------
!宏:ITFAVG.MAC(INTERNAL FORCE AVERAGE MACRO)
!獲取線性單元內力,并對單元邊界處的內力進行平衡
!輸入信息
!內力類型:MFORX,MFORY,MFORZ,MMOMX,MMOMY,MMOMZ
*ASK,ITFTYPE,'PLEASE INPUT THE TYPE OF INTERNAL FORCE','MMOMY'
!需處理的單元包
*ASK,EASSEMBLY,'PLEASE INPUT THE COMPONENT NAME OF ELEMENTS TO BE PROCESSED!',
'EOUTER'
!需處理的節點包
*ASK,NASSEMBLY,'PLEASE INPUT THE COMPONENT NAME OF NODE TO BE PROCESSED!','NOU
TER'
!無需處理的節點包
*ASK,UNASSEMBLY,'PLEASE INPUT THE COMPONENT NAME OF THE UNCHANGED NODE!(NONE I
F THERE'S NO SUCH COMPONENT)','NONE'
/POST1
!輸入信息:內力類型,欲處理單元的集合,欲處理節點的集合
!ITFTYPE='MMOMY'
!EASSEMBLY='EOUTER'
!NASSEMBLY='NOUTER'
!按內力類型確定ANSYS輸出信息SMISC的編號
*IF,ITFTYPE,EQ,'MFORX',THEN
ITFINUM=1
ITFJNUM=7
*ELSEIF,ITFTYPE,EQ,'MFORY',THEN
ITFINUM=2
ITFJNUM=8
*ELSEIF,ITFTYPE,EQ,'MFORZ',THEN
ITFINUM=3
ITFJNUM=9
*ELSEIF,ITFTYPE,EQ,'MMOMX',THEN
ITFINUM=4
ITFJNUM=10
*ELSEIF,ITFTYPE,EQ,'MMOMY',THEN
ITFINUM=5
ITFJNUM=11
*ELSEIF,ITFTYPE,EQ,'MMOMZ',THEN
ITFINUM=6
ITFJNUM=12
*ELSE
*ENDIF
!對不需平均的節點進行處理
*IF,UNASSEMBLY,NE,'NONE',THEN
!選出不進行處理的節點包并獲取不進行處理節點的數目
CMSEL,S,UNASSEMBLY
*GET,UNNODNUM,NODE,0,COUNT
!定義長度為UNNODNUM的數組(UNNOD),以存放選中單元的單元編號
*DIM,UNNOD,ARRAY,UNNODNUM
!將選中單元的編號按順序存入數組UNNOD
*DO,I,0,UNNODNUM-1,1
UNNOD(I+1)=NDNEXT(I)
*ENDDO
*ELSE
UNNODNUM=0
*ENDIF
!選出所需的單元和節點包
CMSEL,S,EASSEMBLY
CMSEL,S,NASSEMBLY
!獲得當前選中單元總數(存入變量SELELENUM)
*GET,SELELENUM,ELEM,0,COUNT
!定義長度為SELELENUM的數組(ELENUM),以存放選中單元的單元編號
*DIM,ELENUM,ARRAY,SELELENUM
!將選中單元的編號按順序存入數組ELENUM
*DO,I,0,SELELENUM-1,1
ELENUM(I+1)=ELNEXT(I)
*ENDDO
!獲得當前選中節點總數(存入變量SELNODNUM)
*GET,SELNODNUM,NODE,0,COUNT
!定義長度為SELNODNUM的數組(NODNUM),以存放選中單元的單元編號
*DIM,NODNUM,ARRAY,SELNODNUM
!將選中單元的編號按順序存入數組NODNUM
*DO,I,0,SELNODNUM-1,1
NODNUM(I+1)=NDNEXT(I)
*ENDDO
!定義所需的線性單元內力ETABLE,節點I的內力存入數組ITNFI,
!節點J的內力存入數組ITNFJ
ETABLE,ITNFI,SMISC,ITFINUM
ETABLE,ITNFJ,SMISC,ITFJNUM
!定義所需的結果數組,并將其置零
ETABLE,ITNFINEO,SMISC,5
SADD,ITNFINEO,ITNFI,,1
ETABLE,ITNFJNEO,SMISC,11
SADD,ITNFJNEO,ITNFJ,,1
*DO,K,1,SELNODNUM,1
!處理不需平均的節點
INDEX=0
*IF,UNNODNUM,GE,1,THEN
*DO,J,1,UNNODNUM
*IF,NODNUM(K),EQ,UNNOD(J),THEN
INDEX=1
*ELSE
*ENDIF
*ENDDO
*ELSE
*ENDIF
*DO,J,1,SELELENUM,1
!選出和節點K相連的線性單元中,I節點(對線性單元而言)為節點K的單元編號
*IF,NELEM(ELENUM(J),1),EQ,NODNUM(K),THEN
ELEI=ELENUM(J)
*EXIT
*ELSE
*ENDIF
*ENDDO
*DO,J,1,SELELENUM,1
!選出和節點K相連的線性單元中,J節點(對線性單元而言)為節點K的單元編號
*IF,NELEM(ELENUM(J),2),EQ,NODNUM(K),THEN
ELEJ=ELENUM(J)
*EXIT
*ELSE
*ENDIF
*ENDDO
*IF,INDEX,EQ,0,THEN
*IF,ELEJ,NE,0,THEN !有可能出現ELEJ為0的情況
!取出I節點為節點K的單元的I節點端的內力放入參數ETELEI
*GET,ETELEI,ELEM,ELEI,ETAB,ITNFI
!取出J節點為節點K的單元的J節點端的內力放入參數ETELEJ
*GET,ETELEJ,ELEM,ELEJ,ETAB,ITNFJ
!平均節點K的單元的I節點端的內力和節點K的單元的J節點端的內力
ETAVE=(ETELEI+ETELEJ)/2
!將平均后的內力存入結果數組中
DETAB,ELEI,ITNFINEO,ETAVE
DETAB,ELEJ,ITNFJNEO,ETAVE
*ELSE
*ENDIF
*ELSE
*ENDIF
*ENDDO
/UDOC,1,LOGO,OFF
PLLS,ITNFINEO,ITNFJNEO
!END OF ITFAVG.MAC
(2)
對體和面來說,ANSYS默認的結果輸出格式是云圖格式,而這種彩色云圖打印為黑白圖像時對比很不明顯,無法表達清楚,對于發表文章非常不便。發文章所用的結果圖最好是等值線圖,并且最好是黑白的等值線圖。一般借用photoshop等第三方軟件,很麻煩,效果也不好。ansys本身也能實現這項功能。
1.將要輸出的結果調出,這時為彩色云圖;
2.將云圖轉換為等值線圖的形式
GUI:plotCtrls—>Device Options—>[/DEVI]中的vector mode 選為on
命令:/DEVICE,VECTOR,1
這時結果為彩色等值線,若直接輸出,打印為黑白圖像時仍然不清晰,為此需進行以下幾步將圖像轉換為黑白形式;
3. 將背景變為白色
命令:jpgprf,500,100,1
/rep
4.對等值線中的等值線符號(圖中為A,B,C等)的疏密進行調整
GUI:plotCtrls—>Style—>Contours—> Contours Labeling 在Key Vector mode contour label 中選中on every Nth elem,然后在N= 輸入框中輸入合適的數值,例如5,多試幾次,直到疏密合適
命令:/clabel,1,5
5.將彩色等值線變為黑色
GUI:plotCtrls—>Style—>Colors—>Contours Colors 將Items Numbered 1,Items Numbered 2等復選框中的顏色均選為黑色,圖像即可變為黑白等值線圖像
命令:/color,cntr,whit,1 等等
6.修改
在顯示等值線時,圖形中太多的標識字母(A、B等)使得等值線圖完全看不清楚。請問有沒有什么方法可以去掉圖形的這些標識字母呢
在plotCtrls下面的style下面的contours下面的contour Labeling,在彈出的contour labeling options里面的vector mode contour labels選off
后處理中畫出了結構的等值線圖,可否將等值線邊的字母改為相應的數值標注
/PNUM,SVAL,1
/replot
如果還想將等值線的字母去掉
/PNUM,SVAL,1
/CLABEL,1,-1
/replot
7.出圖
GUI:plotCtrls—>Capture Image
相關文章
- 2021-09-08BIM技術叢書Revit軟件應用系列Autodesk Revit族詳解 [
- 2021-09-08全國專業技術人員計算機應用能力考試用書 AutoCAD2004
- 2021-09-08EXCEL在工作中的應用 制表、數據處理及宏應用PDF下載
- 2021-08-30從零開始AutoCAD 2014中文版機械制圖基礎培訓教程 [李
- 2021-08-30從零開始AutoCAD 2014中文版建筑制圖基礎培訓教程 [朱
- 2021-08-30電氣CAD實例教程AutoCAD 2010中文版 [左昉 等編著] 20
- 2021-08-30電影風暴2:Maya影像實拍與三維合成攻略PDF下載
- 2021-08-30高等院校藝術設計案例教程中文版AutoCAD 建筑設計案例
- 2021-08-29環境藝術制圖AutoCAD [徐幼光 編著] 2013年PDF下載
- 2021-08-29機械AutoCAD 項目教程 第3版 [繆希偉 主編] 2012年PDF