钢构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:47:19
22楼
(IF (/= E_070518 "Z");当不为 自定义时 ,写入 日期 比例 图幅
(progn

(COND ;根据图幅不同求 TB-1 点位
((= TF "0")(SETQ TB-1 (polar PP (DTR 180) (* N-N 98))));
((= TF "1")(SETQ TB-1 (polar PP (DTR 180) (* N-N 98))));
((= TF "2")(SETQ TB-1 (polar PP (DTR 180) (* N-N 98))));
((= TF "3")(SETQ TB-1 (polar PP (DTR 180) (* N-N 49))));
((= TF "4")(SETQ TB-1 (polar PP (DTR 180) (* N-N 49))));
)
(COND ;根据图幅不同求 TB-2 点位
((= TF "0")(SETQ TB-2 (polar TB-1 (DTR 90) (* N-N 4))));
((= TF "1")(SETQ TB-2 (polar TB-1 (DTR 90) (* N-N 4))))
((= TF "2")(SETQ TB-2 (polar TB-1 (DTR 90) (* N-N 4))))
((= TF "3")(SETQ TB-2 (polar TB-1 (DTR 90) (* N-N 2))));
((= TF "4")(SETQ TB-2 (polar TB-1 (DTR 90) (* N-N 2))))
)
(COND ;根据图幅不同求 TB-3 点位
((= TF "0")(SETQ TB-3 (polar TB-1 (DTR 90) (* N-N 12))));
((= TF "1")(SETQ TB-3 (polar TB-1 (DTR 90) (* N-N 12))))
((= TF "2")(SETQ TB-3 (polar TB-1 (DTR 90) (* N-N 12))))
((= TF "3")(SETQ TB-3 (polar TB-1 (DTR 90) (* N-N 6))));
((= TF "4")(SETQ TB-3 (polar TB-1 (DTR 90) (* N-N 6))))
)
(COND ;根据图幅不同求 TB-4 点位
((= TF "0")(SETQ TB-4 (polar PP (DTR 90) (* N-N 28))));
((= TF "1")(SETQ TB-4 (polar PP (DTR 90) (* N-N 28))))
((= TF "2")(SETQ TB-4 (polar PP (DTR 90) (* N-N 28))))
((= TF "3")(SETQ TB-4 (polar PP (DTR 90) (* N-N 14))));
((= TF "4")(SETQ TB-4 (polar PP (DTR 90) (* N-N 14))))
)
(COND ;根据图幅不同求 TB-5 点位
((= TF "0")(SETQ TB-5 (polar TB-4 (DTR 180) (* N-N 6))));
((= TF "1")(SETQ TB-5 (polar TB-4 (DTR 180) (* N-N 6))))
((= TF "2")(SETQ TB-5 (polar TB-4 (DTR 180) (* N-N 6))))
((= TF "3")(SETQ TB-5 (polar TB-4 (DTR 180) (* N-N 3))));
((= TF "4")(SETQ TB-5 (polar TB-4 (DTR 180) (* N-N 3))))
)
(SETQ TXT-TB-2 (STRCAT NYR-2 NYR-3 NYR-4));日期文字内容---年月日
(SETQ TXT-TB-3 (STRCAT "1:" (rtos N-N 2 0)));比例内容---1: N-N ,保留小数点后零位数
(COND ;根据图幅不同文字高度 ZG
((= TF "0")(SETQ ZG(* N-N 4)));
((= TF "1")(SETQ ZG(* N-N 4)))
((= TF "2")(SETQ ZG(* N-N 4)))
((= TF "3")(SETQ ZG(* N-N 2)))
((= TF "4")(SETQ ZG(* N-N 2)))
)
;;;在写入文字前还原图层以使所写文字不在图框图层上
(SETVAR "CLAYER" DQTC);用系统变量还原当前图层------------------2-----此代码很有用


(command "TEXT" "J" "MC" TB-2 ZG "0" TXT-TB-2)
(command "TEXT" "J" "MC" TB-3 ZG "0" TXT-TB-3)
(COND ;根据图幅写入图幅大小,其字高取(* 0.75 ZG)
((= TF "0")(command "TEXT" "J" "MC" TB-5 (* 0.75 ZG) "0" "A0"));
((= TF "1")(command "TEXT" "J" "MC" TB-5 (* 0.75 ZG) "0" "A1"))
((= TF "2")(command "TEXT" "J" "MC" TB-5 (* 0.75 ZG) "0" "A2"))
((= TF "3")(command "TEXT" "J" "MC" TB-5 (* 0.75 ZG) "0" "A3"));
((= TF "4")(command "TEXT" "J" "MC" TB-5 (* 0.75 ZG) "0" "A4"))
)
))

