钢构CAD实例LISP与DCL源代码及花样线型制作
施工cad
施工cad Lv.11
2007年10月09日 14:58:27
只看楼主

感谢本论坛将本贴置顶的厚爱………为让来到这里的朋友,能获得一些收获,在此将一个较典型且运用广泛的动态对话框实例程序的所有源代码,以及一些花样线型的制作方法,在此发表。从 12 楼开始,从《钢构CAD》程序中,拿出一个较典型的动态对话框实用程序的相关源代码,包括LISP及DCL部分,全部在此发布。钢构CAD在线 , 最新版钢构CAD免积分下载http://co.163.com/forum/content/369_959993_1.htm

感谢本论坛将本贴置顶的厚爱………

为让来到这里的朋友,能获得一些收获,在此将一个较典型且运用广泛的动态对话框实例程序的所有源代码,以及一些花样线型的制作方法,在此发表。

从 12 楼开始,从《钢构CAD》程序中,拿出一个较典型的动态对话框实用程序的相关源代码,包括LISP及DCL部分,全部在此发布。

钢构CAD在线 , 最新版钢构CAD免积分下载
http://co.163.com/forum/content/369_959993_1.htm

钢构CAD中众多动态对话框源码
http://co.163.com/forum/content/211_896045_1.htm

--------------------------------------------------------------------------------
简单线型——就是在一条线上,不断插入些字母或文字之类的,此部分字母或文字会自动跟随线条变化

很多人搞不清虚线、中心线等线型的间隔空隙是多少,如何将这些间隔空隙与出图比例相调配。

其实只要打开线型文件 acad.lin 或 acadiso.lin 将以下四行内容(两个线型)复制到其文件的最后:

*非连续线, __ __ __ __ __ __ __ __ __
A,1.0,-.5
*符号线
A,20,-1,["H",STANDARD,S=1,R=0,X=0.4,Y=-0.4],-3


上式中*以后为线型说明及描述
A为固定值,1.0为实线长度,-.5为空隙长度
"H"中的 H 即为线型中插入的字母,其它种类数据都可试着调整,如用中文字时,则应将文字样式“STANDARD”设置为中文字体。

然后采用照芦画瓢的方法,即可完成自定义线型的设置与修改,保存之后即可调用。

如何将别人的现成好用的东东点为己有——简单线型篇

很早以前,听一个设计院的高手说,别人盗用了他开发的专用线型,还说如我们想要的话,可将电脑硬盘拿去他拷赠给我们。当时虽想但也不敢如此,因听说要拆电脑硬盘去才能得到。
现在回想起来,真是笑话。

其实要在一条线上不断插入自己想要的内容图案或文字,虽然学编也很简单,但只学会将别人现成的拿来改或略改一下,占为己有,那就更快了。

我们先做个小试验,知道如何得到新的线型,打开记事本将以下内容复制到其中,保存在任何位置后将其改重命名为ABC.lin(只要.lin不变,想存什名字都可以):

*符号线A
A,20,-1,["H",STANDARD,S=1,R=0,X=0.4,Y=-0.4],-3
*符号线B
A,20,-1,["P W",STANDARD,S=1,R=0,X=0,Y=-0.4],-3
*符号线C
A,20,-1,["AutoCAD",STANDARD,S=1,R=0,X=0,Y=-0.4],-6
*符号线1
A,20,-2,["□",STANDARD,S=1,R=0,X=0,Y=-0.4],-3
*符号线2
A,20,-2,["☆",STANDARD,S=1,R=0,X=0,Y=-0.4],-3
*符号线3
A,20,-2,["■",STANDARD,S=1,R=0,X=0,Y=-0.4],-3



打开AutoCAD,在加载线型处,点“加载”找到刚才保存的文件ABC.lin,同时加载以上六个线型,在图中任选一根线型,改为以上不同名称的线型,如显示不当时在调节一下“线型比例”即可。这样你就有了一个自己的线型。
相同的道理,如你看中某个程序中的有关线型,只要找到其安装文件夹,再用“搜索”,在文件名输入框中输入:*.lin,即马上找出这个文件夹中的几个线型文件(一般只有一个最多有两个),分别打开,找到文件中带*号的那行及下一行(此为一个完整的线型),复制到你自己可以保存带走的线型文件中,这样这些线型从此你就随时可以使用了。

以上为简单线型的复制为己有的方法,如果大家对此感兴趣,接下来我在讲如何取出复杂线型为己有的方法。

[ 本帖最后由 rq28 于 2009-1-28 11:44 编辑 ]

1192264296711.GIF


1192264296789.gif

免费打赏
施工cad
2007年12月18日 13:25:16
12楼
//何人强/20050608/于曲靖双友钢铁厂
//051009于曲靖双友钢铁厂,在对话框中增加文字大小选项,并与标注各系统变量相联系
//;;;060123-25于师宗民科二号高炉工程工地,在对话框中增加幻灯显示(共调用29幅幻灯片,分两处显示),并对原布局略有调整
crtkK : dialog{
label="钢构CAD---插 入 图 框";

:row{//其下为水平排列
:boxed_radio_column{ // : radio_row {//无加框按钮行
label=" ";key="TKZT";
:radio_button{label=" A 0";key="A0";}
:radio_button{label=" A 1";key="A1";}
:radio_button{label=" A 2";key="A2";}
:radio_button{label=" A 3";key="A3";}
:radio_button{label=" A 4";key="A4";}
:radio_button{label="机电箭头";key="JD";}
:radio_button{label="了解程序";key="LJ";}

:boxed_column{
label="出 图 比 例 ";key="SRBL";
:text { key="blvz";}//可变的文字对象
:edit_box {//编辑框是允许用户在其中输入或编辑单行文字的控件。
label= "1 :";//编辑框左边的名称
key="CTBL" ;//指定一个 ASCII 名称,即为行数后的文本框指定一个代码
edit_width=6 ;//以平均字符宽度为单位指定 edit_box 控件中编辑框或输入框的文本区宽度。
}//截面长编辑框完,以下编辑框类同
:popup_list{ //比例下拉选单
key="popang";
edit_width=9;
}
}
}
:boxed_radio_column{
label=" ";key="BLZT";
:row{//其下为水平排列
:boxed_column{//在比例状态下设置为列
label=" 比 例 状 态 ";
:radio_button{label="已经 确定"; key="YJQD";}
spacer_1 ;//加空行--()
:radio_button{label="图中 量取"; key="CTZLQ";}
}

:boxed_column{
label="图 框 横 竖";key="TKHS";
:radio_button{label="横 向"; key="HXTK";}
:radio_button{label="竖 向"; key="SXTK";}
}
}

:boxed_radio_row{
label=" 图 标 栏 的 选 用 ";key="SFCRTBL";
//:toggle { label= " 插 入"; key="CZTBL" ;}//注:因打勾选框不能单击启动子程序,因配合幻灯故改用单选钮
:radio_button{label="默 认";key="CZTBL-1";}
:radio_button{label="自定义图标栏";key="CZTBL-2";}
}


:image {//幻灯显示框
key = "kimage";
color = -2 ;//背景色:1白2黑3蓝4白5灰6白7红8灰9白10蓝
width = 30;//框宽,,,背景色在LISP中也设置,但均以黑色为妥
aspect_ratio = 1;//高宽比,但也会被其它控件拉长或拉高
}
}
}

:row{//其下为水平排列
:boxed_radio_row {//加框按钮行// : radio_row {//无加框按钮行
label=" 标 注 文 字 大 小 m m ";key="VZDX";
:radio_button{label="2";key="XVZ";}
:radio_button{label="2.5";key="ZVZ";}
:radio_button{label="3.5";key="DVZ";}
:radio_button{label="5";key="JDVZ";}
:radio_button{label="7";key="TDVZ";}
}
:image {//幻灯显示框
key = "kimage-JT";//显示标注箭头大小幻灯
color = -2 ;//背景色:1白2黑3蓝4白5灰6白7红8灰9白10蓝
width = 20;//框宽,,,背景色在LISP中也设置,但均以黑色为妥
aspect_ratio = 0.3;//高宽比,但也会被其它控件拉长或拉高
}
}

:boxed_column{ //组框行
label="";
:concatenation{ //水平群集连结
:text_part {label="";} //纯文字显示
:text {width=50;//框宽
key="t_text";} //可变的文字对象3
}
spacer_1 ;//加空行--()
:text {width=50;//框宽
key="t_text-11";} //可变的文字对象3
spacer_1 ;//加空行--()
}
spacer_1 ;//加空行--()

:row{//其下为水平排列
ok_cancel;//确定和取消按钮

: button {//自定义一个按钮
key = "E_mail";//退出与确定的区别:确定为key = "accept";
label = "关 于";
fixed_width = true;//使按钮外框的宽度收缩到恰好可以容纳其内部的文字
alignment = centered;//使按钮居中放置
}
}

}
回复
施工cad
2007年12月18日 13:35:47
13楼
《钢构CAD》插入图框程序实例
LISP 源代码

