关于读TXT配置文件的方式新建图层问题
本帖最后由 south 于 2023-8-28 20:27 编辑无意中翻到了这个贴子,这个创建图层的思路也方便,可自定义修改自己想要的图层。
有两点能否请大师帮忙改进一下:
1.该程序只能读取配置文件存放位置:D:\Personal\Desktop\layer_data.txt 的目录中文件,改成无此目录及文件时创建一个目录、文件(相当于生成一个默认模板一样)
2.加入字体样式与标注样式同时也创建
原贴地址在这里----->>>读TXT配置文件的方式新建图层 <<<-------
cad本身是可以导出一种las文件格式,这个文件可以用记事本打开。文件内容可以参考那个 本帖最后由 baoyizhu 于 2023-12-21 22:06 编辑
;读TXT配置文件的方式新建图层
(defun ge_xjtc (/ DATA FF STRSS)
(setvar "cmdecho" 0)
(command ".undo" "BE")
;加载线型
(defun loadltname ( lt / cm s1 )
(setq cm (getvar 'CMDECHO))
(Cond
((= (type lt) 'str)
(if (not (tblsearch "LTYPE" lt))
(vla-load (vla-get-Linetypes (vla-get-ActiveDocument (vlax-get-acad-object))) lt "acadiso.lin")
(progn (setvar 'CMDECHO 0)(vl-cmdf "-linetype" "load" lt (findfile "acadiso.lin") "Y" "")(setvar 'CMDECHO cm))
)
)
((= (type lt) 'list)(foreach s1 lt (loadltname s1)))
) t
)
(loadltname '("CENTER" "DASHDOT" "DASHED" "PHANTOM" "HIDDEN" "ZIGZAG"))
(setq FF (open "D:\\Program Files\\AutoCAD2021\\菲林设计助手\\layer_data.txt" "r"));;dat文件路径
(read-line FF) ; ;略过第一行 图层名称 线型 颜色 线宽 图层说明
(setq DATA (read-line FF))
(while (/= DATA "end")
(setq STRSS (read (strcat "(" DATA ")")))
(entmake (list '(0 . "layer")
'(100 . "AcDbSymbolTableRecord")
'(100 . "AcDbLayerTableRecord")
(cons 2 (car STRSS))
'(70 . 0)
(cons 6 (cadr STRSS))
(cons 62 (caddr STRSS))
(cons 370 (nth 3 STRSS))
)
)
;赋值图层说明
(vla-put-Description
(vlax-ename->vla-object (tblobjname "layer" (car STRSS)))
(nth 4 STRSS)
)
(setq DATA (read-line FF))
)
(close FF)
(command ".undo" "E")
(princ "\n---<<新建图层已完成>>---")
(princ)
)
(ge_xjtc);加载程序
(defun ge_wzys (/ sty1);设置文字样式
(setvar "cmdecho" 0)
(setq sty1 '(
(0 . "STYLE")
(100 . "AcDbSymbolTableRecord")
(100 . "AcDbTextStyleTableRecord");子类名称
(2 . "JianTiZi");样式名
(70 . 0);二进制数,标准flag:4-垂直,16-注释性,20-垂直+注释性
(40 . 0.0);高度:0为不固定
(41 . 1.0);宽度因子
(50 . 0.01);倾斜角度(弧度制)
(71 . 0) ;二进制数,颠倒反向:2-反向,4-颠倒,6-颠倒反向
(42 . 3.5);历史记录:上次使用的字高
(3 . "isocp.shx");小字体路径
(4 . "gbcbig.shx");大字体路径
))
(if (null (tblsearch "style" "JianTiZi"))
(entmake sty1)
)
(setvar 'TEXTSTYLE "jiantizi")
(princ "\n新建文字样式成功\n")
(princ)
)
(ge_wzys);加载文字样式
(defun ge_bzys () ;新建标注样式"biaozhu"
(command "_undo" "be")
(ddstyle)
)
(defun ddstyle (/ sc)
(setq sc 1)
(setvar "cmdecho" 0)
(setvar "dimclrd" 4) ;为尺寸线、箭头和标注引线指定颜色
(setvar "dimclre" 4) ;为尺寸界线指定颜色
(setvar "dimclrt" 3) ;为标注文字指定颜色
(setvar "dimdle" (* sc 0)) ;当使用小斜线代替箭头进行标注时,设置尺寸线超出尺寸界线的距离(超出标记)
(setvar "dimexe" (* sc 1.25)) ;指定尺寸界线超出尺寸线的距离
(setvar "dimexo" (* sc 0.5)) ;起点偏移量
(setvar "dimblk" ".") ;实心闭合箭头
(setvar "dimasz" (* sc 2.5)) ;控制尺寸线和引线箭头的大小。并控制基线的大小
(setvar "dimcen" 1) ;圆心标记-无
(setvar "dimtxsty" "jiantizi") ;指定标注的文字样式
(setvar "dimtxt" (* sc 3.5)) ;指定标注文字的高度
(setvar "dimtad" 1) ;文字垂直位置(上方)
(setvar "dimjust" 0) ;文字水平位置(居中)
(setvar "dimtih" 0) ;线内文字对齐(与尺寸线对齐)
(setvar "dimtoh" 1) ;线外文字对齐(与尺寸线对齐)
(setvar "dimgap" (* sc 1)) ;文字从尺寸线偏移
(setvar "dimtmove" 0) ;文字不在默认位置时,放在 尺寸线上方,不加引线
(setvar "dimscale" 1) ;全局比例
(setvar "dimdec" 3) ;精度
(setvar "dimlfac" 1) ;测量比例因子
(setvar "dimzin" 8) ;消零
(setvar "dimazin" 2) ;角度消零
(setvar "dimadec" 3) ;角度精度
(setvar "dimupt" 1) ;手动放置标注文字(开)
(if (not (tblsearch "dimstyle" "biaozhu"))
(command "-dimstyle" "S" "biaozhu")
)
(if (not (tblsearch "dimstyle" "biaozhu$2"))
(command "-dimstyle" "s" "biaozhu$2")
);生成子标注样式$2 角度标注,$3 直径标注$4 半径标注,$6 坐标标注 $0 线性标注, $7引线和公差
(command "dimstyle" "r" "biaozhu") ;置为当前
(command "_undo" "e")
(princ "\n新建标注样式成功\n")
(princ)
)
(ge_bzys);加载标注样式
页:
[1]