找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2418|回复: 4

[已解决] 求一个利用TXT的多参数批量画图元的LSP代码

[复制链接]
发表于 2013-12-2 09:47:49 | 显示全部楼层 |阅读模式
悬赏200D豆已解决
本帖最后由 清风明月10 于 2013-12-2 09:52 编辑

求一个利用TXT的多参数批量画图元的LSP代码参数的性质如下:

孔号镡孔性镡X坐标镡Y坐标镡Z坐标镡字高

文本文件中的参数具体内容如下:
ZK1镡一般孔镡1镡11镡1.3镡2.5
ZK2镡一般孔镡2镡12镡2.3镡2.5
ZK3镡一般孔镡3镡13镡3.3镡2.5
ZK4镡一般孔镡4镡14镡4.3镡2.5
ZK5镡一般孔镡5镡15镡5.3镡2.5
ZK6镡一般孔镡6镡16镡6.3镡2.5
ZK7镡一般孔镡7镡17镡7.3镡2.5
ZK8镡一般孔镡8镡18镡8.3镡2.5
ZK9镡一般孔镡9镡19镡9.3镡2.5
ZK10镡一般孔镡10镡20镡10.3镡2.5

我需要将每行参数分解,利用分解出来的X Y Z画一个圆,圆的直径为字高。再用 (X+字高/2) Y  Z用这三个坐标写一个单行文字,内容为孔号(即每行的第一个参数)
请点击此处下载

查看状态:需购买或无权限

您的用户组是:游客

文件名称:一条记录多个参数用镡分隔连接.rar 
下载次数:10  文件大小:266 Bytes 
下载权限: 不限 以上  [免费赚D豆]


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

已领礼包: 3864个

财富等级: 富可敌国

发表于 2013-12-2 09:47:50 | 显示全部楼层
  1. (defun c:hzk()
  2.     (vl-load-com)
  3.     (setq cm (mapcar 'getvar  '("cmdecho" "osmode")))
  4.     (mapcar 'setvar '("cmdecho" "osmode") '(0 0))
  5.     (command "_undo" "be")
  6.     (if (setq wjm (getfiled "请选取数据文件" "e:\" "txt" 2))
  7.         (progn
  8.             (setq fff (open wjm "r")
  9.                   sjb nil
  10.             )
  11.             (while (setq zfc (read-line fff))
  12.                 (while (vl-string-search "镡" zfc)
  13.                      (setq zfc (vl-string-subst " " "镡" zfc))
  14.                 )
  15.                 (setq zfc (read (strcat "(" zfc ")"))
  16.                       sjb (cons zfc sjb)
  17.                 )
  18.             )
  19.             (close fff)
  20.             (mapcar '(lambda(x)
  21.                          (setq wzgd (last x)  R (* 0.5 wzgd)
  22.                                p1   (list (nth 2 x) (nth 3 x) (nth 4 x))
  23.                                p2   (mapcar '+ p1 (list R 0 0))
  24.                          )
  25.                          (command "_circle" p1 R)
  26.                          (command "_text" p2 wzgd 0 (vl-princ-to-string (car x)))
  27.                      )
  28.                      (cdr (reverse sjb))
  29.            )

  30.         )
  31.     )
  32.     (command "_undo" "e")
  33.     (mapcar 'setvar '("cmdecho" "osmode") cm)
  34.     (princ)
  35. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-12-2 11:03:03 | 显示全部楼层
找那些Lisp替换去吧
  1. (defun c:tt (/ fl lst h)
  2.   (if (setq fl (getfiled "Select Txt" "" "txt" 8))
  3.     (progn
  4.       (setq lst        (XD::List:FromFile fl) ;_读文件
  5.             lst        (mapcar '(lambda (x) (xdrx_string_split x "镡")) lst) ;_拆分
  6.             h        (getvar "textsize")
  7.       ) ;_字高
  8.     )
  9.     (mapcar
  10.       '(lambda (x)
  11.          (xdrx_circle_make
  12.            (mapcar 'read (cddr x)) ;_点坐标
  13.            (* 0.5
  14.               h ;_半径
  15.            )
  16.            ;; (X+字高/2) Y  Z
  17.            (xdrx_text_make
  18.              (list (* (+ h (read (nth 2 x))) 0.5)
  19.                    (read (nth 3 x))
  20.                    (read (last x))
  21.              ) ;_点坐标
  22.              (car x) ;_字串
  23.              h ;_高
  24.              0. ;_角度
  25.            )
  26.          )
  27.          lst
  28.        )
  29.     )
  30.   )
  31.   (princ)
  32. )

点评

运行了,没有效果。也收藏了,值得参考。你试过吗?  发表于 2013-12-2 14:26
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-23 10:00 , Processed in 0.192181 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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