海到尽头天作岸,山临绝顶我为峰!

[原创+共享]用sufer对flac3d计算结果进行后处理--附命令流+例子+录像

上一篇 / 下一篇  2006-05-30 20:27:18

查看( 505 ) / 评论( 20 )
在学习了版主dynamax 的《用tecplot对flac3d计算结果进行后处理》后,很受启发,鉴于Sufer也是一个比较方便的出等值线的软件,所以抛砖引玉,编制了flac3d计算结果导出到sufer可以处理的数据的命令流,这个命令流可以同时出x方向位移和y方向位移等值线图以及最大主应力和最小主应力等值线图。关于如何用sufer对flac3d计算结果进行后处理,我给出了一个简单的边坡的例子以及录像供大家学习。命令流和资料已经传到flac的共享空间中。SimWe个人空间'wL5mB-hw[0]
最后,呵呵,预祝大家端午节快乐......
DJT Nq5| a0 下面为flac3d中边坡三次开挖的位移矢量动画图 和 sufer中出的位移等值线图。
d\!R)t~3Px4i:K4?g0 ;**********************************************************SimWe个人空间Ve#y |4_ g^9K [
;---本程序是将flac3d计算的位移和应力输出为sufer的格式
tes }I*Z` o0 ;---Code by haitang 2006-05-30
9i,]BIB2L_.g#B&Z\0 ;**********************************************************SimWe个人空间jo.X+air-Mr`
newSimWe个人空间 g*leZk:c.gB
res Slope_第三步开挖后.SAV ;这里改成你要输出数据的sav文件。
}r&]-_ m0 SimWe个人空间([?3LLst
;; Initialization
(qpF^x3W7PJ0 def initializationSimWe个人空间Owu:b-n|-_0X
        IO_READ  = 0SimWe个人空间 t!b1Zvw^-QJ
        IO_WRITE = 1SimWe个人空间 KJt6EId3\5R
        IO_FISH  = 0SimWe个人空间6cW |r F
        IO_ASCII = 1SimWe个人空间0E{%\Ru_6Io*u
        Sufer_dispX= '01_Sufer_dispX.txt'
;Nm&t;y*so0         Sufer_dispY= '02_Sufer_dispY.txt'
k;HAL%V H*Z A0         Sufer_Sigma1='03_Sufer_Sigma1.txt'SimWe个人空间&j)W Ek+c1e}
        Sufer_Sigma3='04_Sufer_Sigma3.txt'SimWe个人空间*?\*N-s$l}.^
        array message(1)SimWe个人空间7ZcL0C,_V;i3\
endSimWe个人空间XFq4_4nAmj\M
initializationSimWe个人空间*q.RA{ p2t,Z:SL&q

-N9mhz5t)X$`F7F0 def writehead
;GR` K~&PU0     pnt1=zone_headSimWe个人空间6F0T1tr2V8@ca0[7Vr.d
    pnt2=gp_headSimWe个人空间Z5Q:iq3b@wVH"Zey
    Z_total=0SimWe个人空间7}B S~b's r
    P_total=0SimWe个人空间p ppl-]1jxu
    loop while pnt1 # nullSimWe个人空间D)n8T;h(K
    Z_total=Z_total+1SimWe个人空间-~vj_*]qg^H
    pnt1=z_next(pnt1)
Z%TB'D CQ t3O5_'nlKb0     endloopSimWe个人空间U)yR$Hsb_ b,Y
SimWe个人空间$}}5T/M5g9UG A
    loop while pnt2 # null
