8.CADINIP-输入语言(下)
接着CADINIP-输入语言(上),继续介绍:
例8.8:获取梁单元101的截面编号(考虑到两种不同情况,因此不能使用预定义文字):
L E T # C D B _ I E R 0
@CDB p r o j e k t 1
@KEY 100 0 -1 -1 -1 -1 ! 4整数键
L E T # N R 0
LOOP ! 所有语句
L E T # 1 0 @ ( -3) ,@ ( -2) ! 1. 和 2.取整
IF #10 ; L E T # N R #10 ! 新梁
ELSE ! 选择梁
IF #NR ==101 LET#Q #11 ENDIF
ENDIF
E N D L O O P # C D B _ I E R < 2 ! 终止语句
例8.9: 存储在数据库文本,仅当数据结构已知时,才可以适当处理。分别使用cdbase.chm中定义的名称:
@KEY L C _ C T R L 101 ! 作用及荷载设计$$案例101
L E T # A C T LIT ( @ITYP )
L E T # T X T LIT ( @RTEX )
!材料1设计
@KEY MAT 1
L E T # M A T T X T LIT ( @ T I T L E )
8.3 通用语句
在 CADINP 中,输入由若干个输入模块组成。每一个输入模块通常由 HEAD 开始,以END 终止。有些程序允许使用多个模块输入。当程序运行遇到一个空置的模块(END/END) 时,分析将自动停止。
本用户手册中,对输入语句的描述都采用相同模式的表格加以说明。表格右上的方框中给出了该语句的名称,每个表格都包括四列。
· 表格中第一列给出了该语句下所有参数的名称。
· 第二列给出了参数相应的解释及合法的字符串。
· 第三列给出了参数的单位。“ - ”字符表示一个无量纲参数,而“*”则表示,通过在 PAGE UNII 中选择,该参数的尺寸有多种可能性。 LIT 则表示某参数只允许预定义的 字符串。 Litnn 用于定义最多由nn 个字符构成的自由文本。LITnn 则要求定义的自由 文本为大写。
· 表格最后一列显示某参数的默认值。此列中,字符“ - ”表示某参数无默认值,并且可以 不对该参数赋值。相反,字符“!”表示必须对该参数赋值。字符“*”用于表示该参 数默认值取决于不同的条件,在表格后的文本中将详述这些条件。
8.3.1 HEAD – 标题
用户可以定义最多不超过 10 个的标题行。第一个标题将保留作为结构描述,并且只能在 程序 AQUA,SOFiMSHA/B/C 以及 SOFiSTiK 的模板中定义。由于此标题将被数据库中其 它的模块导入,因此它是不能被改变的。其他标题可以通过输入字符串 HEAD 跟一个分隔符和 最多不超过 72 个字符的文本来定义。如果在某数据模块内未定义标题,前一个预定义的标题 将会被继续使用。请参阅PAGE指定页面标题。标题行不能使用撇号分隔。标题行的默认值可以在 SOFiSTiK.DEF 种通过变量 KOPF1,KOPF2 和 KOPF3 指定。
8.3.2 END – 终止输入模块
语句 END 用于终止每个输入模块的。例如,分析中的每一个荷载工况都可以用 END 语句终止。而整个输入块的终止则需要两个End 语句来定义。如果该终止语句缺省且整体输入模 块处于其物理终止处,该终止语句将自动被 CADINP 产生。
8.3.3 TXB – 引入文本
8.3.4 TXE – 结论文本
无论是在分析之前还是之后,任何所需的说明性文本都可以通过 TXB(之前)和 TXE(之后) 添加到 一个输 入块。 程序不 对说明 性文本的 行数作 限制。 用户还 可以通过 <TEXT>...</ TEXT>输入更大段的文本,或通过<PICT>和</ PICT>插入图片。<TEXT>...</ TEXT>内不允许出现图片。
该 TXB/TXE-不能在单引号之间输入。在文本当中,使用#(variable,dd)格式的变量将会被它们的当前值并采用格式 dd 替换。
用户可以在文本中使用 HTML 组件。组件由符号“<”起始,其后不能出现空白或 “<”符号。己知的组件将被程序解读,未知则将被弃用。以下所示 SOFiSTiK 程序能解读的组件标记:
<FF> 另起一页
<LF> 空行
<b> .... </b> 粗体
<i> .... </i> 斜体
<u> .... </u> 下划线
8.3.5 <TEXT> – 正文模块
8.3.6 </TEXT> – 正文模块终止
通过特殊语句名称<TEXT>和</TEXT>,用户可以定义一个连续的文本块而无需指定语句的名称。该文本将被追加到由最后一个TXB或TXE命令选择的区域。<TEXT>后的文本将成为URSULA目录的一部分。
通过以下方式,文本块可被写入到一个文件中:
<TEXT,FILE=foobar.txt>
如果文件中添加了更多的文本块,则必须输入+:
<TEXT,FILE=+foobar.txt>
对于模板的定义,用户可以通过特殊的HTML标记来指定可编辑的字段:
<EDIT:name>$(name) </EDIT>
参数上的可编辑的参考
<EDIT:name,Format=6.2>$(name) </EDIT>
参数上可编辑的参考 采用形式 “###.##” (总字数宽度.小数位)Format=6 保留6个字宽Format=-6 设置左边对齐
<EDIT:name,List=str1,str2,str3>$(name) </EDIT>
E参数上可编辑的参考在列表中的可能值
<EDIT:name,List=str1,str2,str3,Update=Yes>$(name) </EDIT>
直接强制输入在一个临时更改的输入之后
8.3.7 ECHO – 输出控制
程序会将新计算结果的所有输出选项都预设为1。对于某些己经计算出的值(例如分析时 所计算的节点坐标),其输出参数则被预设为0。当然,通过输入ECHO NODE,用户也可以 通过将值“FULL”指定给节点选项的方法来控制节点计算结果的输出。而参数val和它的值则 只对指定了ECHO的选项有效。所有输出选项的作用可以在相应手册的输出描述中找到。通常 最简便快捷的输出控制方式是由指令YES实现的,而用户也可以通过FULL指令来扩展需要输 出的计算结果选项。当使用指令EXTR来控制输出时,则可以获得更为详细全面的输出结果。
通过控制指令NO,用户可以关闭某些计算结果的输出。例如当只需要输出支座反力时, 可使用以下输入:
ECHO FULL NO ECHO REAC
8.3.8 UNIT – 输入/输出单位
SOFiSTiK 程序尽可能最合适使用工程单位进行输入输出。数据库中所保存的数据单位为 SI 国际单位制的 kN,m,sec。对于输入输出数据可以采用其他单位制(例如 N,mm 或者 cm2),以及小数点后不同的的有效数位。语句单位允许在当前程序中运行不同的输入或输出的单位。可以使用TYPE选择完整的单位组:
0 = 国际单位制 (m,kN,sec有一些历史偏差)
1 = 德国的高层结构通用单位 (截面单位为 cm,结构体系为 m)
2 = 德国的钢结构通用单位(截面单位为 mm,cm2,dm4,系统单位为 m)
3 = 桥梁结构(同设置 0,但是截面内力为 MN 代替 kN)
4 = 土力学(m,kN,sec)
5 = 土木工程(截面单位为 mm,结构体系为 m)
6 = 公制系统(所有尺寸为 mm,荷载为 kN)
7 = 机械工程(所有尺寸为 mm,荷载为 N)
8 = 英制(美制单位,英寸 inch,英尺 foot,磅 lbs,千磅 kip)
也可以从CDBASE.CHM中指定的隐式单位列表中选择一个特定对象,参见2.5数据库描述(例如,1001或GEO_LENGTH,请参阅cdbase.chm),并更改单位或十进制数项目。
8.3.9 PAGE – 输入及输出控制
Page语句中的所有参数都源于操作系统或者需要在SOFISTIK.DEF文件中进行定义。除了 语言与单位设置外,其他参数都可以报告浏览器中打印报告时定义。
0. 含长文本的单行标题
Dr.-Eng. Charly Brown * 9012 Newtown * 12, Software drive, Tel.08144/2725 AQUA - General Cross Sections (V 1.0-97) 25.05.95 Page 11
Title of structure (1st and all further HEAD lines)
1. 多行标题(仅当明确规定时)
Dr.-Eng. Charly Brown, Consulting Engineer Page :
9012 Newtown * 12, Software drive, Tel.08144/2725 11
AQUA - General Cross Sections ( 6087) 25.05.95
Title of structure (1st and all further HEAD lines)
2. ZTVK标题与标题框
+------------------------------------------------------------+-----------+
!Bauteil : Bauteilbeschreibung (3.KOPF Zeile) !Archiv Nr. !
!Block : Blockbeschreibung (4.KOPF Zeile) Seite: 11 ! !
+------------------------------------------------------------+ !
!Vorgang : Vorgangsbeschreibung (5. KOPF Zeile) ! !
+------------------------------------------------------------+-----------+
+------------------------------------------------------------+-----------+
!Subsructure: Substructure description (3rd HEAD line) !Archive No.!
!Block : Block description (4th HEAD line) page: 11 ! !
+------------------------------------------------------------+ !
!Method : Method description (5th HEAD line) ! !
+------------------------------------------------------------+-----------+
3. 短标题
AQUA 5.0-95 Dr.-Eng.Charly Brown page 2
Title of structure (1st head line) date 25.05.95
在ZTVK版本中,标题行的前48个字符将被采用。而公司的名称只能由SOFiSTiK改变。不过可以SOFiSTiK环境中更改变某个项目的名称。
8.3.10 SIZE –图形格式
在整个程序中,SIZE语句都用于定义图形输出的格式。一般来说,可通过以下两种方式实 现:
• 用户可以通过设定尺寸参数W与H(显示),也可以使用TYPE指令(隐式)来设定纸 张的规格。程序将以1:1,1:2,1:5或是它们的倍数为基础、自动调整至最大的比例。如将比例控制参数SC设置成0,程序将在不考虑比例的情况下将图形放大到最大。
• 用户通过将尺寸参数H和W的值设定为0且指定一个比例值,程序将自动选择合适的纸张尺寸。如只有一个尺寸(H或W)被设定为0,程序将根据另一尺寸的大小、采用将图形在该方向上填充的方式自动计算绘制区域的大小,这种情况下,用户将不需指定比例。
当使用TYPE语句时,用户还可以指定美国格式或是特殊的Hewlett-Packard 绘图仪格式以代替DIN 标准尺寸。在这种情况下,用户通过输入FORM和MARG指令可以创建图形的边框。该图形将在报告浏览器程序中以相同的形式绘制。当使用URS或FORM URS指令时,绘制的图形将不带有边框。在打印之前,该边框将在报告浏览器程序中绘制。DINA URS对应到DIN 标准A4纸张,在该情况下,尺寸W和H改变图片的大小。FORM URS用于计算纸张及尺寸及图片的尺寸大小,如:“SIZE 3 FORM URS”:这种情况下,W和H定义纸张尺寸。尺寸参数前的正负号决定横向或纵向格式:
URS,-URS 报告浏览器程序中允许的最大图片尺寸
A,-A 标准纸张 A (11 x 8.5 inch)
B,-B 标准纸张 B (17 x 11 inch)
C,-C 标准纸张C (22 x 17 inch)
D,-D 标准纸张D (34 x 22 inch)
HPA,-HPA Hewlett Packard 纸张 A (259 x 199 mm)
HPB,-HPB Hewlett Packard 纸张B (416 x 259 mm)
HPC,-HPC Hewlett Packard 纸张 C (529 x 378 mm)
HPD,-HPD Hewlett Packard 纸张D (809 x 528 mm)
HP4,-HP4 Hewlett Packard 纸张4 (276 x 193 mm)
HP3,-HP3 Hewlett Packard纸张3 (404 x 276 mm)
HP2,-HP2 Hewlett Packard 纸张2 (564 x 366 mm)
HP1,-HP1 Hewlett Packard 纸张1 (787 x 564 mm)
WIN,-WIN 当前WINDOWS打印机的纸张大小
MP,-MP 8 x 12 inch纸张的点阵打印机 (200 x 287 mm)
LP,-LP A4 纸张激光打印机(198.4 x 280 mm)
MPW 14 x 12 inch 纸张的宽行点阵打印机对于以上格式,默认值为MARG 编号。
8.4 图片的生成
使用下述语句时,真实比例的草图可以插入到分析前后的注释中。可用的元素包含图形核心系统中的原折线段,多点标记,填充区域和文本。此外还提供广义的绘制图元和一个特殊命令来测量距离,这些都大大增加了扩展标记的可能性。
8.4.1 <PICT> – 图片的起始
每一幅图片都由语句<PICT>引导并由语句</PICT>终止。图片尺寸将被预设为厘米。
8.4.2 GNT – 图片比例
通过GNT语句,用户可以设定某个图片的尺寸缩放。默认情况下,程序会在各方向上均匀缩放一张图片。如用户希望在X和Y方向上采用不同缩放因子,则必须指定参数SC的值小于0 和四个顶点坐标。 GKS支持三种不同的转换模式。
8.4.3 GPL – 折线段
8.4.4 GPM – 多点标记
8.4.5 GFA – 填充区域
8.4.6 GGDP – 广义绘制图元
GGDP是由GKS提供用于创建更复杂的图元方法。在SOFiSTiK中包括:
CIRC 以点(X1,Y1)为圆心,点(X2,Y2) 为圆弧上一点的完整圆。不使用OPT。
BUTT 以点(X1,Y1)为圆心,点(X2,Y2) 为圆弧上一点的完整圆。不使用OPT。
ARC (X1,Y1)为圆心,圆弧上点(X2,Y2)至(X3,Y3)的圆弧。 不使用OPT。
VECT 以(X1,Y1)为起点,(X2,Y2)为方向分量或以P1、P3、P5为起点,P2、P4、P6为方向分量的向量。VECT将画出以基线为其中心的矢量,VEC1将放置起始点,VEC2将在基线处使用箭头的终点。
8.4.7 GTXT – 文本标签
可以采用多种方式来定位一个文本。所显示的文本可以包含己给定的文本或者数值。对于数值,用户则可以根据cdbase.chm 来选择一个格式的转换,参见2.5 Database。
8.4.8 GSCA –标注尺寸
GSCA是一种特殊的尺寸标注方式。文本将显示在尺寸标注线上。这个文本在默认输入中给出尺寸点的距离,能在一个数字及文本上进行明确的扩展显示。与所希望的文字的结合以及达 到默认的距离,如果文字用一个等号“=”作为结尾。对于数值,用户则可以根据cdbase.chm 来选择一个格式的转换,参见2.5 Database。
8.5 图形表示的属性
T绘图元素诸如线、标记、文本和面都可以具有不同的属性。用户通常可以在程序的图形输出中使用捆绑的数字来指定这些元素的属性。构建以下表达式:
ind = 1000 · col + 100 · ibr + ityp
对于WINDOWS程序而言,屏幕与单色或多色打印机的调色板会存在一定的色差。用户可以通过注册表中的报告浏览器选项来更改这些定义。
下列CADINP语句只在图片的定义中有效<PICT> ... </PICT>. 参数的注释与描述是有效的, 但对于其他的图形程序也同样有效。
8.5.1 GCOL – 选择颜色
GCOL指令可以为所有图元指定颜色。对于COL指令,用户可以通过输入l至15中的数字或选择数字所对应语句的方式来选择颜色。如果你的系统允许,则可以通过红绿蓝分量来指定一个颜色(推荐9至15)。
col = 颜色指数 | 0 =背景色 | ||
STAN | 1 = 黑或白色 | (Pen 1) | |
RED | 2 =红色 | (Pen 2) | |
GREE | 3 = 绿色 | (Pen 3) | |
BLUE | 4 = 蓝色 | (Pen 4) | |
YELL | 5 = 黄色 | (Pen 5) | |
MAGE | 6 = 洋红 | (Pen 6) | |
CYAN | 7 = 青色 | (Pen 7) | |
BROW | 8 =棕色 | (Pen 8) |
8.5.2 GPLI –折断线属性
对于折断线,以下为绑定SOFiSTiK指数的输入:
ind = 1000 · col + 100 · widt + type
widt = 线宽系数 0 = 正常线宽
1 = 线宽 × 1.4
2 = 线宽 × 2.0
3 = 线宽 × 2.8
4 = 线宽 × 4.0
5 = 线宽 × 5.6
等
type = 线型 1 = 连续
2 = 中等虚线
3 = 中等点划线
4 = 中等点虚线
5 = 密集虚线
6 = 密集点线
7 = 密集点虚线
8 = 稀虚线
9 = 稀点划线
10 = 稀点虚线
8.5.3 GPMI – 多点标记属性
对于多点标记:
ind = 1000 · col + 100 · size + t
size = 标记大小 0 = 正常大小
1 = 尺寸 × 1.4
2 = 尺寸 × 2.0
3 = 尺寸 × 2.8
4 = 尺寸 × 4.0
5 = 尺寸 × 5.6
等。
type = 标记类型 1 = . 点
2 = + 加号
3 = * 星号
4 = o 圆形
5 = x 十字
8.5.4 GTXI – 文本
对于文本,以下为绑定SOFiSTiK指数的输入:
ind = 1000 · col + ƒ ont
font = 文字样式 取决于安装包
8.5.5 GFAI – 填充区域属性
对于填充,以下为绑定SOFiSTiK指数的输入:
ind = 1000 · col + 100 · styl + type
ibr = 填充区域样式 0 = 空心 (只绘制轮廓线)
1 = 实心 (整个区域填充)
2 = 图案
3 = 斜线填充
参数type的效果取决于设备。例如,传统的矢量绘图仪将不能使用任何的位模式。模式1对应填充区域完全空白,而模式2通常对应均匀且稀疏的阴影填充。通过增加数值,模式2下的填充密度将逐渐增大。特殊的图案从type=11开始。将某填充图案的数值设置成32将使其完全不透明。
在一或两个方向上,不透明的填充线可以存在以下的变化。
type 1 / 2 / 3 = 坚直 / 水平 / 坚直+水平
4 / 5 / 6 = 斜向 +45 度 / -45 度 / +45 和 -45 度
7-12 = 与1至6类似,填充线为虚线
13-24 = 与1至12类似,填充线比例增大
25,26 = 钢筋混凝土
27 = 土壤
8.6 图片的插入
8.6.1 <LINK> – 插入一张图片
BMP 格式的图片可以在输入文件中通过<LINK>插入。
图片不能插入到一个文本块中(<Text>...<Text>中),而只能插入到<Picture>...<Picture >之中。
8.7 参量输入
当前版本的 CADINP 语言允许自由定义任一的参数。
例如,一个简单的和架可通过如下方式定义:
type = Fill Area Style Index (only styl =2/3)
图 8.2: 桁架
本例中所需要定义的参数包括跨度,桁架高度,以及杆件的截面尺寸。用户可以在SOFIMSHA中进行如下输入:
HEAD TRUSS
$
LET#1 12.40 $ SPAN WIDTH
LET#2 2.30 $ HEIGHT
$
NODE 1 0 0 PP
(2 4 1) (#1/4 #1/4) 0
5 #1 0 PP
NODE 6 #1/4 -#2/2
7 #1/2 -#2
8 3*#1/4 -#2/2
TRUS (1 4 1) (1 1) (2 1) NCS 1
TRUS 5 1 6 NCS 1
66 7 == ;7 7 8 == ;8 8 5== ;
TRUS (11 13 1) (2 1) (6 1)NCS 2
TRUS (14 15 1) (6 2) 3 NCS 2
END
另一种输入方式为循环控制语句。例如,通过以下输入可以生成一个双曲线拱节点。
PROG SOFIMSHA
HEAD Cooling Tower
$ Meridian Hyperbolic equation (r/r0)**2-((z-z0)/zz)**2 = 1
$ (r1/r0)**2-(-z0/zz)**2 = 1 => (1/zz)**2
$ (r2/r0)**2-((h-z0)/zz)**2 = 1
$ parameter:
sto#H 160.0 $ Total Height
sto#R0 30.0 $ smallest radius
sto#R1 55.0 $ Radius at bottom
sto#R2 35.0 $ Radius at top
let#1 SQR(#r1**2-#r0**2)
LET#z0 #H*#1*(SQR(#R2**2-#R0**2)-#1)/(#R2**2-#R1**2)
let#zz #z0/SQR((#r1/#r0)**2-1.0)
let#m 16 $ subdivision in height
TXB Generation of a hyperbolic cooling tower
TXB height radius
TXB 0.0 #(r1,9.1)
TXB #(z0,9.1) #(r0,9.1)
TXB #(h,8.1) #(r2,9.1)
TXB
TXB Parameter zz of hyperbolic equation = #(zz,9.3)
$
let#2 #H/#m $ delta-z
LOOP#1 #m+1 ; let#z #1*#2
NODE #1*50+1 #r0*sqr(1.+((#z-#z0)/#zz)**2) 0.0 #z
ENDLOOP
使用循环控制命令的输入可能令初学者困惑,但这将给用户提供一种更为便捷的数据生成方式。
8.8 数据文件的兼容性
采用文本输入的数据适合于长期存储,这种输入方式优于任何采用专有二进制格式输入的数据。但输入语法有时会发生改变,而 SOFiSTiK 需要考虑本手册的可读性,对错误数据的捕获和所记录的数据的兼容性。
为此,我们建立了以下指导原则:
• 输入记录将极有可能在结构的末尾扩展,但如某一输入更适于其他位置(如第三个坐标添加)它将被插入。在大多数情况下,特殊的指定将作为输入中的最后一个条目。因此,用户在扩展某数据时应当使用项目名称作为所扩展数据的一个前缀,例如:
NODE 100 10.25 20.00 24.00 FIX PZ
当数据量较大时,可以采用表格形式的输入,应避免使用明确的标准项目“ - ”。导出数据时,删除不必要的数据可能会有助于将来对旧数据记录的重新使用。
• 记录或项目的名称可能会被改变,这意味着语法或数据格式的改变。在将来的版本中会有关于过时功能被删除的警告。我们建议更改数据语句,以便在即将推出的版本中使用。虽然我们尽可能多保留旧数据的输入方式,但是它将从下一个主要版本的手册中删除。
• 最关键的问题是更改未更改项目名称的格式。 我们尝试捕获旧的数据定义(例如mm而不是m)或发出关于可能的旧数据的警告(如果发出警告,显式单位定义可能会清除主题)。用户仍应在这些情况下完全控制自己的数据以切换到新的主要版本。
• 通常情况下,用户可以通过选择不同的设计规范来改变某参数默认值。如仅需指定具 有最小范围的值,用户可以重复使用某数据。但在新版本中,这可能会产生不同的结 果。本程序将默认地根据用户所安装的操作系统来选取参数的系统,但这一功能可能会在不同的计算机上产生不同的结果,因此应当避免。