2006年12月30日星期六

参加了第一届全国土木工程结构试验与检测技术暨结构试验课教学研讨会

匆忙一行,参加了第一届全国土木工程结构试验与检测技术暨结构试验课教学研讨会,会上,几位院士(陈肇元院士,范立础院士,周锡元院士)均作了精彩的演讲。
几个发现:
第一:现在大型试验越来越多(因为大项目都很多),各大高校都参与进来了。我们所在的科研团队也参与了广州珠江新城中几个地标建筑中的试验:广东省博物馆大型桁架结构及节点试验研究,广州歌剧院复杂铸钢空间节点研究,广州西塔斜柱节点试验。同时也参与了部分工程的现场监控。可惜这次时间太紧,没有来得及上去作下报告。
第二:现在大型结构试验机越来越先进,从原来的单纯长柱压力机,发展到压力机+空间节点试验机的体系,清华大学,北京工业大学,同济大学都完成了1000-2000吨的这种大型试验机。振动台研究技术的进步,从原来的单向,双向,发展到现在的多子台阵,多点输入,甚至是国外的足尺小高层的振动台试验。
第三:试验研究正在得到重视,从国家,甲方到学校,都有了更统一的认识。真的,结构、材料都是这么复杂,试验是检验真理的唯一标准。数值模拟要作,试验更要做。
………………

非常全的武侠小说集

http://bbs.pdafans.com/thread-122272-5-1.html

有时候用PDA看看书,现在发现没有时间自己去鉴别了,要是有人推荐多的书就偶尔翻翻看,PDAFANS倒是个不错的地方,这个帖子给出了非常非常多的武侠作家的小说,虽然许多作家的作品真是够烂,但也发现了一些以前想看的书,无聊的时候可以解下闷,比如出差等机什么的。

2006年12月26日星期二

尺规作图

初中的时候尺规作图水平比现在要高的多,觉得那个时候头脑比较有灵性,而现在更多的是没有创意的工作。

所以,当highflybird兄提醒了mjtd的计算几何算法版之后,到mjtd解了几个题目,觉得算是动了一下脑筋

http://www.mjtd.com/BBS/dispbbs.asp?boardID=37&ID=52163&star=2&page=

http://www.mjtd.com/BBS/dispbbs.asp?boardID=37&ID=52733&star=2&page=

http://www.mjtd.com/BBS/dispbbs.asp?boardID=37&ID=52643&star=2&page=

http://www.mjtd.com/BBS/dispbbs.asp?boardID=37&ID=56694&page=1

其实尺规作图在现阶段更多的是头脑放松,笛卡儿的解析几何以及现在的各种约束方程解法可以使得绘图更加规范化,但同时也失去了一些乐趣。

2006年12月20日星期三

这个r14版的显示和隐藏lisp做的挺好的


;;;---------------------------------------------------------------------------;
;;;
;;; BLANK.LSP Version 1.0
;;;
;;; Copyright (C) 1995 by Autodesk, Inc.
;;;
;;; Permission to use, copy, modify, and distribute this software and its
;;; documentation for any purpose and without fee is hereby granted.
;;;
;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.
;;; ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF
;;; MERCHANTABILITY ARE HEREBY DISCLAIMED.
;;;
;;;---------------------------------------------------------------------------;
;;; BLANK, UNBLANK, and UNBLANKALL
;;;
;;; This module provides functions to manipulate the visibility field of
;;; AutoCAD objects. BLANK will make a selection set of objects invisible.
;;; UNBLANK will make a specified object (given its handle) visible.
;;; UNBLANKALL will make all blanked entities visible.
;;;
;;;---------------------------------------------------------------------------;


;;;---------------------------------------------------------------------------;
;;; Internal error handling.
;;;---------------------------------------------------------------------------;
(defun blank_error(s)
;; The strings in the following statements can be translated.
(if (/= s ;|MSG1|;"Function cancelled")
(princ (strcat ;|MSG2|;"\nBLANK Error: " s))
)
(setq *error* olderr)
(princ)
)

(defun unblank_error(s)
;; The strings in the following statements can be translated.
(if (/= s ;|MSG3|;"Function cancelled")
(princ (strcat ;|MSG3|;"\nUNBLANK Error: " s))
)
(setq *error* olderr)
(princ)
)