(BZBLSZ-060217);标注变量设置----子程序
);插入图标栏-----子程序-----完
回复
施工cad
2007年12月18日 13:47:45
23楼
(DEFUN BZBLSZ-060217();标注变量设置-----子程序 (设置全局线型比例因子),;其下含标注式样设置 bzsysz ---子程序
;;;051008将标注文字高度改为可人工选择,并改与各变量相联系:
;;;通过系统变量设置标注内容:
;;;尺寸线:
(SETVAR "DIMLWD" 9);线宽为0.09
(SETVAR "DIMDLE" (/ (* N-N BZVZDX-060217) 2.00)) ;051008超出标记为文字高度的2分之一
(SETVAR "DIMDLI" (* N-N 5.00));此值传给其它程序用于出图比例,☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
;;;在插入图框程序中,将标注基线间距的系统变量固定为:当前比例的五倍
;;;基线间距(相邻行或列尺寸线之间距离),由于 DIMDLI 所做的更改不影响现有的非基线标注,故用此比例变量来传给其它程序用

;;; 尺寸界线:
(SETVAR "DIMLWE" 9);线宽为0.09
(SETVAR "DIMEXE" (/ (* N-N BZVZDX-060217) 2.00));051008超出尺寸线为文字高度的2分之一
(SETVAR "DIMEXO" (* (* N-N BZVZDX-060217) 1.500));051008起点偏移量为文字高度的1.5倍
;;; 箭头:
(SETVAR "DIMBLK" "_ARCHTICK");样式设为建筑标记 061212 后由"ARCHTICK" 在2007中改为 "_ARCHTICK"
(SETVAR "DIMASZ" (/ (* N-N BZVZDX-060217) 2.00));051008调整箭头大小为文字高度的2分之一
;;; 圆心标记:
(SETVAR "DIMCEN" (/ (* N-N BZVZDX-060217) 2.00));标记大小051008为文字高度的2分之一
(SETVAR "DIMTXT" (* N-N BZVZDX-060217));051008根据单选按钮确定标注文字大小
(SETVAR "DIMGAP" (/ (* N-N BZVZDX-060217) 3.0));051008标注文字从尺寸线偏移量文字高度的3分之一
;;; 主单位:
(SETVAR "DIMDEC" 0 );线性标注精度保留到小数点后0位数
(SETVAR "DIMADEC" 2 );角度标注精度留到小数点后2位数
(SETVAR "DIMDSEP" "." );小数点分隔为句点样式
;;;设置全局线型比例因子
;;;(SETVAR "LTSCALE" (* N-N 4)) 060927 改为 (* N-N 1)
(SETVAR "LTSCALE" (* N-N 1)) ;设置全局线型比例因子 (不能等于零)
;;; 设置调整选项中,当尺寸界限不足时,取先移出---文字---取2☆☆☆☆☆☆☆☆☆☆☆☆☆
(SETVAR "DIMATFIT" 2) ;这样在圆直径标注时,文字中圆内时会全显---050108于呈贡
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(SETQ N-1 N);因设置线型比例后放大系数 N 的影响,故另换一个字符 N-1 作为显示比例用
(setq N-1 (rtos N-1 2 0));将比例系数 N 保留到小数点后0位数
(bzsysz-060217);标注式样设置 bzsysz ---子程序
);标注变量设置----子程序 -----完
;|
;;;点击以下网址:
;;;http://hrq.1028.blog.163.com
;;;进入作者博客网页,查看《钢构CAD》最新版本下载情况

插入图框全部程序完-------------------------------------------------------------------
|;
回复
施工cad
2007年12月18日 13:56:29
24楼
相信这些内容,对学习开发的朋友可起到借鉴作用

[ 本帖最后由 rq28 于 2009-8-20 16:23 编辑 ]
回复
qianzhou
2007年12月21日 11:13:05
25楼
谢谢!真难得,下下来慢慢学习
回复
guoxiaoshan520
2007年12月22日 16:29:01
26楼
hao
回复
gys6327
2008年01月13日 21:22:14
27楼


真是太好了!
回复
sccdcy
2008年03月09日 09:53:16
28楼
精华,原创的精华,是晓东和明经上都难以见到的

关于对话框 DCL 及其控制 LISP 的源代码.

太精华了.
回复
huwg1230
2008年04月11日 10:43:37
29楼
如何才可以下载?请指点。我现在非常急!




让注册我也已经注册但是还是下不了!谁知道请赶快告诉我在此感谢!!!!
回复
fan66789789
2008年06月20日 15:47:49
30楼
大家留个联系方式,好联系
回复
atmayy
2008年06月21日 11:58:05
31楼
谢谢分享哦!!!!!!!!!!!!!!!
回复

相关推荐

APP内打开