;|
25、TT :插入图框

注:改配为 DCL 文件后,部分子程序名称已变更,有的注释处可能未改过来
本程序中子程序及相互关系:
0,TT 主程序中所含子程序(按调用先后排列)::1,(TKCR);
1,(TKCR);图框插入---子程序;本项所含子程序(按调用先后排列)::2,(QDSJZCX);4,(HTKJTBL);3,(bzsysz);
2,(QDSJZCX);调入:取得时间子程序 QDSJZCX ;该子程序不在本程序中
3,(bzsysz);标注式样设置 bzsysz ---子程序
4,(HTKJTBL);画图框及图标栏---子程序;本项所含子程序(按调用先后排列)::5,(CRTBL);
5,(CRTBL);插入图标栏-----子程序;本项所含子程序(按调用先后排列)::6,(BZBLSZ);
6,(BZBLSZ);标注变量设置----子程序;本项所含子程序(按调用先后排列)::3,(bzsysz);
7,(GGCAD_TT070518);获取保存在电脑中的值的子程序 用于两种图标栏的调用

;;;点击以下网址:
;;;http://hrq.1028.blog.163.com
;;;进入作者博客网页,查看《钢构CAD》最新版本下载情况

|;
(defun c:TT(/;本程序所用的全部自变量<但有关日期变量在其它程序中亦同用,故亦会成为全局变量>:
WP PPD N N2 N3 P TF P1 P2 L1 CZTBL CTBL X Y TFHS DQBZ
DQTC TXT-1 N-1 N--1 BGTXT N-N dcl_id aaaa A01234-HS-YW TBL-YW ZG
NS NYR-1 NYR-2 NYR-3 NYR-4 TB-1 TB-2 TB-3 TB-4 TB-5
TXT-TB-2 TXT-TB-3 ;写入程序定义的日期 , 比例 , 图幅
t_text-A ;对话框中显示的日期内容
);无 WP 自变量时,则 WP=Y 会一直保存下去给下一回使用,导致按取消按钮时也同样插入图框
;;; 调入对话框程序:
(setvar "cmdecho" 0);防止命令执行过程的显示
(setq popang_list ’("1" "2" "5" "10" "20" "25" "30" "50" "60" "80" "100" "150" "200" "250" "300" "400" "500" "1000" "1500" "2000" "2500" "3000"))

(GGCAD_TT070518);获取保存在电脑中的值的子程序

(ABCD-050612);调用 ABCD-050612 子程序
(prin1) ;
)
(DEFUN ABCD-050612 ()
(setq DQBZ (getvar "OSMODE"));获取当前捕捉值 *****2-1
(setq dcl_id (load_dialog "7-1-TT")) ;加载 "7-1-TT" DCL文件
(new_dialog "crtkK" dcl_id);激活 DCL 对话框画面, crtk 为 TT-060125 文件中的一个程序名

(QDSJZCX);调入:取得时间子程序 QDSJZCX
(SETQ t_text-A(STRCAT "2003 年11月 28 日 ~ "NYR-1 NYR-2 " 年 " NYR-3 " 月 " NYR-4 " 日( "A-060327")"));将多个字符组成一个带变量的图层名
;将日期文字提到最前,是因为启动程序时默认激活的单选按钮中要调用 日期文字,如将上行放在后则会出函数错误

(IF (= A01234-060217 NIL);全局变量 A01234-060217 为空时
(set_tile "A3" "1");,默认 A3 单选按钮激活
(set_tile A01234-060217 "1");否则全局变量 A01234-060217 单选按钮激活
)
(IF (= TF01234-060217 NIL);全局变量 TF01234-060217 为空时
(SETQ TF "3");默认图幅为 A3
(SETQ TF TF01234-060217);否则图幅为全局变量 TF01234-060217
)
(IF (= A01234-060217 NIL);全局变量 A01234-060217 为空时
(SETQ A01234-060217 "A3");默认图幅大小为 A3 ,此处用于幻灯显示
(SETQ A01234-060217 A01234-060217);否则幅大小为 A01234-060217 ,此处用于幻灯显示
)
(IF (= BZVZDX-XZDJT-060217 NIL);全局变量 BZVZDX-XZDJT-060217 为空时
(set_tile "ZVZ" "1");默认标注文字第 3 项 ZVZ 单选按钮激活,文字大小为 第 3 项 2.5 高 项数是从0计
(set_tile BZVZDX-XZDJT-060217 "1");否则单选按钮 BZVZDX-XZDJT-060217 激活
)
(IF (= BZVZDX-060217 NIL);全局变量 BZVZDX-060217 为空时
(SETQ BZVZDX-060217 2.5);默认标注文字大小为 第 3 项 2.5 高
(SETQ BZVZDX-060217 BZVZDX-060217);否则标注文字高度为 BZVZDX-060217
)
(set_tile "YJQD" "1");默认 YJQD (已经确定)单选按钮激活

(IF (= E_070518 "Z" );当保存在电脑中的 (= E_070518 "Z" ) 时
(progn
(set_tile "CZTBL-2" "1");无图标栏单选按钮激活
(SETQ TBL-YW "W")
)
(progn
(set_tile "CZTBL-1" "1");有图标栏单选按钮激活
(SETQ TBL-YW "Y");默认图标栏有,此处用于幻灯显示
)
)

(IF (= TF-HS-A-060217 NIL);全局变量 TF-HS-A-060217 为空时
(set_tile "HXTK" "1");默认 HXTK (横向图框)单选按钮激活
(set_tile TF-HS-A-060217 "1");否则 TF-HS-A-060217 单选按钮激活
)
(IF (= TF-HS-060217 NIL);全局变量 TF-HS-060217 为空时
(SETQ TF-HS-060217 "H");为空时默认图幅横向,此处还用于幻灯显示,一值两用
(SETQ TF-HS-060217 TF-HS-060217);不为空时则图幅横竖为 TF-HS-060217
)
回复
施工cad
2007年12月18日 13:38:15
14楼
;;;此部分为专门用于下拉选框的两个子程序,不能将其放于大子程序 ABCD 内
;;; 下行设定显示下拉框的数值
(show_list-060217 "popang" popang_list); 用子程序 show_list-060217 在下拉按钮 popang 处显示多个数值popang_list
(action_tile "popang" "(sub_popang-060221 $value)");当点击下拉钮时调用子程序 sub_popang-060221 ,即将下拉框的数传给输入框,不点则不执行
;;;上行子程序 sub_popang-060221 中已明确将下拉值传给比例输入框 "CTBL"
;;; 下两行设定下拉框中显示和执行第十个值:
(set_tile "popang" "10");set_tile 为对话框控件设置值; "popang" 为比例下拉单的 KEY 值,此处默认显示第十个数
(sub_popang-060221 "10");用子程序 sub_popang-060221 将第十个值100(从零起计),此处默认执行第十个数
;;;////////////////////////////////////////////////////////////
(IF (/= CTBL-060221 NIL);当不是第一次用 TT 程序即 CTBL-060221 不为空时
(set_tile "CTBL" CTBL-060221) ;比例输入框的显示值,即上次输入的比例值
);此式应在下拉显示之后,否则会以下拉值为主显示
(action_tile "CTBL" "(setq CTBL $value)");取得 CTBL 出图比例 CTBL 输入框中的当前值,无此行则手工输入无效

(IF (= CTBL-060221 NIL);当第一次用 TT 程序即 CTBL-060221 为空时
(set_tile "blvz" "首 次 输 入");头次在输入比例处显示文字
(set_tile "blvz" "再 次 修 改");以后在输入比例处显示文字
)

;;以下由单选激活各子程序:
(action_tile "A0" "(DYZCX-A0-060217)");点 A0 (key 值)单选按钮时执行子程序 DYZCX-A0 ,不点则不执行
(action_tile "A1" "(DYZCX-A1-060217)")
(action_tile "A2" "(DYZCX-A2-060217)")
(action_tile "A3" "(DYZCX-A3-060217)")
(action_tile "A4" "(DYZCX-A4-060217)")
(action_tile "JD" "(DYZCX-JD-060217)");机电
(action_tile "LJ" "(DYZCX-LJ-060217)");了解
(action_tile "YJQD" "(DYZCX-YJQD-060217)");已经确定
(action_tile "CZTBL-1" "(DYZCX-CZTBL-1-060217)");插入图标栏-1
(action_tile "CZTBL-2" "(DYZCX-CZTBL-2-060217)");插入图标栏-2
(action_tile "XVZ" "(VZDX-X-060217)");小文字
(action_tile "ZVZ" "(VZDX-Z-060217)");中文字
(action_tile "DVZ" "(VZDX-D-060217)");大文字
(action_tile "JDVZ" "(VZDX-JD-060217)");加大文字
(action_tile "TDVZ" "(VZDX-TD-060217)");特大文字

(DYZCX-YJQD-060217);无条件执行已经确定子程序
(action_tile "CTZLQ" "(DYZCX-CTZLQ-060217)");从图中量取
(action_tile "HXTK" "(DYZCX-HXTK-060217)");横向图框
;;;(DYZCX-HXTK-060217);
(IF (= TF-HS-060217 "H");全局变量 TF-HS 为 "H"时
(DYZCX-HXTK-060217);执行默认为横向图框
(DYZCX-SXTK-060217);否则执行竖向图框
)
(action_tile "SXTK" "(DYZCX-SXTK-060217)")
(set_tile "t_text" "自 动 配 套 设 置 或 更 新 多 个 标 注 样 式");此式要在上各行中无条件执行完各个子程序之后,在可变显文字处提供一个预先显示
(set_tile "t_text-11" t_text-A) ;将日期文字提到最前,是因为启动程序时默认激活的单选按钮中要调用 日期文字,如将上行放在后则会出函数错误
(action_tile "E_mail" "(Herenqiang-E_mail)");显示关于 钢构CAD 说明共享子程序

;;;////////////////////////////////////////////////////////////
;;;设置确定与取消按钮事件
(action_tile "accept" "(TT-050821)(done_dialog 1)");①为确定按钮设置执行自定义函数(TT-050821)(见下),并退出对话框(done_dialog)并赋值1
(action_tile "cancel" "(done_dialog -1)");为取消按钮设置退出对话框(done_dialog)并赋值-1
(setq TT-050821-1 (start_dialog));将确定按钮的赋值1再赋值
(unload_dialog dcl_id);卸载一个 DCL 文件
(if (= TT-050821-1 1);
(TTT-050821));②当变量 TT-050821-1 为 1 时执行制图主程序 TTT-050821 ,此处与①有异曲同工之用,均可用于执行确定主程序
;;;////////////////////////////////////////////////////////////
(if (= TT-050821-1 -1);当变量TT-050821-1为-1时执行 取消 按钮程序
(prompt "\n 插 入 图 框 程 序 已 取 消 ! "));
(princ);用于干净地结束序
);调用对话框程序完,类似于纯 LSP 的总程序完,在含有 DCL 的 LSP 中,这才告一段落
;;;////////////////////////////////////////////////////////////
;;;确定按钮按下时动作:
(defun TT-050821 ();即当按下确定按钮时将
(setq aaaa "此确定按钮的子程序在此无用,但可留作第二功能用,050821于曲靖")
;;;下行是专门用于下拉选框的,此句及此句的位置很重要,放于按下确定按钮下,切记切记,这是多多多多多次才碰来的!!!!!!
(setq CTBL (get_tile "CTBL"));;此行在此处专用于下拉数据取用,否则只显示不起作用
)
;;;此部分为专门用于下拉选框的两个子程序,不能将其放于大子程序 ABCD 内
(defun show_list-060217(key newlist)
(start_list key);start_list为开始处理选单对象
(mapcar ’add_list newlist);add_list 为加入字符串到选单对象
;mapcar 将作为本函数参数的一个或多个表的各个元素提供给指定函数进行求值,并将由求值结果构成的表返回
(end_list);结束处理选单对象
)
(defun sub_popang-060221(vvs);下拉选框中的数据赋予出图比例输入框 CTBL
(set_tile "CTBL" (nth (atoi vvs) popang_list));将多个下拉数值 popang_list 传给比例输入框 CTBL
)
回复
施工cad
2007年12月18日 13:40:46
15楼
(defun A01234-HS-YW-060124 ();点击各个单选按钮时判断插入那个幻灯片 的子程序
(SETQ A01234-HS-YW(STRCAT A01234-060217 TF-HS-060217 TBL-YW));将图幅大小 A0 与图幅横竖与图标栏有无进行三项文字组合,用于判断插入那个幻灯片
(COND;通过文字组合判断插入那一幅幻灯片 show_sld-060217 为显示幻灯的共享程序

((= A01234-HS-YW "A0HY")(show_sld-060217 "kimage" "renqiang(TT060124-A0HY)"));A0 图,横幅,有图标栏
((= A01234-HS-YW "A0HW")(show_sld-060217 "kimage" "renqiang(TT060124-A0HW)"));A0 图,横幅,无图标栏
((= A01234-HS-YW "A0SY")(show_sld-060217 "kimage" "renqiang(TT060124-A0SY)"));A0 图,竖幅,有图标栏
((= A01234-HS-YW "A0SW")(show_sld-060217 "kimage" "renqiang(TT060124-A0SW)"));A0 图,竖幅,无图标栏
;;;在 DCL 中的 kimage 处显示幻灯库 renqiang 中的幻灯片 TT060124-A1HY
((= A01234-HS-YW "A1HY")(show_sld-060217 "kimage" "renqiang(TT060124-A1HY)"))
((= A01234-HS-YW "A1HW")(show_sld-060217 "kimage" "renqiang(TT060124-A1HW)"))
((= A01234-HS-YW "A1SY")(show_sld-060217 "kimage" "renqiang(TT060124-A1SY)"))
((= A01234-HS-YW "A1SW")(show_sld-060217 "kimage" "renqiang(TT060124-A1SW)"))

((= A01234-HS-YW "A2HY")(show_sld-060217 "kimage" "renqiang(TT060124-A2HY)"))
((= A01234-HS-YW "A2HW")(show_sld-060217 "kimage" "renqiang(TT060124-A2HW)"))
((= A01234-HS-YW "A2SY")(show_sld-060217 "kimage" "renqiang(TT060124-A2SY)"))
((= A01234-HS-YW "A2SW")(show_sld-060217 "kimage" "renqiang(TT060124-A2SW)"))

((= A01234-HS-YW "A3HY")(show_sld-060217 "kimage" "renqiang(TT060124-A3HY)"))
((= A01234-HS-YW "A3HW")(show_sld-060217 "kimage" "renqiang(TT060124-A3HW)"))
((= A01234-HS-YW "A3SY")(show_sld-060217 "kimage" "renqiang(TT060124-A3SY)"))
((= A01234-HS-YW "A3SW")(show_sld-060217 "kimage" "renqiang(TT060124-A3SW)"))

((= A01234-HS-YW "A4HY")(show_sld-060217 "kimage" "renqiang(TT060124-A4HY)"))
((= A01234-HS-YW "A4HW")(show_sld-060217 "kimage" "renqiang(TT060124-A4HW)"))
((= A01234-HS-YW "A4SY")(show_sld-060217 "kimage" "renqiang(TT060124-A4SY)"))
((= A01234-HS-YW "A4SW")(show_sld-060217 "kimage" "renqiang(TT060124-A4SW)"))
);通过文字组合判断插入那一幅幻灯片完
(COND;在箭头大小幻灯处判断插入那一幅幻灯片
((= BZVZDX-060217 7)(show_sld-060217 "kimage-JT" "renqiang(TTJT060125-5)"));当文字大小为 5 时 ; 1.8版本开始改为 7
((= BZVZDX-060217 5)(show_sld-060217 "kimage-JT" "renqiang(TTJT060125-4)")); 1.8版本开始改为 5
((= BZVZDX-060217 3.5)(show_sld-060217 "kimage-JT" "renqiang(TTJT060125-3)")); 1.8版本开始改为 3.5
((= BZVZDX-060217 2.5)(show_sld-060217 "kimage-JT" "renqiang(TTJT060125-25)"));当文字大小为 2.5 时
((= BZVZDX-060217 2)(show_sld-060217 "kimage-JT" "renqiang(TTJT060125-2)"))
);在箭头大小幻灯处判断插入那一幅幻灯片完
;;;点击以下网址:
;;;http://hrq.1028.blog.163.com
;;;进入作者博客网页,查看《钢构CAD》最新版本下载情况
)

