明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 946|回复: 2

[提问] 关于读TXT配置文件的方式新建图层问题

[复制链接]
发表于 2023-8-28 20:27:04 | 显示全部楼层 |阅读模式
本帖最后由 south 于 2023-8-28 20:27 编辑

无意中翻到了这个贴子,这个创建图层的思路也方便,可自定义修改自己想要的图层。
有两点能否请大师帮忙改进一下:
1.该程序只能读取  配置文件存放位置:D:\Personal\Desktop\layer_data.txt 的目录中文件,改成无此目录及文件时创建一个目录、文件(相当于生成一个默认模板一样)
2.加入字体样式与标注样式同时也创建

原贴地址在这里----->>>  读TXT配置文件的方式新建图层 <<<-------



发表于 2023-8-29 08:42:48 | 显示全部楼层
cad本身是可以导出  一种las文件格式,这个文件可以用记事本打开。文件内容可以参考那个
发表于 2023-12-21 22:05:06 | 显示全部楼层
本帖最后由 baoyizhu 于 2023-12-21 22:06 编辑

  1. ;读TXT配置文件的方式新建图层
  2. (defun ge_xjtc (/ DATA FF STRSS)
  3.   (setvar "cmdecho" 0)
  4. (command ".undo" "BE")
  5. ;加载线型
  6. (defun loadltname ( lt / cm s1 )
  7.   (setq cm (getvar 'CMDECHO))
  8.   (Cond
  9.     ((= (type lt) 'str)
  10.       (if (not (tblsearch "LTYPE" lt))
  11.         (vla-load (vla-get-Linetypes (vla-get-ActiveDocument (vlax-get-acad-object))) lt "acadiso.lin")
  12.         (progn (setvar 'CMDECHO 0)(vl-cmdf "-linetype" "load" lt (findfile "acadiso.lin") "Y" "")(setvar 'CMDECHO cm))
  13.       )
  14.     )
  15.     ((= (type lt) 'list)(foreach s1 lt (loadltname s1)))
  16.   ) t
  17. )  
  18. (loadltname '("CENTER" "DASHDOT" "DASHED" "PHANTOM" "HIDDEN" "ZIGZAG"))

  19.   (setq FF (open "D:\\Program Files\\AutoCAD2021\\菲林设计助手\\layer_data.txt" "r"));;dat文件路径
  20. (read-line FF) ; ;略过第一行 图层名称 线型 颜色 线宽 图层说明
  21.   (setq DATA (read-line FF))
  22.   (while (/= DATA "end")
  23.     (setq STRSS (read (strcat "(" DATA ")")))
  24.     (entmake (list '(0 . "layer")
  25.    '(100 . "AcDbSymbolTableRecord")
  26.    '(100 . "AcDbLayerTableRecord")
  27.     (cons 2 (car STRSS))
  28.    '(70 . 0)
  29.    (cons 6 (cadr STRSS))
  30.    (cons 62 (caddr STRSS))
  31.    (cons 370 (nth 3 STRSS))
  32.      )
  33.     )
  34. ;赋值图层说明
  35. (vla-put-Description
  36.     (vlax-ename->vla-object (tblobjname "layer" (car STRSS)))
  37.      (nth 4 STRSS)
  38.   )
  39.     (setq DATA (read-line FF))
  40.   )
  41.   (close FF)

  42. (command ".undo" "E")
  43.   (princ "\n---<<新建图层已完成>>---")
  44.   (princ)
  45. )
  46.   (ge_xjtc);加载程序
  47. (defun ge_wzys (/ sty1);设置文字样式
  48. (setvar "cmdecho" 0)
  49. (setq sty1 '(
  50.                (0 . "STYLE")
  51.                (100 . "AcDbSymbolTableRecord")
  52.                (100 . "AcDbTextStyleTableRecord");子类名称
  53.                (2 . "JianTiZi");样式名
  54.                (70 . 0);二进制数,标准flag:4-垂直,16-注释性,20-垂直+注释性
  55.                (40 . 0.0);高度:0为不固定
  56.                (41 . 1.0);宽度因子
  57.                (50 . 0.01);倾斜角度(弧度制)
  58.                (71 . 0) ;二进制数,颠倒反向:2-反向,4-颠倒,6-颠倒反向
  59.                (42 . 3.5);历史记录:上次使用的字高
  60.                (3 . "isocp.shx");小字体路径
  61.                (4 . "gbcbig.shx");大字体路径
  62.              ))
  63. (if (null (tblsearch "style" "JianTiZi"))
  64.         (entmake sty1)
  65.         )
  66.   (setvar 'TEXTSTYLE "jiantizi")
  67.   (princ "\n新建文字样式成功\n")
  68. (princ)
  69.   )
  70. (ge_wzys);加载文字样式

  71. (defun ge_bzys ()        ;新建标注样式"biaozhu"
  72.   (command "_undo" "be")
  73.   (ddstyle)
  74. )
  75. (defun ddstyle (/ sc)
  76.   (setq sc 1)
  77.   (setvar "cmdecho" 0)
  78.   (setvar "dimclrd" 4)                        ;为尺寸线、箭头和标注引线指定颜色
  79.   (setvar "dimclre" 4)                        ;为尺寸界线指定颜色
  80.   (setvar "dimclrt" 3)                        ;为标注文字指定颜色
  81.   (setvar "dimdle" (* sc 0))                ;当使用小斜线代替箭头进行标注时,设置尺寸线超出尺寸界线的距离(超出标记)  
  82.   (setvar "dimexe" (* sc 1.25))                ;指定尺寸界线超出尺寸线的距离
  83.   (setvar "dimexo" (* sc 0.5))                ;起点偏移量
  84.   (setvar "dimblk" ".")                        ;实心闭合箭头
  85.   (setvar "dimasz" (* sc 2.5))                ;控制尺寸线和引线箭头的大小。并控制基线的大小
  86.   (setvar "dimcen" 1)                        ;圆心标记-无
  87.   (setvar "dimtxsty" "jiantizi")        ;指定标注的文字样式
  88.   (setvar "dimtxt" (* sc 3.5))                ;指定标注文字的高度
  89.   (setvar "dimtad" 1)                        ;文字垂直位置(上方)
  90.   (setvar "dimjust" 0)                        ;文字水平位置(居中)
  91.   (setvar "dimtih" 0)                        ;线内文字对齐(与尺寸线对齐)
  92.   (setvar "dimtoh" 1)                        ;线外文字对齐(与尺寸线对齐)
  93.   (setvar "dimgap" (* sc 1))                ;文字从尺寸线偏移
  94.   (setvar "dimtmove" 0)                        ;文字不在默认位置时,放在 尺寸线上方,不加引线
  95.   (setvar "dimscale" 1)                        ;全局比例
  96.   (setvar "dimdec" 3)                        ;精度
  97.   (setvar "dimlfac" 1)                        ;测量比例因子
  98.   (setvar "dimzin" 8)                        ;消零
  99.   (setvar "dimazin" 2)                        ;角度消零
  100.   (setvar "dimadec" 3)                        ;角度精度
  101.   (setvar "dimupt" 1)                        ;手动放置标注文字(开)
  102.   (if (not (tblsearch "dimstyle" "biaozhu"))
  103.     (command "-dimstyle" "S" "biaozhu")
  104.   )                                       
  105.   (if (not (tblsearch "dimstyle" "biaozhu$2"))
  106.     (command "-dimstyle" "s" "biaozhu$2")
  107.   );生成子标注样式$2 角度标注,$3 直径标注  $4 半径标注,$6 坐标标注 $0 线性标注, $7引线和公差
  108.   (command "dimstyle" "r" "biaozhu")        ;置为当前
  109.   (command "_undo" "e")
  110.   (princ "\n新建标注样式成功\n")
  111.   (princ)
  112. )
  113.   (ge_bzys);加载标注样式

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

评分

参与人数 1明经币 +1 收起 理由
south + 1 感谢前辈出手解决,谢谢!

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-12-22 15:18 , Processed in 0.219176 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表