找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1534|回复: 11

[编程申请]:批量归层的程序

[复制链接]
发表于 2005-7-5 09:34:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
需要这样一个程序:比如层名为3001,程序将改层改为38,颜色改为5,线形改为23601,线宽改为2,也就是这样的的格式:
初始层  层  颜色  线宽 线形
5201      42     25         2      23654
5211      43     2           1         21401
……   …… …… …… ……
运行之后能全部改为标准代码,请高手帮忙一下
线形库定义为:500.lin
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 593个

财富等级: 财运亨通

发表于 2005-7-5 11:18:30 | 显示全部楼层
只是改名称?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-7-5 12:43:51 | 显示全部楼层

Re: [编程申请]:批量归层的程序

最初由 thx 发布
[B]需要这样一个程序:比如层名为3001,程序将改层改为38,颜色改为5,线形改为23601,线宽改为2,也就是这样的的格式:
初始层  层  颜色  线宽 线形
5201      42     25         2      23654
5211      43     2... [/B]

看不出任何规律!只能自己慢慢改了,呵呵……
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-7-5 13:39:57 | 显示全部楼层
不是啊,拜托两位斑竹,我的意思就是:假如说原始层为5201,那么就把他的名称改为25,颜色也改为25,线形改为23654,线宽改为2,有一个标准的码表,码表的格式为:
初始层 层 颜色 线宽 线形
5201    42    25        2    23654
5211    43     2       1      21401
…… …… …… …… ……

运行程序后,可以读取这个码表然后据此码表相对应的改变,或者直接写到程序里也可以,你可以只写假定码表的一行,后面的我继续加,这样我的意思说明白了吗?


论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2005-7-5 19:36:29 | 显示全部楼层
把码表文件贴上来
BTW:你用什么版本CAD?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-7-5 21:36:48 | 显示全部楼层
未经测试:
[php](load "xyp_lib")
;|加载通用函数(可在签名栏直接下载)
如果已经下载xyp_lib并放到搜索路径下可以不再下载!
利用以下任何一种方式即可加载和运行通用函数内的所有子程序:
1.在acad.lsp中增加(load"xyp_lib")
2.在每个程序内增加(load"xyp_lib")
3.在command下,输入(load"xyp_lib")
4.在菜单.mnl中增加(load"xyp_lib")
5.将xyp_lib.vlx文件直接拽到cad屏幕
★通用函数下载地址:[/COLOR]http://www.xdcad.net/forum/attachment.php?s=&postid=1606661|;