(defun DYZCX-A0-060217 ();当单选 A0 时配套的子程序
(mode_tile "BLZT" 0);BLZT (比例状态)项目启用,1为禁用,0为启用
(mode_tile "VZDX" 0);文字大小可用
(mode_tile "SRBL" 0);比例可用
(mode_tile "SFCRTBL" 0);图标栏可用
(set_tile "YJQD" "1");默认 YJQD (已经确定)单选按钮激活
(SETQ TF "0");赋予 TF "0"
(SETQ TF01234-060217 "0");专给全局变量用
(SETQ A01234-060217 "A0");全局变量用
(A01234-HS-YW-060124);点击各个单选按钮时判断插入那个幻灯片,此项要在(SETQ A01234-060217 "A0")的下行才行
(SETQ PPD "YJQD")
(set_tile "t_text" " A 0 图 纸 : 1188 × 841");显示可变文字
(set_tile "t_text-11" t_text-A);显示日期
)
(defun DYZCX-A1-060217 ();当单选 A1 时配套的子程序
(mode_tile "BLZT" 0);BLZT (比例状态)项目启用,1为禁用,0为启用
(mode_tile "VZDX" 0);文字大小可用
(mode_tile "SRBL" 0);比例可用
(mode_tile "SFCRTBL" 0);图标栏可用
(set_tile "YJQD" "1");默认 YJQD (已经确定)单选按钮激活
(SETQ TF "1")
(SETQ TF01234-060217 "1");专给全局变量用
(SETQ A01234-060217 "A1");全局变量用
(A01234-HS-YW-060124);点击各个单选按钮时判断插入那个幻灯片
(SETQ PPD "YJQD")
(set_tile "t_text" " A 1 图 纸 : 841 × 594");显示可变文字
(set_tile "t_text-11" t_text-A);显示日期
)
回复
施工cad
2007年12月18日 13:41:41
16楼
(defun DYZCX-A2-060217 ()
(mode_tile "BLZT" 0)
(mode_tile "VZDX" 0);文字大小可用
(mode_tile "SRBL" 0);比例可用
(mode_tile "SFCRTBL" 0);图标栏可用
(set_tile "YJQD" "1")
(SETQ TF "2")
(SETQ TF01234-060217 "2");专给全局变量用
(SETQ A01234-060217 "A2");全局变量用
(A01234-HS-YW-060124);点击各个单选按钮时判断插入那个幻灯片
(SETQ PPD "YJQD")
(set_tile "t_text" " A 2 图 纸 : 594 × 420")
(set_tile "t_text-11" t_text-A);显示日期
)
(defun DYZCX-A3-060217 ()
(mode_tile "BLZT" 0)
(mode_tile "VZDX" 0);文字大小可用
(mode_tile "SRBL" 0);比例可用
(mode_tile "SFCRTBL" 0);图标栏可用
(set_tile "YJQD" "1")
(SETQ TF "3")
(SETQ TF01234-060217 "3");专给全局变量用
(SETQ A01234-060217 "A3");全局变量用
(A01234-HS-YW-060124);点击各个单选按钮时判断插入那个幻灯片
(SETQ PPD "YJQD")
(set_tile "t_text" " A 3 图 纸 : 420 × 297")
(set_tile "t_text-11" t_text-A);显示日期
)
(defun DYZCX-A4-060217 ()
(mode_tile "BLZT" 0)
(set_tile "YJQD" "1")
(mode_tile "VZDX" 0);文字大小可用
(mode_tile "SRBL" 0);比例可用
(mode_tile "SFCRTBL" 0);图标栏可用
(SETQ TF "4")
(SETQ TF01234-060217 "4");专给全局变量用
(SETQ A01234-060217 "A4");全局变量用
(A01234-HS-YW-060124);点击各个单选按钮时判断插入那个幻灯片
(SETQ PPD "YJQD")
(set_tile "t_text" " A 4 图 纸 : 297 × 210")
(set_tile "t_text-11" t_text-A);显示日期
)