Ak'@,}M4o `0     P_total=P_total+1
Y0mvB$o:gF0     pnt2=gp_next(pnt2)
UuV'DwG ]0     endloopSimWe个人空间/G1h5Nx-p&f};u
endSimWe个人空间8Ab9S{nu{FD p
writehead
V1Q$ty;RtinK'`0 SimWe个人空间pW$HG5Zk Y
define GetZoneSigma1SimWe个人空间0O9l$YZvV(k;S(l
   Z1_p=zone_headSimWe个人空间8Tp-T5J5]bj
   loop n (1,Z_total)
z"T_-l})m#m&t0        Z1_No=z_id(Z1_p)SimWe个人空间,S$P*Y A+XTg6e
       message(1)=               string(z_xcen(Z1_p))
.`tHB/~!N [6Ii ] EYi0        message(1)=message(1)+','+string(z_ycen(Z1_p))
(_Z KBd4Z+F0        message(1)=message(1)+','+string(z_sig3(Z1_p)/1.0e6)SimWe个人空间{-H9s)w+e;x2rq
       status = write(message,1)
v:O2Tl cH0        Z1_p=z_next(Z1_p)SimWe个人空间`\ U"lz6Be9N
   endloopSimWe个人空间 pN9_4tiy,Y6o
END
tO.XBT'F0
X:Gj3|$f#o0 define GetZoneSigma3SimWe个人空间mO$H0pb\k
   Z1_p=zone_head
[ n Q&z |nU0    loop n (1,Z_total)SimWe个人空间!X7x3B5k"| fj:m8H
       Z1_No=z_id(Z1_p)SimWe个人空间,Gn(yx5H$] vI
       message(1)=               string(z_xcen(Z1_p))SimWe个人空间t:wK:rL5m;Y7k8fu
       message(1)=message(1)+','+string(z_ycen(Z1_p))SimWe个人空间5v7`Q7@q7s
       message(1)=message(1)+','+string(z_sig1(Z1_p)/1.0e6)SimWe个人空间+m)h,rF/z7L s~*iw
       status = write(message,1)
@{O%u.]#}Y$h-VA0        Z1_p=z_next(Z1_p)SimWe个人空间$W2Ku/d:M Xs
   endloop
t!xV*uS'U5d0 ENDSimWe个人空间 z`2zH,[N!g2e#R
SimWe个人空间GrR`$x g u(cH
DEFINE GetGPDispX
)s O+mE{VFu,W0     P1_p=gp_headSimWe个人空间aB4I4F#v-Il/{
    loop n (1,P_total)   
Zz8ou#Mf'^ pCs0         node_id=gp_id(p1_p)SimWe个人空间0{l6^L/{G
        message(1)=                  string(gp_xpos(P1_p))SimWe个人空间1E0S&zl @,P!F
           message(1)=message(1)+','+string(gp_ypos(P1_p))SimWe个人空间5D.m:pNc
           message(1)=message(1)+','+string(gp_xdisp(P1_p)*1000)SimWe个人空间b[ ^F%F*D o2R%?tN^
           status = write(message,1)                  
'a2~`jD7~+q0         P1_p=gp_next(P1_p)
-XYi{ L8G0      endloop
*Y[:\wJ h0 END
k?"Cp&G5d(n0
n|c9Z"~)r;N0 DEFINE GetGPDispYSimWe个人空间;]!s*a;P1{ y4e#] {,x g%m"D3x
    P1_p=gp_head
+R(|8SxWOv v0     loop n (1,P_total)    SimWe个人空间y(huwO`*?e
        node_id=gp_id(p1_p)
FC G9T u}4k:S0         message(1)=                  string(gp_xpos(P1_p))SimWe个人空间5].W5h+nHF)f `
           message(1)=message(1)+','+string(gp_ypos(P1_p))SimWe个人空间!w&A!Mu7R"V
           message(1)=message(1)+','+string(gp_ydisp(P1_p)*1000)SimWe个人空间/?)D G+n:j)V
           status = write(message,1)                  SimWe个人空间NK5Eh^
        P1_p=gp_next(P1_p)SimWe个人空间3?aK/t Q K@f
     endloop
'sz.Vk`|2ym0 END
n;P G`8s0
-a;@f&PH%d q9Zs0 ; Main Function
:Mu{Q"r+N+e4p0 def haitang
&q/R h"\ Im M0     message(1)='  \n'
wgH2{7]Nj0     message(1)=message(1)+'------------------------------------------------------------------ \n'SimWe个人空间J1I5x^#U/f [k
    message(1)=message(1)+'This is a free soft for exporting the data from Flac3d to Sufer!   \n'
tt/I r$? J0     message(1)=message(1)+'                Code by haitang 2006-05-31 于端午节 \n'
;iw9}CL:l(}?0A0     message(1)=message(1)+'------------------------------------------------------------------ \n'SimWe个人空间1Yo F1| @"|eQj3\
    message(1)=message(1)+'The Number of Nodes and Elements \n'SimWe个人空间 ~*y~ ZE1rP
    printmessage=out(message(1))SimWe个人空间.Xfe \:Hd]G8H
    printmessage=out('Z_total= '+string(Z_total)+'      P_total= '+string(P_total))         SimWe个人空间^ jb1T1i
          status = close
)drKabR,o0         status = open(Sufer_dispX,IO_WRITE,IO_ASCII)SimWe个人空间 Y7ceug
        if status = 0 thenSimWe个人空间dGV7UP5p
           GetGPDispX
N O(@ `7fVy/}0            status = closeSimWe个人空间W"Yn^.PME"r
           ii = out('Successfully Write Data Into File ' + Sufer_dispX)SimWe个人空间 S-W#dm}0G
        else
DG7Mq5A0             ii=out('Open File Error! Status = ' + string(status))                       
o^0G1V1C,@0         endif
n.\$}8G$y7kdW.l0 SimWe个人空间/V;cW|x6J5c{6V
        status = open(Sufer_dispY,IO_WRITE,IO_ASCII)SimWe个人空间8~G7po1bQ0s`
        if status = 0 thenSimWe个人空间i I#B2L,a;CK0g
           GetGPDispYSimWe个人空间-gA.[R;^*mx5y)S
           status = closeSimWe个人空间%s-YJ4t C
           ii = out('Successfully Write Data Into File ' + Sufer_dispY)SimWe个人空间4~#] tF[E
        elseSimWe个人空间 Y`-_:j8u0Z#D7D6~ CN
            ii=out('Open File Error! Status = ' + string(status))                        SimWe个人空间8cd7b5d0R{*Ez#V.R
        endif
fx/ux;Z(W AFc0 SimWe个人空间tJKHg)nV
        status = open(Sufer_Sigma1,IO_WRITE,IO_ASCII)
r"Wv7O8[6A]0         if status = 0 then
iE/H,MtJm,V0            GetZoneSigma1SimWe个人空间 O;L)D'm%yoME
           status = close
l ^9a G)|hPK0            ii = out('Successfully Write Data Into File ' + Sufer_Sigma1)SimWe个人空间Ro'?FV&Q"^[
        elseSimWe个人空间U FM6sz)Ms.@
            ii=out('Open File Error! Status = ' + string(status))                       
8FD6L{'ZY0         endifSimWe个人空间3[L:R;VgwY
SimWe个人空间3S3C$ZuNVIr8q+\
        status = open(Sufer_Sigma3,IO_WRITE,IO_ASCII)SimWe个人空间2hQ @r'u|
        if status = 0 thenSimWe个人空间C`E*]d ^wOn
           GetZoneSigma3SimWe个人空间+u'ZE+ZG:oeb`
           status = closeSimWe个人空间,vD2H2MC+Wi5{
           ii = out('Successfully Write Data Into File ' + Sufer_Sigma3)SimWe个人空间L9c't/xB
        else
1x y6b ~]~j'@1j!|0             ii=out('Open File Error! Status = ' + string(status))                       
HZJ8?A0         endif                        SimWe个人空间b;c5s2?E&?
end
5C|}9yP,W"H%Tr5?0 haitang
ovh@ E%Sm0SimWe个人空间Y3~2r)v#hg0RK
slope_disp.gifSimWe个人空间,L R1y8|"RX
SimWe个人空间i/t_\4f'y
sufer.gif

TAG:

君之枫(benjackxu)的个人空间 benjackxu 发布于2006-05-30 23:17:58
海棠兄的计算机功底深厚啊。值得加分。可惜我不是斑竹。
ZDJ38的个人空间 ZDJ38 发布于2006-05-31 13:04:57
不错,不过不用什么转化sufer也可以划出你那样的效果的,还是顶一下!
ZDJ38的个人空间 ZDJ38 发布于2006-05-31 15:43:02
对了,你这个不能考虑断面的位置,而且转化出来的数据也不知道是哪个断面的,而且我们3维的比较关心Z向应力和位移,还有剪应力,兄台如果能完善补充了,加上可随意选择断面,就更好了!
huahua2005的个人空间 huahua2005 发布于2006-05-31 16:17:39
楼主的应力是zone中心点的,位移是节点的,任意选择断面,实现起来怕是位移和应力所在的面不一致呀,否则只要限制一下y(一般说应该是y)值范围即可得到想要面中我们关心的结果值,而且我认为输出文件以.dat作后缀更好,呵呵e.simwe.com9~0Tc
n+\


;L"u,C&@(D4R"Wje.simwe.com[ 本帖最后由 huahua2005 于 2006-5-31 16:22 编辑 ]
尘埃落定 haitang 发布于2006-05-31 18:54:55
用flac3d来分析二维问题,我是将二维的面向Z方向拉一个单位长度。编制的这个命令流所以就不需要考虑断面了。如果要引申到三维模型中,可以用if语句进行坐标判断,然后只输出断面上节点单元的应力和位移。Z向应力(z_zcen(Z1_p)和位移gp_xdisp(P1_p),还有sxy,syz,sxz,以及剪应变率等等也可以考虑进去。输出文件的名字和后缀名,大家都可以随便改,呵呵。
l3I1@L c^K|Simwe.com|仿真|设计|有限元|虚拟仪器同时,问个问题。flac3d中可以显示任意剖面的云图,如以下命令流:
0}7R_*t;ZiK仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent,CFD,CAE,CAD,CAMplot set plane origin (×,×,×) normal (×,×,×) ---选定断面仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent[BZSL
pl con xdisp plane  ------------输出选定断面的位移|Simwe.com|仿真|设计|有限元|虚拟仪器7s4g_ra9\:wR:OI
如果能将这个断面上的节点和单元信息输出,然后再调用命令流对这个断面上的节点和单元进行循环,不就可以了。可是通过expgrid输出再打开,仍然是整个模型单元节点信息,大家想想有什么办法!仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent,CFD,CAE,CAD,CAM![iY.j(j

8M;X!r[
U0VU3_f:i仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent,CFD,CAE,CAD,CAM
[ 本帖最后由 haitang 于 2006-5-31 19:03 编辑 ]
一面湖水 lakewater 发布于2006-06-01 22:21:45
加分鼓励!SimWe个人空间0q2u9_+Zyc{
同时建议将命令流文件打包上传。
lichengzhu7发布于2006-06-03 01:37:43
问一下楼主的flac3d的版本,我的怎么运行不了呢
尘埃落定 haitang 发布于2006-06-14 12:08:08
以上的代码在任何版本的flac3d都可以执行啊。可能是sav模型的版本高一些(2.42),大家可以换个自己建的模型试验一下。
&LsaS|,bq|Simwe.com|仿真|设计|有限元|虚拟仪器近日在学习TECPLOT,发现切剖面的功能真是太强大了。不过sufer作二维的后处理还是很好的。呵呵。
wolf2005发布于2006-06-14 16:42:58
楼主,我觉得
8G8y-t2X
H,f8@/S}
plot set plane origin (×,×,×) normal (×,×,×) ---选定断面仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent,CFD,CAE,CAD,CAM O&rE"h `(XB        F9Z
pl con xdisp plane  ------------输出选定断面的位移
v_]0a3a*J4O
f^"QSimWe个人空间
这两句只是把断面显示在屏幕上,并不具有选定该断面并对其进行控制的功能,因此程序仍然要对整个模型的单元或节点进行循环}W}PD8M        }n
所以我觉得
j~#Y_P5Le.simwe.com“如果要引申到三维模型中,可以用if语句进行坐标判断,然后只输出断面上节点单元的应力和位移”可行,但是不知道如何根据坐标获得单元或节点号。
wolf2005发布于2006-06-14 21:00:16
还请教楼主一个问题,我用楼主的程序将一个2D模型的结果导了出来,但生成的等值线是在一张矩形图里,没有边坡的轮廓,是不是要在surfer中自己画出边坡的轮廓啊?
尘埃落定 haitang 发布于2006-06-15 12:17:01
鉴于wolf2005 的问题。可以这么解释。
[_3X4g3aKw
Ue.simwe.com
plot set plane origin (×,×,×) normal (×,×,×) ---选定断面|Simwe.com|仿真|设计|有限元|虚拟仪器 t#h%mm4_*w'yLi
pl con xdisp plane  ------------输出选定断面的位移e.simwe.com"m ~7M-_\7F1b
可以将与这个断面上最接近的单元信息输出(expgrid),存为一个断面的模型。然后再重新调用命令流对这个断面上的节点和单元进行循环,就可以了。SimWe个人空间+r AgM,al*bV2~$F4t
sufer的边框文件的格式如下:------------很容易的。SimWe个人空间a.dkL*{,~"]#U
由离散的XYZ数据文件生成网格文件时,Surfer将根据原始X,Y的取值范围和所选用的数学模型,自动生成一个矩形网格。但在实际工作中,由于某些区域缺少原始数据或由于其它原因,有必要由规则的网格中剔除一个或多个由封闭多边形定义的区域,被剔除的区域形成空白。在画图时, 等值线图上空白部分的等值线被消除掉;在线网图上, 空白部分成为平行于基点平面的区域。
7s7A(\2i
Jys7re.simwe.com
空白区域由空白文件定义,一个空白文件可以定义一个或几个空白区域。
7Y7o`6|0J9r仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,FluentGolden Software Blanking [.BLN]:包含面、线、点信息的ASCII码文件。
,U
@9x1a:bX/s        w(SI's:w仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent
格式如下:
!Ud$q4h `3Ilength,flag "Pname 1"
;Z? w7}#I,TS仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluentx1,y1
7k:n6Wk t%W#ge.simwe.comx2,y2
)g
Y0i;eAB2}|Simwe.com|仿真|设计|有限元|虚拟仪器
...
t,ps$XDxe.simwe.comxn,yn
R2f,Vj7T!|仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluentlength,flag "Pname 2"

uu.}!d&[,X2c|Simwe.com|仿真|设计|有限元|虚拟仪器
x1,y1
A4B+}0@GL%o|Simwe.com|仿真|设计|有限元|虚拟仪器x2,y2
%a4A7T&PN9X`0W i+M$ne.simwe.com...#ost\r:}y
xn,yn
+p}2{K l*T6V-\ o*zZ|Simwe.com|仿真|设计|有限元|虚拟仪器[.BLN]为多段文件,每段一个实体(点、线、面)。每段文件由A,B两列数据组成,首行为标志行,标志行A列值为1时,为点数据,大于1为线数据,大于3为线或多边形数据。标志行B列值为1时,表示多边形内部的区域被空白;标志行B列值为0时,表示多边形外部的区域被空白。由第2行开始依次为各顶点的X,Y坐标。每段第二行与最后一行的X,Y坐标相等时,为封闭多边形。
yj110发布于2006-07-10 21:18:18
楼主厉害啊!好东东,顶一下,我在FLAC共享里没有找到命令流,不知道楼主能否给我发一个,我的邮箱是yj0401104@163.com,不胜感激!!
lxrswf发布于2006-07-11 18:13:38
很好啊,但不知楼主有没有surfer处理flac2d结果的转换程序呢?
绿竹无痕发布于2006-11-24 20:23:24
实际上这个程序应该是针对对Flac2d,surfer应该只能做二维的等值线图。对于flac3d的,surfer只能绘制出某一个面的等值线。由于flac3d中的zone的中心点不是有规律的,所以在surfer中绘制等值线可能还要用到插值的方法。
fushouyin的个人空间 fushouyin 发布于2006-11-28 10:38:50
haitang (海棠)提出的将断面上的节点和单元信息输出,我觉得可以这样实现|Simwe.com|仿真|设计|有限元|虚拟仪器I&TZH"t
set logfile a.log

_ o,U^:Kh:_A-CSimWe个人空间
set log on
TafI7U%i5o be.simwe.comprint range plane origin (×,×,×) normal (×,×,×) ;---选定断面
W%z
M1b+|c仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent,CFD,CAE,CAD,CAM
print gp position   ;-------------gp坐标
rK
W1]sD;c*]SimWe个人空间
print gp disp         ;-------------gp位移
b0d(T
TV`"\
print zone gp        ;-------------zone的gp信息仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent0H g/U1j-O&f ~5_        n
打开a.log就可以得到这些信息
君之枫(benjackxu)的个人空间 benjackxu 发布于2006-11-28 11:20:34
fushouyin 的办法可行,不过我觉得还应该改进一下。仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent!m6K6pe6P7B0h
print range plane origin (×,×,×) normal (×,×,×) dist value;---是否该对选定的断面加个容差?FLAC3D中切片的时候,这个面是取周围与该面最接近的点的值吗?还是对最近的两点进行线性插值得到的?因为我看切面的网格有些奇怪,我怀疑是取与该面最近的点组成的一个面,是折线形的面,然后用平面表示罢了。如果是这样,这个dist value容差倒是不用加。
君之枫(benjackxu)的个人空间 benjackxu 发布于2006-12-06 10:41:26

QUOTE:

原帖由 haitang 于 2006-6-15 12:17 发表|Simwe.com|仿真|设计|有限元|虚拟仪器Y!L_ lt
鉴于wolf2005 的问题。可以这么解释。SimWe个人空间2Z Xg9a!i3i0k
plot set plane origin (×,×,×) normal (×,×,×) ---选定断面
2KN9TR;uZnJ.Kl7HSimWe个人空间pl con xdisp plane  ------------输出选定断面的位移?$} g]/}3]Ik
可以将与这个断面上最接近的 ...
|Simwe.com|仿真|设计|有限元|虚拟仪器{9X,qOS@%p:~[

d f e%ls|.t4?e.simwe.com海棠这个方法似乎不行,expgrid是模型全部的网格点信息。e.simwe.com6T%q;[+{g3x6`,U
还不如用e.simwe.comOsK0PFNr8_Z3nu
set log onSimWe个人空间`V#|OD;D
pri gp xdisp ran plane nor () ori () dist (value)的办法好仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent,CFD,CAE,CAD,CAM(ge/b%{&g\*O7MX"}
关键是这个value容差不好确定,容差如果等于离面最近的点到该面的垂直距离,那么网格不均匀,这个值就很难选定了。
6W9DS G&sp ]0N6g仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent这个难题的关键是在于如何先选定一个面,这个在FLAC3D中我找了老半天也没有找到办法
dubing222发布于2007-12-13 16:52:00
好帖必顶
haohaodangdang发布于2008-11-03 15:20:58
niuXXX
slyang206发布于2008-11-16 00:29:36

我来说两句

(可选)

日历

« 2009-01-08  
    123
45678910
11121314151617
18192021222324
25262728293031

数据统计

  • 访问量: 2400
  • 日志数: 7
  • 图片数: 1
  • 文件数: 1
  • 建立时间: 2006-06-09
  • 更新时间: 2007-02-03

RSS订阅

Open Toolbar