;;;批量归层--码表文件
(defun c:test ()
  (cmdla0)
  (alert (strcat
           "数据格式:"
           "\n初始层 层 颜色 线宽 线形"
           "\n初始层 层 颜色 线宽 线形"
           "\n初始层 层 颜色 线宽 线形"
           "\n初始层 层 颜色 线宽 线形"
           "\n..."
           "\n..."
          )
  )
  (while (not
           (setq tn (getfiled "码表文件(txt;dat;*)" "" "txt;dat;*" 2))
         )
  )
  (setq fle (findfile tn))
  (if (not fle)
    (setq fle (getfiled "请选择码表文件" "" "txt;dat;*" 8))
  )
  (if fle
    (progn
      (setq fn (open fle "r"))
      (while (setq pt (read-line fn))
        (setq lst    (read (strcat "(" pt ")"))
              la-old (car lst)
              lst    (cdr lst)
              la-new (car lst)
              lst    (cdr lst)
              co     (car lst)
              lst    (cdr lst)
              l-wide (car lst)
              lst    (cdr lst)
              l-type (car lst)
        )
        (if (setq ss (ssget "X" (list (cons 8 la-old))))
          (progn
            (princ ".")
            (mkla la-new (atof co))
            (jzxx l-type "500.lin")
            (command "change"
                     ss
                     ""
                     "p"
                     "la"
                     la-new
                     "c"
                     (atof co)
                     "lt"
                     l-type
                     "lw"
                     l-wide
                     ""
            )
          )
        )
      )
      (close fn)
    )
    (princ "\n未选择数据文件,退出")
  )
  (cmdla1)
)[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-7-6 09:13:26 | 显示全部楼层
刚刚试了一下xyp1964的LISP程序,好象没有反应,我也加载了通用函数,就是定义的线型库我改名字了,但是我把程序的也相应的改过来了,我把线型库文件放到CAD安装目录里是不是就行了?还是我做得不对,我用的CAD从R14到2004都有,斑竹你看怎么方便怎么来,我把定义的线型库、码表和一个DXF文件上传,麻烦斑竹调试一下,DXF里只有几个层而已,说到这,想起来晓东工具箱里有个POLYLINE与LWPOLYLINE互相转的功能,我这个DXF里的POLYLINE就不能转成LWPOLYLINE,不知道什么原因?难道是有Z值就不能转吗?(定义的线型库只是让他具有线型的名字,其实并没有线型)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-7-6 13:59:10 | 显示全部楼层
  1. [FONT=courier new](load "xyp_lib")
  2. ;|加载通用函数(可在签名栏直接下载)
  3. 如果已经下载xyp_lib并放到搜索路径下可以不再下载!
  4. 利用以下任何一种方式即可加载和运行通用函数内的所有子程序:
  5. 1.在acad.lsp中增加(load"xyp_lib")
  6. 2.在每个程序内增加(load"xyp_lib")
  7. 3.在command下,输入(load"xyp_lib")
  8. 4.在菜单.mnl中增加(load"xyp_lib")
  9. 5.将xyp_lib.vlx文件直接拽到cad屏幕
  10. [COLOR=red] ★通用函数下载地址:[/COLOR][url]http://www.xdcad.net/forum/attachment.php?s=&postid=1606661[/url]|;

  11. ;;;批量归层--码表文件
  12. (defun c:test165 ()
  13.   (cmdla0)
  14.   (while (not (setq tn (getfiled "码表文件(txt)" "" "txt" 2))))
  15.   (setq fle (findfile tn))
  16.   (if (not fle) (setq fle (getfiled "请选择码表文件" "" "txt" 8)))
  17.   (if fle
  18.     (progn
  19.       (setq f-open (open fle "r")
  20.             pt           (read-line f-open)
  21.       )
  22.       (while (setq pt (read-line f-open))
  23.         (setq lst (read (strcat "(" pt ")")))
  24.         (setq la-old (rots (nth 0 lst) 2 0)
  25.               la-new (rots (nth 1 lst) 2 0)
  26.               co     (nth 2 lst)
  27.               l-wide (nth 3 lst)
  28.               l-type (rots (nth 4 lst) 2 0)
  29.         )
  30.         (if (setq ss (ssget "X" (list (cons 8 la-old))))
  31.           (progn
  32.             (princ ".")
  33.             (mkla la-new co)
  34.             (jzxx l-type "2500-dgnlintp")
  35.             (command "change"  ss   ""  "p" "la"
  36.                      la-new  "c" co "lt"  l-type "lw"
  37.                      l-wide  ""
  38.                     )
  39.           )
  40.         )
  41.       )
  42.       (close f-open)
  43.     )
  44.     (princ "\n未选择数据文件,退出")
  45.   )
  46.   (cmdla1)
  47. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-7-6 17:22:36 | 显示全部楼层
为什么运行后还是一点都没有改变呢?我先把线型库拷到CAD安装目录,然后加载XYP_LIB.VLX和编写的test.lsp程序,打开图形运行程序,选择码表之后就没有反应了,然后我又把线型库加载了一遍,还是不行,难道我操作错误了吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-7-6 19:41:57 | 显示全部楼层
码表有乱码!!!
解决办法:将其内容复制到一个新文件中,删除原文件!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2005-7-6 22:57:55 | 显示全部楼层
游客,如果您要查看本帖隐藏内容请回复

文件下载见签名中的“"我的程序"

注意:码表文件必须为纯文本格式,不能含有编码。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-7-8 08:07:15 | 显示全部楼层
谢谢,不知道怎么感谢二位斑竹,有机会来大连的话,请你们吃饭:)
QQ:1812968
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-22 20:55 , Processed in 0.231764 second(s), 55 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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