(defun blank60 (e / e2)
(if (not (null (assoc '60 e)))
(setq e2 (subst '(60 . 1) '(60 . 0) e))
(setq e2 (append e '((60 . 1))))
)
)

(defun show60 (e / e2)
(if (not (null (assoc '60 e)))
(setq e2 (subst '(60 . 0) '(60 . 1) e))
(setq e2 (append e '((60 . 0))))
)
)

(defun setvis ( vis ename / e)
(setq e (entget ename))
(if (eq vis 0)
(entmod (show60 e))
(entmod (blank60 e))
)
(entupd ename)
;; Blank vertices of polyline, if necessary
(if (eq (cdr (nth 1 e)) "POLYLINE")
(progn
(setq ename (entnext ename))
(setq e (entget ename))
(while (eq (cdr (nth 1 e)) "VERTEX")
(if (eq vis 0)
(entmod (show60 e))
(entmod (blank60 e))
)
(entupd ename)
(setq ename (entnext ename))
(setq e (entget ename))
) ; while
) ; progn
) ; if polyline
(if (and (eq (cdr (nth 1 e)) "INSERT")
(assoc '66 e))
(progn
(setq ename (entnext ename))
(setq e (entget ename))
(while (eq (cdr (nth 1 e)) "ATTRIB")
(if (eq vis 0)
(entmod (show60 e))
(entmod (blank60 e))
)
(entupd ename)
(setq ename (entnext ename))
(setq e (entget ename))
) ; while
) ; progn
)
)

(defun c:bv ( ) ;;; / olderr echo ss i ename )
(setq olderr *error* ; Redefine error handler.
echo (getvar ;|MSG0|;"cmdecho")
*error* blank_error)
(setvar ;|MSG0|;"cmdecho" 0) ; Turn off cmdecho sysvar
(command ;|MSG0|;"_.undo" ;|MSG0|;"_group")

(setq ss (ssget))
(setq i 0)
(while (< i (sslength ss)) (progn
(setq ename (ssname ss i))
(setvis 1 ename)
(setq i (1+ i))
))

(setq *error* old_error) ; restore error function
(command ;|MSG0|;"_.undo" ;|MSG0|;"_end")
(setvar ;|MSG0|;"cmdecho" echo) ; restore cmdecho sysvar
(princ) ; Quiet exit.
)

(defun c:bvv ( ) ;;; / olderr echo ss i ename )
(setq olderr *error* ; Redefine error handler.
echo (getvar ;|MSG0|;"cmdecho")
*error* unblank_error)
(setvar ;|MSG0|;"cmdecho" 0) ; Turn off cmdecho sysvar
(command ;|MSG0|;"_.undo" ;|MSG0|;"_group")

;; Select all blanked entities
(setq ss (ssget ;|MSG0|;"_x" '((60 . 1))))
(if (not (null ss))
(progn
(setq i 0)
(princ (sslength ss))
(princ " blanked entities found.\n");
;; Unblank each entity in the set
(while (< i (sslength ss)) (progn
(setq ename (ssname ss i))
(setvis 0 ename)
(setq i (1+ i))
))
)
(princ "\n0 blanked entities found.\n");
)

(setq *error* old_error) ; restore error function
(command ;|MSG0|;"_.undo" ;|MSG0|;"_end")
(setvar ;|MSG0|;"cmdecho" echo) ; restore cmdecho sysvar
(princ) ; Quiet exit.
)

(defun c:unblank ( ) ;;; / olderr echo ss i ename hand )
(setq olderr *error* ; Redefine error handler.
echo (getvar ;|MSG0|;"cmdecho")
*error* unblank_error)
(setvar ;|MSG0|;"cmdecho" 0) ; Turn off cmdecho sysvar
(command ;|MSG0|;"_.undo" ;|MSG0|;"_group")

(setq hand (getstring ;|MSG5|;"\nEnter handle of entity to be unblanked: "))
;; Unblank the entity if handle is not an empty string
(if (> (strlen hand) 0)
(progn
(setq ename (handent hand))
(if (/= nil ename)
(setvis 0 ename)
(princ ;|MSG6|;"Invalid handle.")
)
)
)

(setq *error* old_error) ; restore error function
(command ;|MSG0|;"_.undo" ;|MSG0|;"_end")
(setvar ;|MSG0|;"cmdecho" echo) ; restore cmdecho sysvar
(princ) ; Quiet exit.
)
(princ)

带翼钢筋最小配筋率试验

近日完成了15块 采用冷轧带翼钢筋的混凝土板的最小配筋率试验
其中,采用φ8的0.15%的配筋率的板具有一定的延性。

2006年12月15日星期五

excel多个文件合并的宏程序

用东华DH 3815N进行数据测试的时候,会导出许多的excel文件来,下面是一个将所有文件合并在一起的简单宏程序, 注意,限制条件:1)文件名依次按照1~114命名;2)合并的时候只选择了所有文件的第二行进行合并,如不同于这个限制条件,请自己修改。

Sub 宏1()
'
' 宏1 宏表
' Fantasy记录的宏2006-6-12
'
'ChDir "E:\1"
'Workbooks.Open FileName:="E:\1\1.xls"

For i = 2 To 114
abc = "e:\1\"
def = ".xls"
file1 = Format(i)
FileName = abc + file1 + def

Workbooks.Open FileName:=FileName
Rows("2:2").Select
Selection.Copy
Windows("1.xls").Activate

row1 = Format(i +1)
rowname = row1 + ":" + row1

Rows(rowname).Select
ActiveSheet.Paste
Next i

有限元网格划分软件truegrid的textpad语法高亮文件

; truegrid是一个很有趣的有限元网格划分程序,里面应用了映射等有趣的概念
;下面是我做的一个关于truegrid的textpad语法高亮文件
; keyword syntax file for Turegrid
; Copyright (C) 2005, qjchen, http://autolisper.googlepages.com

C=1

[Syntax]
Namespace1 = 6
IgnoreCase = Yes
InitKeyWordChars = A-Za-z_`
KeyWordChars = A-Za-z0-9_
PreprocStart =
SyntaxStart =
SyntaxEnd =
CommentStart =
CommentEnd =
CommentStartAlt =
CommentEndAlt =
SingleComment = #
SingleCommentCol =
SingleCommentAlt =
SingleCommentColAlt =
StringStart = "
StringEnd = "
StringAlt =
StringEsc = \
CharStart =
CharEnd =
CharEsc =

[Preprocessor keywords]

[Keywords 1]
caption
display
draw
grid
postscri
rindex
sdint
set
slice
triad
tvv
ad
pad
dad
dads
daad
aad
raad
rad
l
r
u
d
rx
ry
rz
trans
fix
unfix
scale
xscl
yscl
zscl
zb
zf
angle
reso
restore
center

[Keywords 2]
de
dei
hierarc
insprt
mseq
orpt
update
mb
mbi
pb
pbs
coore
tr
tri
ilin
ilini
ma
pa
q
mb
mbi
pb
pbs
cooref
tr
tri
ilin
ilini
ma
pa
q
cur
curf
cure
curs
edge
esm
esmp
hyr
lin
lini
relax
relaxi
splint
tf
tfi
tme
tmei
unifm
sf
sfi
spp
tmplt
patch
ms
sf
sfi
spp
tmplt
patch
ms
res
drs
as
das
nds
dom
x=
y=
z=
t1=
t2=
t3=
history
actcmd
decmd
undo
arg
argi
darg
darged
rg
rgi
rrg
rrgi
strghl
strghli
clrghl
labels
fd
fdi
fdc
fdci
fds
fdsi
frb
frbi
fv
fvi
fvc
fvci
fvs
fvsi
bv
bvi
acc
acci
accc
accci
accs
accsi
fvv
fvvi
fvvc
fvvci
fvvs
fvvsi
vacc
vacci
vaccc
vaccci
vaccs
vaccsi
rotation
velocity
ve
vei
arri
dist
csf
fa
fai
fc
fci
fcc
fcci
fcs
fcsi
ll
mdep
mom
momi
ndl
ndli
pr
pri
pramp
b
bi
cfc
cfci
fbc
fbci
jt
il
ili
lb
lbi
mpc
namreg
namregi
nr
nri
ol
oli
reg
regi
sfb
sfbi
sw
swi
syf
syfi
trp
bf
bfi
cv
cvi
vcv
vcvi
cvt
cvti
fl
fli
vfl
vfli
ft
fti
vft
vfti
hfl
hfli
inizone
inizonei
setsor
setsori
rb
rbi
vrb
vrbi
re
rei
te
tei
temp
tepro
tm
tmi
vtm
vtmi
vhg
vhgi
vvhg
efl
efli
mp
mpi
v
vi
npm
pm
spdp
spring
bb
bbinfo
dbb
rbb
abb
dbbs
rbbs
abbs
dabb
rabb
bbint
flowint
flowinti
iss
issi
si
sii
trbb
mate
mt
mti
mtv
por
pori
sc
ibm
ibmi
jbm
jbmi
kbm
kbmi
n
or
ssf
ssfi
th
thi
thic
elm
elmoff
mea
meai
endpart
savepart
lrep
grep
fn
fni
epb
npb
supblk
rt

[Keywords 3]

ld
apld
lcc
ckl
gset
mazt
lcd
lcinfo
ld3d2d
ldinfo
ldprnt
lrl
lrot
lsca
lscx
lscz
lt
flcd
edgefile
rln
rlns
lp2
lq
lpil
lpta
ltas
lep
lod
lnof
lfil
lap
lar
ltp
lpt
lat
lad
lvc
lstl
ltbc
ltbo
lint
csp2
fws2
ctbc
ctbo
ftbc
ftbo
rseg
lcv
lv
lvi
lvs
curd
igc
sdedge
lp3
contour
csp3
bsp3
nrb3
ld2d3d
intcur
lp3pt
3dfunc
projcur
pscur
arc3
cpcd
cpcds
twsurf
dcd
dcds
dacd
acd
acds
rcd
rcds
racd
lacd
cdinfo
rmseg
delcd
delcds
accuracy
getol
npll
project
sd
trsd
sdinfo
vd
plan
iplan
pl3
pl3o
xyplan
yzplan
zxplan
cy
xcy
ycy
zcy
sp
er
cone
cn2p
pr
ts
cr
crx
cry
crz
r3dc
cp
swept
rule2d
rule3d
crule3d
function
mesh
nurbs
igess
igesp
face
faceset
intp
sds
pipe
blend3
blend4
csps
bsps
nrbs
stl
bstl
asd
asds
ansd
dasd
dsd
dsds
lasd
rasd
rsd
iges
igesfile
igescd
igeslbls
igespd
igessd
nurbsd
saveiges
trimming
ltrim
useiges
vpsd
wrsd
alv
dlv
dlvs
rlv
agrp
dgrp
dgrps
rgrp


[Keywords 4]

mnl
pn
ajnp
cenref
centroid
elm
elmoff
info
mass
measure
pmass
reference
size
tmass
backplane
dpic
noplot
plot
rpic
condition
labels
av
avc
shv
sv
exp
expoff
iniexp
mexp
pexp
sclexp
tmm
buoy
delmats
am
ams
dam
dms
dm
ram
rm
rms
iss
si
npm
pm
pminfo
spring
delspd
delspds
bm
delem
etd
linear
quadratic
partmode
acc
bv
fd
fv
frb
fvv
vacc
ve
fa
fc
ffc
fmom
mom
pr
b
cfc
fbc
il
infol
mpc
nr
ol
rigid
rml
rsl
spotweld
spw
spwd
spwf
sw
syf
trp
bf
cv
cvt
fl
ft
rb
re
te
tepro
tm
vvhg
efl
mp
v
adnset
crvnset
delset
eset
fset
infol
mvnset
nset
nsetc
fsetc
esetc
nsetinfo
onset
rml
rsl
rvnset


[Keywords 5]
shso
block
cylinder
readmesh
blude
beam
cbeam
ap
aps
dap
dp
dps
pinfo
rap
rp
rps
rotation
velocity
detp
jd
jtinfo
lsys
lsysinfo
plane
plinfo
temp
bfd
spd
spinfo
getbb
sid
bsd
bsinfo
bind
lsbsd
offset
sind
lct
gct
lev
pslv
pplv
csca
xsca
ysca
zsca
xoff
yoff
zoff
gexch
exch
gmi
lmi
gsii
lsii
becho
c
crprod
curtyp
dc
distance
echo
end
errmod
expressions
include
inprod
interrupt
intyp
painfo
para
resume
title
tpara
tricent
caption
mxp
if
elseif
else
endif
merge
mns
st
stp
t
tp
ztol
bptol
ptol
rigbm


[Keywords 6]
epb
npb
ndigits
save
verbatim
abaqus
ale3d
ansys
autodyn
cf3d
cfd-ace
cfx
dyna3d
es3d
exodusii
fidap
fluent
gemini
gridgen3d
iri
lsdyna
lsnike3d
marc
nastran
nike3d
nekton2d
nekton3d
neutral
refleqs
starcd
plot3d
poly3d
tascflow
topaz3d
viewpoint
abaqstep
ansyopts
dynaopts
lsdyopts
marcopts
nekopts
nikeopts
lsnkopts
tz3dopts
abaqmats
ansymats
ansynl
dynaeos
dynamats
nastmats
lsdymats
lsdyeos
nikemats
lsnkmats
marcmats

2006年12月13日星期三

扫雷游戏之中国高手

以前一直关注的是
http://metanoodle.com/minesweeper/
的外国高手情况,现在世界记录已经是38秒多了。
昨天才发现一个国内高手的帖子:
【走向中国扫雷第一之路】
http://post-js.baidu.com/f?kz=141128520
还是很佩服他的。
我有同学也是61秒左右,看来也很有潜力突破了。:)

对广东科学中心施工监测之仿真建模,ansys,sap2000

去年研究团队对广东科学中心进行了施工监测,包括现场及仿真分析。
建模部分采用了autocad建模,通过自编转接程序一次性将截面特性,材料特性,单元定位等特征导入到ansys里,再通过自编APDL语言将ANSYS中所有构件的荷载、截面、约束等导入到sap2000里面进行分析,实现双控。下面图片是导到sap2000中的结构。
本次仿真分析涉及14万平方米的空间结构。






sat2etabs在超高层结构设计中的应用初探



sat2etabs在超高层结构设计中的应用初探
不久前用sat2etabs作了一个60多层的结构方案设计的PKPM到ETABS的转换,涉及到7种结构形式。
总体感觉,sat2etabs作的还挺细的,成功率也颇高。
不过加上荷载之后的导入速度非常慢,有时候需要20分钟。
计算得到的周期不是很接近,etabs的更小些。
风载和地震载需要自己添加,其中地震载不要用LOAD CASE里面的EARTHQUAKE LOAD,要用反应谱。

2006年12月10日星期日

一个梁柱交接位置的直线修剪lisp程序

今天,在这里灌了一篇水
http://www.xdcad.net/forum/showthread.php?s=&threadid=562316&pagenumber=2

以前编过一个14版的圆,多边形内的直线批量修剪程序。
由于代码编写比较乱,一直想用vlisp重新写一下。
期间学习
aeo版主的“自动扩展修剪”(利用xdapi)
eachy兄的”利用ET中的FS写的一个简单的修剪内部线 “(利用et的fastsel)
snsj兄的“图形切割程序”(利用et的extrim)
...............................................................
受益颇多。
也想锻炼一下能否用vlisp,不用extrim编写相关程序。顺带问一下,为什么extrim在运行的时候会屏幕闪一下,有点像zoom的情况呢。
近日仔细阅读了John Uhden(John Uhden:写了不少用@开头的通用函数,http://www.cadlantic.com/)的trimlineinside函数之后,在其代码的基础上(原代码占80%以上比重)写下了如下的一段代码,用于修剪圆,文字,lwpolyline多边形。其原函数可以在其网站上下到,主要是考虑一个boundary和一个Line进行剪切处理,没有考虑线直接穿过boundary的情况,本代码主要加了这个部分,添加了文字的处理和多边形内部的erase清理的内容。在此多谢John Uhden。
其实我主要利用后两者来进行我们结构专业的梁柱交接处的修剪问题。命令为test.
刚刚发现这个程序的作用和eachy兄的这个程序有点类似,于是跟帖在这里了,eachy版主别怪:)
程序缺陷:对于凹多边形,直线的两段在凹多边形内部等几种情况会出现问题

代码这里不能缩进,可以看原文

图象:

2006年12月7日星期四

建筑结构方面比较好的字典、翻译软件

用了不少字典、翻译程序,觉得对建筑结构专业都不是特别好,许多的词都没有, 只能查厚厚的纸质字典比较实在。
其中,雅信是比较好的翻译软件,用它翻了不少结构方面文献的全文,结构词库比较让人满意。
金山词霸几乎没有结构方面的字典,星际译王和灵格斯用的是开源字典,也没有结构字典。
而像华建词典和科技词典也都不强,只能希望什么时候土木行业的字典也能被人整理和开源了:)

一个把面积为0的3DFACE转换成为点的程序




;昨天遇到的问题是从3dsmax里面导出图形到cad中,由于打碎之后存在着许多的3dface,四个
;点坐标都一样的情况,3dface比较奇怪,无法捕捉,于是花2分钟编了下面这个程序来将
;这类3dface相应的位置绘制上一个点,超级简单的程序:)
(defun c:test (/ a b i ent dxf10 dxf11 dxf12 i)
(setq a (ssget '((0 . "3DFACE"))))
(setq b (sslength a)
i 0
)
(repeat b
(setq ent (entget (ssname a i)))
(setq dxf10 (cdr (assoc 10 ent)))
(setq dxf11 (cdr (assoc 11 ent)))
(setq dxf12 (cdr (assoc 12 ent)))
(setq dxf13 (cdr (assoc 13 ent)))
(cond
((and
(equal dxf10 dxf11)
(equal dxf11 dxf12)
(equal dxf12 dxf13)
)
(make_point dxf10 1)
)
)
(setq i (1+ i))
)
)
(defun make_point (l10 color)
(ENTMAKE (LIST (CONS 0 "POINT") (cons 62 color) (cons 10 l10)))
)

2006年12月6日星期三

一个不很成熟的变参数批量分析的ANSYS程序

!为了批量研究变化参数得到的结果变化,进行批量分析(采用的是不断新建模型的方法)
!里面有不少参数还没有变为DO和ENDDO的方法
!还需继续改进
!华南理工大学 建筑学院 qjchen
!http://chenqj.blogspot.com
D=400
!b=100
!h=100
num1=10
num11=num1+1
num21=num11+num1
num31=num21+num1
num3=num1*3
num2=num1*2
cnum=4


*CFopen,myout,out
*DO,I,1,cnum,1
*DO,J,1,cnum,1
dh=I/2*D
db=J/2*D
/PREP7
ET,1,SHELL63
R,1,0.5
MP,EX,1,2E11
MP,NUXY,1,0.2
*DO,ROW,0,num1,1
*DO,COL,0,num3,1
*IF,COL,LT,num11,THEN
N,ROW*num31+COL+1,db*COL/num1-D*0.5-db,ROW*dh/num1,0
*ELSEIF,COL,LT,num21
N,ROW*num31+COL+1,-D*0.5+D*(COL-num1)/num1,ROW*dh/num1,0
*ELSE
N,ROW*num31+COL+1,db*(COL-num2)/num1+D*0.5,ROW*dh/num1,0
*ENDIF
*ENDDO
*ENDDO
*DO,ROW,0,9,1
*DO,NNUM,31*ROW+1,31*ROW+30,1
E,NNUM,NNUM+1,32+NNUM,31+NNUM
*ENDDO
*ENDDO
NAME=STRCAT(STRCAT('H',CHRVAL(I/10)),STRCAT('B',CHRVAL(J/10)))
!SAVE,NAME,DB
FINISH
/SOLU
D,11,,,,,,UX
D,11,,,,,,UY
D,21,,,,,,UY
D,12,,,,,,UY
D,13,,,,,,UY
D,14,,,,,,UY
D,15,,,,,,UY
D,16,,,,,,UY
D,17,,,,,,UY
D,18,,,,,,UY
D,19,,,,,,UY
D,20,,,,,,UY
F,321,FY,-100
F,322,FY,-100
F,323,FY,-100
F,324,FY,-100
F,325,FY,-100
F,326,FY,-100
F,327,FY,-100
F,328,FY,-100
F,329,FY,-100
F,330,FY,-100
F,331,FY,-100
NAME1=STRCAT(NAME,'_FORCE')
!SAVE,NAME1,DB
!/output,dd,myout,,
SOLVE
/post1
set,first
*do,jjj,156,186,1
nodenow=jjj
*GET,sz,NODE,jjj,S,Z
*GET,sx,NODE,jjj,S,X
*GET,sy,NODE,jjj,S,Y
*vwrite,('b:'),db,(' h:'),dh,(' i:'),jjj,(' sx:'),sx,(' sy:'),sy,(' sz:'),sz
(A3,F6.0,A3,F6.0,A3,F6.0,A4,F10.2,A4,F10.2,A4,F10.2)
*enddo
NAME1=STRCAT(NAME,'_RESULT')
!SAVE,NAME1,DB

FINISH
/PREP7
EDELE,ALL
NDELE,ALL
FINISH
*ENDDO
*ENDDO
*cfclos

2006年12月5日星期二

一段绘制空间扭网壳的ANSYS代码(APDL)



!下面一段话是在ANSYS中绘制空间扭网壳的APDL代码
!华南理工大学 建筑学院 qjchen
!http://chenqj.blogspot.com
!虽然到现在杂乱地学了10来种语言,也考过什么程序员的,但发现许多时候的计算机编程应用经
!常集中在文本格式转换,简单的循环,数列通项公式的查找方面,都是最简单的东西。
!不过也不算白学,好歹大部分语言现在硬着头皮都能看懂,也不错
/prep7
Rad=30000
num=11
pi=atan(1)*4

!draw the control point
k,1,0,-Rad,0.2*Rad
k,num,Rad*sin(30*pi/180),-Rad*cos(30*pi/180),-0.1*Rad
k,num*num-num+1,-Rad*sin(30*pi/180),-Rad*cos(30*pi/180),-0.1*Rad
k,num*num,0,0,0.1*Rad


!draw the four edge point
kfill,1,num,,,1
kfill,num*num-num+1,num*num,,,1
kfill,1,num*num-num+1,num-2,,num
kfill,num,num*num,num-2,,num

!draw the other point
*do,j,2,num-1,1
kfill,(j-1)*num+1,(j-1)*num+num,,,1
*enddo

!draw the 45 deg line
lnumbef=lsinqr(0,14)+1
*do,j,1,num,1
*do,i,1,num-1,1
lstr,(j-1)*num+i,(j-1)*num+i+1
*enddo
*enddo
lnumaft=lsinqr(0,14)
lsel,r,,,lnumbef,lnumaft,1
cm,lineup45,line


!draw the 135 deg line
lnumbef=lsinqr(0,14)+1
*do,i,1,num,1
*do,j,1,num-1,1
lstr,(j-1)*num+i,(j-1)*num+i+num
*enddo
*enddo
lnumaft=lsinqr(0,14)
lsel,r,,,lnumbef,lnumaft,1
cm,lineup135,line


!draw the 90 deg line
lnumbef=lsinqr(0,14)+1
*do,j,1,num-1,1
*do,i,1,num-1,1
lstr,(j-1)*num+i,j*num+i+1
*enddo
*enddo

!copy up to down keypoint
kplot
allsel
kgen,2,1,num*num,1,,,-0.2*Rad,10000

!copy up to down line
lplot
allsel
dd=lsinqr(0,14)
lgen,2,1,dd,1,,,-0.2*Rad,10000

KSEL,ALL
kplot

!draw all the ver member
*do,j,1,num,1
*do,i,1,num,1
lstr,(j-1)*num+i,(j-1)*num+i+10000
*enddo
*enddo

/vup,1,z
!draw the 45 deg lean member
*do,j,1,num,1
*do,i,1,0.5*(num-1),1
lstr,(j-1)*num+i,(j-1)*num+i+1+10000
*enddo
*enddo

*do,j,1,num,1
*do,i,0.5*(num+1),num-1,1
lstr,(j-1)*num+i+10000,(j-1)*num+i+1
*enddo
*enddo

!draw the 135 deg lean member
*do,i,1,num,1
*do,j,1,0.5*(num-1),1
lstr,(j-1)*num+i,(j-1)*num+i+num+10000
*enddo
*enddo

*do,i,1,num,1
*do,j,0.5*(num+1),num-1,1
lstr,(j-1)*num+i+10000,(j-1)*num+i+num
*enddo
*enddo

!draw the 90 deg lean member
*do,i,1,num-1,1
*do,h,1,num-i,1
*if,h,LE,0.5*(num-i),Then
lstr,i+(h-1)*(num+1),i+h*(num+1)+10000
*else
lstr,i+(h-1)*(num+1)+10000,i+h*(num+1)
*endif
*enddo
*enddo

*do,i,2,num-1,1
*do,h,1,num-i,1
*if,h,LE,0.5*(num-i),Then
lstr,i+(h-1)*(num+1)+(num-1)*(i-1),i+h*(num+1)+10000+(num-1)*(i-1)
*else
lstr,i+(h-1)*(num+1)+10000+(num-1)*(i-1),i+h*(num+1)+(num-1)*(i-1)
*endif
*enddo
*enddo


!draw the area
*do,i,1,num-1,1
*do,j,1,num-1,1
a,(j-1)*num+i,(j-1)*num+i+1,(j-1)*num+i+num+1
a,(j-1)*num+i,(j-1)*num+i+num,(j-1)*num+i+num+1
*enddo
*enddo

2006年12月4日星期一

DIESEL也有意想不到的强大功能

一直以来没有怎么用过DIESEL编程,觉得其功能不怎么样
最近在这里看到几篇关于DIESEL的文章,觉得还挺有用的。
比如,要找出用“,”隔开的字符串,它有些作用。
(defun 3rd (string)
(menucmd (strcat "m=$(index,2,\"" string "\")"))
)

这个函数是拿来找字符串中对应第三个
“,”的单词

这个地址是http://www.crlf.de/Dokumente/Diesel/Diesel.html


windows下的lisp编程环境newlisp

一直学的是autocad下的lisp,它还有许多的局限性,也想向普通的lisp学习一下。
现在发现一个很小的软件-newlisp,具有一定的普通LISP功能,其中还包括矩阵求逆一类的函数,不妨来试试,也下载了WIN下的Corman lisp和gci,希望有空看看它们的异同。
http://newlisp.org/

2006年12月3日星期日

Autocad 外挂程序 热键程序 Autohook 的使用

Autohook是一个著名的autocad外挂程序,用于定义热键

autohook的用法,
很简单,安装之后就会在右下角出现一个程序图标,注意不同版本cad有不同版本的autohook
它的作用其实就是用键盘的键来定义命令,有点象图标工具的作用。

如何用:
比如,我们想把tab键定义为正交,也就是原来F8的功能,那么,打开autohook,按下tab键,然后在new后面的文本框里面键入:《'^o 》不包括书名号,然后点save,那么,以后在画图中就可以用tab来代替F8键了

比如,我们想定义'这个在1旁边的键为特性匹配,那么,那么,打开autohook,按下'这个键,
然后在new后面的文本框里面键入:《_matchprop 》不包括书名号,然后点save,那么,以后在画图中就可以用'来代替F8键了

怎么样,又有点速度提升了吧:)

2006年12月1日星期五

关于SAP2000和ABAQUS的文件转换问题

关于SAP2000和ABAQUS的文件转换问题
总是有一些时候必须在不同的软件中进行格式转换。最近遇到的问题是准备利用abaqus强大的弹塑性分析功能和SAP2000的快速建模功能来实现某些弹塑性动力时程分析。
由于SAP2000有比较明确的文件格式.S2K,那么可以通过一定的方式转换为ABAQUS的.DAT格式。
最简单的方法莫过于采用ABAQUS内置的PYTHON语言进行开发转换了,就可以省去中间软件的过程。
大概用一小段(2、30句)就可以实现几何方面的连接了。
下面是一段梁单元的转换过程。版本是sap2000 7.44,abaqus 6.5.1

这个文件保存为.py格式,第一第二句的文件名和目录改一下,可以实现sap2000中梁的就可以把7.44的sap2000的s2k文件转换成abaqus的dat文件了.(里面有一句梁单元赋予的话没有写,在导入abaqus之前,可以修改一下dat文件,:p,偷懒了

其实只是一种思路而已,程序本身并没有什么。
py文件的内容大致如下(由于blogspot会自动删除空格,下面的代码不能直接使用,还是下载那个py文件的好
f=open('e:/work/new/mys2k.s2k', 'r')
fw=open('e:/work/new/mys2k.inp', 'w')
print f
f.seek(0)
alllines=f.readlines()
i=0
for x in alllines:
i=i+1
j=0
for x in alllines:
if (x.find("JOINT\n")<>-1):
indexjoint=j
if (x=="RESTRAINT\n"):
indexres=j
if (x=="FRAME\n"):
indexframe=j
if (x=="LOAD\n"):
indexload=j
j=j+1
temp=indexjoint+1
temp1=indexres-1
fw.write("*node\n")
for x in alllines[temp:temp1]:
y=x.split(" ")
nodenum=y[2]
nodex=y[4]
nodexw=nodex[2:]
nodey=y[6]
nodeyw=nodey[2:]
nodez=y[8]
nodezw=nodez[2:]
all=nodenum+","+nodexw+","+nodeyw+","+nodezw
print all
fw.write(all)
temp2=indexframe+1
temp3=indexload-1
fw.write("*element\n")
for x in alllines[temp2:temp3]:
y=x.split(" ")
elenum=y[2]
eleij=y[4]
eleijw=eleij[2:]
all1=elenum+","+eleijw+"\n"
print all1
fw.write(all1)
f.close()
fw.close()