(defun DYZCX-JD-060217 ();机电状态
(show_sld-060217 "kimage" "renqiang(TT060124-JD)");在 kimage 位置显示幻灯片
(show_sld-060217 "kimage-JT" "renqiang(TTJT060125-GD)")
(mode_tile "BLZT" 1);BLZT (比例状态)项目禁用,1为禁用,0为启用
(mode_tile "VZDX" 1);文字大小不可用
(mode_tile "SRBL" 1);比例可用
(mode_tile "SFCRTBL" 1);图标栏可用
(SETQ TF "J")
(set_tile "t_text" "将图中所有 建 筑 标注样式改为 机 电 标注样式")
(set_tile "t_text-11" t_text-A);显示日期
)
(defun DYZCX-LJ-060217 ();了解状态
(show_sld-060217 "kimage" "renqiang(TT060124-LJ)");在 kimage 位置显示幻灯片
(show_sld-060217 "kimage-JT" "renqiang(TTJT060125-GD)")
(mode_tile "BLZT" 1);BLZT (比例状态)项目禁用,1为禁用,0为启用
(mode_tile "VZDX" 1);文字大小不可用
(mode_tile "SRBL" 1);比例可用
(mode_tile "SFCRTBL" 1);图标栏可用
(SETQ TF "A")
(set_tile "t_text" " 了 解 本 程 序")
(set_tile "t_text-11" t_text-A);显示日期
)
(defun DYZCX-YJQD-060217 ();已经确定子程序
(A01234-HS-YW-060124);点击各个单选按钮时判断插入那个幻灯片
(mode_tile "SRBL" 0);SRBL (输入比例)项目启用,1为禁用,0为启用
(mode_tile "TKHS" 0);TKHS (图框横竖)项目启用,1为禁用,0为启用
(mode_tile "SFCRTBL" 0);SFCRTBL(是否插入图标栏)项目启用,1为禁用,0为启用
(mode_tile "VZDX" 0);文字大小可用
(SETQ PPD "YJQD")
(set_tile "t_text" "先 确 定 比 例 再 出 图")
(set_tile "t_text-11" t_text-A);显示日期
)
(defun DYZCX-CTZLQ-060217 ();从图中量取(比例)子程序
(show_sld-060217 "kimage" "renqiang(TT060124-LQ)");在 kimage 位置显示幻灯片
(show_sld-060217 "kimage-JT" "renqiang(TTJT060125-GD)")
(mode_tile "SRBL" 1);SRBL (输入比例)项目禁用,1为禁用,0为启用
(mode_tile "TKHS" 1);TKHS (图框横竖)项目禁用,1为禁用,0为启用
(mode_tile "SFCRTBL" 1);SFCRTBL (是否插入图标栏)项目禁用,1为禁用,0为启用
(mode_tile "VZDX" 1);文字大小不可用
(SETQ PPD "CTZLQ")
(set_tile "t_text" "根据 图 纸 规 格 及 画 面 大 小 确定适宜比例")
(set_tile "t_text-11" t_text-A);显示日期
)
(defun DYZCX-CZTBL-1-060217 ();插入图标栏--- 默认图标栏
(SETQ TBL-YW "Y")
(A01234-HS-YW-060124);点击各个单选按钮时判断插入那个幻灯片
(set_tile "t_text" "默 认 的 图 标 栏 ( 自动写入日期比例图幅 )")
(set_tile "t_text-11" t_text-A);显示日期

(vl-mkdir "C:\\Program Files\\GGCAD061222");在 c:\\Program Files 中创建文件夹 GGCAD061222 ,成功返回 T 当已有此文件夹时则不创建 返回 NIL
;;;(setq A_070518 "C:\\Program Files\\GGCAD061222\\GGCADSZ_TT.TXT")
;在 GGCAD_TT070518 子程序中已赋值 (setq A_070518 "C:\\Program Files\\GGCAD061222\\GGCADSZ_TT.TXT") 故上行停用
(setq B_070518 (open A_070518 "w"));按覆盖模式 "w" 写入指定内容
(setq C_070518 "");在 A_070518 文件中写入 ""
(write-line C_070518 B_070518);在 B_070518 文件最后换行写入 C_070518

(setq B_070518 (open A_070518 "A"));模式"A"为写在已有文件之后
(QDSJZCX);调入:取得时间子程序 QDSJZCX
(SETQ VZ070519-1 (STRCAT NYR-1 NYR-2 " 年 " NYR-3 " 月 " NYR-4 " 日 "));将多个字符组成一个字符
(write-line "<<< " 钢构CAD" 图标栏设置文件,请勿更改或删除 >>>" B_070518)
(write-line VZ070519-1 B_070518)

)
回复
施工cad
2007年12月18日 13:42:41
17楼
(defun DYZCX-CZTBL-2-060217 ();插入图标栏--- 自定义图标栏
(SETQ TBL-YW "W")
(A01234-HS-YW-060124);点击各个单选按钮时判断插入那个幻灯片
(set_tile "t_text" "自 定 义 图 标 栏 ( 其大小内容可任意设置 )")
(set_tile "t_text-11" t_text-A);显示日期

(vl-mkdir "C:\\Program Files\\GGCAD061222");在 c:\\Program Files 中创建文件夹 GGCAD061222 ,成功返回 T 当已有此文件夹时则不创建 返回 NIL
;;;(setq A_070518 "C:\\Program Files\\GGCAD061222\\GGCADSZ_TT.TXT")
;在 GGCAD_TT070518 子程序中已赋值 (setq A_070518 "C:\\Program Files\\GGCAD061222\\GGCADSZ_TT.TXT") 故上行停用
(setq B_070518 (open A_070518 "w"));按覆盖模式 "w" 写入指定内容
(setq C_070518 "Z");在 A_070518 文件中写入 "Z"
(write-line C_070518 B_070518);在 B_070518 文件最后换行写入 C_070518

(setq B_070518 (open A_070518 "A"));模式"A"为写在已有文件之后
(QDSJZCX);调入:取得时间子程序 QDSJZCX
(SETQ VZ070519-1 (STRCAT NYR-1 NYR-2 " 年 " NYR-3 " 月 " NYR-4 " 日 "));将多个字符组成一个字符
(write-line "<<< " 钢构CAD" 图标栏设置文件,请勿更改或删除 >>>" B_070518)
(write-line VZ070519-1 B_070518)

)

(defun DYZCX-HXTK-060217 ();
(SETQ TF-HS-060217 "H");全局变量
(SETQ TF-HS-A-060217 "HXTK");专用于全局变量
(A01234-HS-YW-060124);点击各个单选按钮时判断插入那个幻灯片
(SETQ TFHS "5")
(set_tile "t_text" " 图 框 横 向 布 置")
(set_tile "t_text-11" t_text-A);显示日期
)
(defun DYZCX-SXTK-060217 ();
(SETQ TF-HS-060217 "S");全局变量
(SETQ TF-HS-A-060217 "SXTK");专用于全局变量
(A01234-HS-YW-060124);点击各个单选按钮时判断插入那个幻灯片
(SETQ TFHS "6")
(set_tile "t_text" " 图 框 竖 向 布 置")
(set_tile "t_text-11" t_text-A);显示日期
);此子程序仅起改变 TFHS 的值和显示可变文字的作用

;;;051009 用于标注文字大小的单选按钮子程序:
(defun VZDX-X-060217 ();
(SETQ BZVZDX-060217 2)
(SETQ BZVZDX-XZDJT-060217 "XVZ");专用于全局变量
(set_tile "t_text" " 标 注 文 字 高 度 为 2 m m");显示可变文字
(set_tile "t_text-11" "插 入 空 图 框 即 可 变 更 所 有 标 注 文 字 大 小")
(A01234-HS-YW-060124);点击各个单选按钮时判断插入那个幻灯片
)
(defun VZDX-Z-060217 ();
(SETQ BZVZDX-060217 2.5)
(SETQ BZVZDX-XZDJT-060217 "ZVZ");专用于全局变量
(set_tile "t_text" " 标 注 文 字 高 度 为 2.5 m m");显示可变文字
(set_tile "t_text-11" "插 入 空 图 框 即 可 变 更 所 有 标 注 文 字 大 小")
(A01234-HS-YW-060124);点击各个单选按钮时判断插入那个幻灯片
)
回复
施工cad
2007年12月18日 13:43:29
18楼
(defun VZDX-D-060217 ();
(set_tile "t_text" " 标 注 文 字 高 度 为 3.5 m m");显示可变文字
(set_tile "t_text-11" "插 入 空 图 框 即 可 变 更 所 有 标 注 文 字 大 小")
(SETQ BZVZDX-060217 3.5)
(SETQ BZVZDX-XZDJT-060217 "DVZ");专用于全局变量
(A01234-HS-YW-060124);点击各个单选按钮时判断插入那个幻灯片
)
(defun VZDX-JD-060217 ();
(SETQ BZVZDX-060217 5)
(SETQ BZVZDX-XZDJT-060217 "JDVZ");专用于全局变量
(set_tile "t_text" " 标 注 文 字 高 度 为 5 m m");显示可变文字
(set_tile "t_text-11" "插 入 空 图 框 即 可 变 更 所 有 标 注 文 字 大 小")
(A01234-HS-YW-060124);点击各个单选按钮时判断插入那个幻灯片
)
(defun VZDX-TD-060217 ();
(SETQ BZVZDX-060217 7)
(SETQ BZVZDX-XZDJT-060217 "TDVZ");专用于全局变量
(set_tile "t_text" " 标 注 文 字 高 度 为 7 m m");显示可变文字
(set_tile "t_text-11" "插 入 空 图 框 即 可 变 更 所 有 标 注 文 字 大 小")
(A01234-HS-YW-060124);点击各个单选按钮时判断插入那个幻灯片
)
;;;插入图框主程序:
(defun TTT-050821 ();其下含: (TKCR-060217);图框插入---子程序;
;在此 TTT 中不能设置变量 PPD ,否则会导致插入图框或量取比例不能分别运行,亦不能设置 WP 等变量
(SETQ N--1 CTBL);CTB L(出图比例)
(setq N (atoi N--1));将字变数给 N

(setq CTBL-060221 N--1);将出图比例的字赋予全局变量 CTBL-060221

(SETQ DQTC (getvar "CLAYER"));;用系统变量CLAYER获取当前图层----1-----此代码很有用
(TKCR-060217);图框插入---子程序
(SETVAR "CLAYER" DQTC);用系统变量还原当前图层------------------2-----此代码很有用
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(PRINC "\n 程序编制: 云南十四冶-----何人强,");
(PRINC " 2003年11月( 宜良 )-----2007年05月( 成都大邑 )");无\n时本行即与上行同显示在同一行上,要插入变量时,则前后不加双引号即可显变量值.
;;;(PRINC "\n 当前图幅A" )
(IF (= PPD "CTZLQ") (PRINC "\n 计划用图幅A" )(PRINC "\n 当前图幅A" ));当点取量取比例时显示前项内容,否则显示后项内容
(PRINC TF );显示图幅变量,显变量时无双引号
(IF (= PPD "CTZLQ") (PRINC " , 量取范围适宜比例1:" ) (PRINC " , 出图比例1:" ));当点取量取比例时显示前项内容,否则显示后项内容
(PRINC N-1 );显示比例变量,无\n故与上行同显示在一行
;;;(SETVAR "OSMODE" 1215);打开捕捉,在主程序最后完时才打开,是不至于影响文字书写定位
(SETVAR "OSMODE" DQBZ) ; 还原当前捕捉值 *****2-2
(princ));主程序完
回复
施工cad
2007年12月18日 13:44:19
19楼
(DEFUN TKCR-060217 ();图框插入---子程序,其下含: (HTKJTBL-060217);执行画图框及图标栏---子程序;(bzsysz-060217);标注式样设置 bzsysz ---子程序
(PRINC "\n 注:不宜将不同〖主打〗比例的多张图纸归笼在同一图面内" );
(SETQ TXT-1(STRCAT "\n 钢构CAD-" NYR-2 NYR-3 NYR-4));将多个字符组成一个带变量的图层名
(command "layer" "m" TXT-1 "c" "1" TXT-1 "LW" "0.6" TXT-1 "");3;图层名用变量时不加双引号
;;; -----------------------------------------
;;;点击以下网址:
;;;http://hrq.1028.blog.163.com
;;;进入作者博客网页,查看《钢构CAD》最新版本下载情况

(COND;;; 多项判断开始:
((= TF "0");当 TF 为0时
(HTKJTBL-060217);执行画图框及图标栏---子程序
)
((= TF "1");当 TF 为1时
(HTKJTBL-060217);执行画图框及图标栏---子程序
)
((= TF "2");当 TF 为2时
(HTKJTBL-060217);执行画图框及图标栏---子程序
)
((= TF "3");当 TF 为3时
(HTKJTBL-060217);执行画图框及图标栏---子程序
)
((= TF "4");当 TF 为4时
(HTKJTBL-060217);执行画图框及图标栏---子程序
)
;;;了解图纸尺寸:
((= TF "A");当 TF 为 A 时
;;; 在屏幕上显示 CAD 信息框,由回车或 \n 进行换行处理,其中 N 不能为大写,只能为小写
(alert "1、自动绘制精确打印边框------------------比例出图名付其实
2、自动设置多个标注样式------------------满足各种大样标注
3、可切换插入自定义的图标栏 (一台电脑上只需设置一次)
4、自动在默认图标栏中填入日期、比例、图幅
5、自动变换标注箭头式样------------------建筑与机电间互换
6、自动调整标注文字大小------------------文字大小自动刷新
7、自动调整虚线及轴线------------------线型随比例自动刷新
-----------------------------------------------------------------------------
自动调整标注文字大小 :\n 在当前图中所用比例之下, 选择标注文字大小后\n 在空图处重新插入一次图框\n即可对程序自动生成的各个标注样式进行整体调整
-----------------------------------------------------------------------------
允许加长 0~3 号图的长边,可加长 1/8 长边及其倍数\n默认图标栏 : 180×50 ( A3、A4 纸用 90×25 )\n装订边宽 25,其余三边均宽 10
自定义的图标栏在各种图幅中,大小均是固定的
( A3、A4 按图纸空间缩放打印时,不宜设置装订线)
-----------------------------------------------------------------------------
本图框主要适配 : hp designjet 100 大幅面打印机
-----------------------------------------------------------------------------
注 : 本程序不宜将不同〖主打〗比例的\n 多张图纸归笼在同一图面内
-----------------------------------------------------------------------------
标注样式 五 用于放大五倍的大样标注,依此类推
-----------------------------------------------------------------------------
程序调用默认的"我的图标栏"图中,除程序自动填入的
相关内容及位置不可变更外,其余内容,均可由不同用户更改
-----------------------------------------------------------------------------
自定义的"自定义图标栏"可任意按 1 比 1 设定内容
但要将其图标栏的右下角点移动到坐标 0,0 处
钢构CAD中的自定义值均保存在电脑中,
各个CAD版本均共享此设置,此值不受CAD删除影响
-----------------------------------------------------------------------------

程序编制 : 云南十四冶 ----- 何 人 强

2003年11月28日 ~ 2007年05月18日
云南 宜良 ~ 师宗 ~ 东川 ~ 曲靖 ~ 师宗 ~ 成都大邑");显示 CAD 信息框到此完

;;;因了解图纸尺寸时无比例 N 的输入,故将标注变量设置改为单独子程序,而当(= TF "A")不调用即可
);了解图纸尺寸
(IF (= TF "J" );此项不运行标注变量设置----子程序,仅起将标注箭头改为实心闭合,不运行此项时则改为建筑类
(PROGN;
(SETVAR "DIMBLK" ".");样式设为实心闭合
;;; 在将标注箭头设为实心闭合后,再建一次标注式样:
(SETQ BGTXT (getvar "DIMTXT"));取得当前标注文字高度的系统变量-----041216增加
(SETVAR "DIMASZ" BGTXT);将箭头大小设为文字高度-----041216增加
(bzsysz-060217);标注式样设置 bzsysz ---子程序
));改标注式样为实心闭合完
);多项判断完
);;图框插入---子程序---完
回复
施工cad
2007年12月18日 13:45:06
20楼
(defun bzsysz-060217();标注式样设置 bzsysz ---子程序
(SETVAR "DIMLFAC" 0.5);设置主单位下测量比例因子为0.5
(command "dim1" "save" "二" "Y");;;新建标注样式"二",由于再次使用本命令时会导致标注名重复
(SETVAR "DIMLFAC" 0.25);;;;,故增设"Y"可适应首次或再次使用本命令
(command "dim1" "save" "四" "Y")
(SETVAR "DIMLFAC" 0.2)
(command "dim1" "save" "五" "Y")
(SETVAR "DIMLFAC" 0.1)
(command "dim1" "save" "十" "Y")
(SETVAR "DIMLFAC" 1)
(command "dim1" "save" "一" "Y")
);标注式样设置 bzsysz ---子程序完


(DEFUN HTKJTBL-060217();根据 TF 赋值执行子程序
;;; (if;此式与下式效果相同
;;; (= PPD "YJQD")
;;; (HTKJTBL-1-060217)
;;; (HTKJTBL-2-060217)
;;; )
(cond;此式与上式效果相同
((= PPD "YJQD")(HTKJTBL-1-060217));当变量 PPD 等于 YJQD (已经确定)时执行 HTKJTBL-1
((= PPD "CTZLQ")(HTKJTBL-2-060217));当变量 PPD 等于 CTZLQ (从图中量取)时执行 HTKJTBL-2
)
)
(DEFUN HTKJTBL-1-060217();画图框及图标栏---子程序(其下含:(CRTBL);第二项内容,插入图标栏子程序(其下含:(BZBLSZ-060217);标注变量设置----子程序))
(SETQ N-N N);将 N 赋予 N-N 供插入图标放大比例用及标注系统变量用
(setq p (getpoint "\n 请点取图框左下角")) ;
(SETVAR "OSMODE" 0);关闭捕捉
(IF (= TFHS "5");当为横向图框时执行下式,否则执行下下式
(cond ;循环判断图幅后画横向矩形多段线
((= TF "0")(command"RECTANG" P "@1188,840" ));
((= TF "1")(command"RECTANG" P "@823.98,583.95" ));
((= TF "2")(command"RECTANG" P "@576.92,409.96" ));
((= TF "3")(command"RECTANG" P "@402.93,286.94" ));
((= TF "4")(command"RECTANG" P "@279.99,199.98" ));
);循环画横向矩形多段线完
(cond ;循环判断图幅后画竖向矩形多段线
((= TF "0")(command"RECTANG" P "@840,1188" ));
((= TF "1")(command"RECTANG" P "@583.95,823.98" ));
((= TF "2")(command"RECTANG" P "@409.96,576.92" ));
((= TF "3")(command"RECTANG" P "@286.94,402.93" ));
((= TF "4")(command"RECTANG" P "@199.98,279.99" ));
);循环画竖向矩形多段线完
)
(command"SCALE" P "" P N ) ;将矩形放大 N 倍
(SETQ N-1 N);因设置线型比例后放大系数 N 的影响,故另换一个字符 N-1 作为显示比例用
(setq N-1 (rtos N-1 2 0));将比例系数 N 保留到小数点后0位数

;;;(if (= TBL-YW "Y");判断当有图标栏时时插入图标栏(SETQ TBL-YW "Y")
;;;(CRTBL-1-060217);插入图标栏子程序
;;;)

(GGCAD_TT070518);获取保存在电脑中的值的子程序
(CRTBL-1-060217);插入图标栏子程序

(bzsysz-060217);标注式样设置 bzsysz ---子程序
(BZBLSZ-060217);标注变量设置----子程序
)


;通过 E_070518 来判断单项按钮是那个激活,而此值保存在 A_070518 中 , 这是一个关闭CAD之后还能保存的值
(DEFUN GGCAD_TT070518();获取保存在电脑中的值的子程序
(setq A_070518 "C:\\Program Files\\GGCAD061222\\GGCADSZ_TT.TXT");此赋值因程序开始即执行 GGCAD_TT070518 故其它处不再用此式赋值
;在 GGCAD_TT070518 子程序中已赋值 (setq A_070518 "C:\\Program Files\\GGCAD061222\\GGCADSZ_TT.TXT")
(setq D_070518 (open A_070518 "r"));读取文件 A_070518 若 A_070518 不存在,open 返回 nil。
(IF (/= D_070518 NIL)
(setq E_070518(read-line D_070518));读取 D_070518 文件中的第 1 行字符串 ;当为 "Z" 表示自定义,当为 "" 表示无(即用程序定义)
(setq E_070518 NIL)
))

(DEFUN HTKJTBL-2-060217();从图中量取比例的子程序
(setq p1 (getpoint "\n 点取图框长或<高>方向起点 ")) ;
(setq p2 (getpoint P1 "\n 点取图框长或<高>方向终点 ")) ;
(SETQ L1 (DISTANCE P1 P2 ));求得两点间距离
(cond ;循环判断图幅后由图纸长求出比例 N
((= TF "0")(SETQ N (/ L1 1188)));
((= TF "1")(SETQ N (/ L1 823.98)));
((= TF "2")(SETQ N (/ L1 576.92)));
((= TF "3")(SETQ N (/ L1 402.93)));
((= TF "4")(SETQ N (/ L1 279.99)));
);循环求比例完
(SETQ N-1 N);因设置线型比例后放大系数 N 的影响,故另换一个字符 N-1 作为显示比例用
(setq N-1 (rtos N-1 2 0));将比例系数 N 保留到小数点后0位数
)
回复
施工cad
2007年12月18日 13:46:46
21楼
(DEFUN CRTBL-1-060217();插入图标栏-----子程序(其下含:(BZBLSZ-060217);标注变量设置----子程序)
(IF (= TFHS "5");当为横向图框时执行下式,否则执行下下式
(cond ;根据图幅不同求横向图框水平长度 NS
((= TF "0")(SETQ NS (* N-N 1188.00)));
((= TF "1")(SETQ NS (* N-N 823.98)));
((= TF "2")(SETQ NS (* N-N 576.92)));
((= TF "3")(SETQ NS (* N-N 402.93)));
((= TF "4")(SETQ NS (* N-N 279.99)));
);循环求横向图框放大后水平长度 NS 完
(cond ;根据图幅不同求竖向图框水平长度 NS
((= TF "0")(SETQ NS (* N-N 840)));
((= TF "1")(SETQ NS (* N-N 583.95)));
((= TF "2")(SETQ NS (* N-N 409.96)));
((= TF "3")(SETQ NS (* N-N 286.94)));
((= TF "4")(SETQ NS (* N-N 199.98)));
);循环求竖向图框放大后水平长度NS完
)
(setq PP (polar P (DTR 0) NS)) ;求放大后的图框右下角点位 PP

(IF (/= E_070518 "Z");当不为 自定义时
(setq TBLPD0070518 "*我的图标栏")
(setq TBLPD0070518 "*自定义图标栏")
)


(IF (/= E_070518 "Z");当不为 自定义时
(COND ;根据图幅不同插入不同放大的图标栏-----"*我的图标栏"是将其分解-----"我的图标栏"是不分解
((= TF "0")(command "insert" TBLPD0070518 PP (* N-N 2)"" "" 0));插入"我的图标栏"到 PP 点后放大(* N-N 2)倍旋转0度
((= TF "1")(command "insert" TBLPD0070518 PP (* N-N 2)"" "" 0));插入"我的图标栏"到 PP 点后放大(* N-N 2)倍旋转0度
((= TF "2")(command "insert" TBLPD0070518 PP (* N-N 2)"" "" 0));插入"我的图标栏"到 PP 点后放大(* N-N 2)倍旋转0度
((= TF "3")(command "insert" TBLPD0070518 PP N-N"" "" 0));插入"我的图标栏"到 PP 点后放大 N-N 倍旋转0度
((= TF "4")(command "insert" TBLPD0070518 PP N-N"" "" 0));插入"我的图标栏"到 PP 点后放大 N-N 倍旋转0度
);插入不同放大的图标栏完
(COND ;根据图幅不同插入不同放大的图标栏-----"*自定义图标栏"是将其分解-----"自定义图标栏"是不分解
((= TF "0")(command "insert" TBLPD0070518 PP N-N"" "" 0));插入"自定义图标栏"到 PP 点后放大 N-N 倍旋转0度
((= TF "1")(command "insert" TBLPD0070518 PP N-N"" "" 0));插入"自定义图标栏"到 PP 点后放大 N-N 倍旋转0度
((= TF "2")(command "insert" TBLPD0070518 PP N-N"" "" 0));插入"自定义图标栏"到 PP 点点后放大 N-N 倍旋转0度
((= TF "3")(command "insert" TBLPD0070518 PP N-N"" "" 0));插入"自定义图标栏"到 PP 点后放大 N-N 倍旋转0度
((= TF "4")(command "insert" TBLPD0070518 PP N-N"" "" 0));插入"自定义图标栏"到 PP 点后放大 N-N 倍旋转0度
);插入不同放大的图标栏完
)
回复

相关推荐

APP内打开