找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 886|回复: 3

[日积月累]:选择集Measure

[复制链接]

已领礼包: 593个

财富等级: 财运亨通

发表于 2006-5-27 17:22:36 | 显示全部楼层 |阅读模式

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

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

×

  1. (defun c:myme (/ ss dis b ssl i e key)
  2.   (if (setq ss (ssget '((0 . "line,*polyline,arc,spline"))))
  3.     (progn
  4.       (if (progn (initget 128)
  5.                  (setq dis (getdist "指定线段长度或 [块(B)]: "))
  6.           )
  7.         (progn
  8.           (if (= (type dis) 'STR)
  9.             (progn
  10.               (setq b (getstring "\n输入块名: "))
  11.               (initget 128 "Y N")
  12.               (setq key
  13.                      (getkword "\n是否对齐块和对象?[是(Y)/否(N)] <Y>:")
  14.               )
  15.               (if (or (not key) (= key ""))
  16.                 (setq key "Y")
  17.                 (setq key "N")               
  18.               )
  19.               (if (tblsearch "block" b)
  20.                 (setq dis (getdist "\n指定线段长度: "))
  21.                 (progn
  22.                   (princ "\nNo Block!")
  23.                   (exit)
  24.                 )
  25.               )
  26.             )
  27.           )
  28.           (if dis
  29.             (progn
  30.               (setq ssl        (sslength ss)
  31.                     i        -1
  32.               )
  33.               (if b
  34.                 (repeat        ssl
  35.                   (setq e (ssname ss (setq i (1+ i))))
  36.                   (command ".measure" e "b" b key dis)
  37.                 )
  38.                 (repeat        ssl
  39.                   (setq e (ssname ss (setq i (1+ i))))
  40.                   (command ".measure" e dis)
  41.                 )
  42.               )
  43.             )
  44.           )
  45.         )
  46.       )
  47.     )
  48.   )
  49.   (princ)
  50. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-5-27 21:23:01 | 显示全部楼层
请斑竹给个说明,做何用?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

 楼主| 发表于 2006-5-28 00:12:14 | 显示全部楼层
最初由 qjcpj 发布
[B]请斑竹给个说明,做何用? [/B]

应一位网友的要求写的,一次Measure多个线,下面是再次更改的,对图块提示作了简化,块默认对齐。简化了Measure 的选项输入而且支持批量。

  1. (defun c:myme (/ ss dis b ssl i e key)
  2.   (if (setq ss (ssget '((0 . "line,*polyline,arc,spline"))))
  3.     (progn
  4.       (if (progn (initget 128)
  5.                  (setq dis (getdist "指定线段长度或块名[注意纯数字图块名前加任意字母!]: "))
  6.           )
  7.         (progn
  8.           (if (= (type dis) 'STR)
  9.             (progn
  10.               (if (tblsearch "block" dis)
  11.                 (setq b dis)
  12.                 (if (tblsearch "block" (substr dis 2))
  13.                   (setq b (substr dis 2))
  14.                   (exit)
  15.                 )
  16.               )
  17.               (if (tblsearch "block" b)
  18.                 (setq dis (getdist "\n指定线段长度: "))
  19.                 (progn
  20.                   (princ "\nNo Block!")
  21.                   (exit)
  22.                 )
  23.               )
  24.             )
  25.           )
  26.           (if dis
  27.             (progn
  28.               (setq ssl        (sslength ss)
  29.                     i        -1
  30.               )
  31.               (if b
  32.                 (repeat        ssl
  33.                   (setq e (ssname ss (setq i (1+ i))))
  34.                   (command ".measure" e "b" b "y" dis)
  35.                 )
  36.                 (repeat        ssl
  37.                   (setq e (ssname ss (setq i (1+ i))))
  38.                   (command ".measure" e dis)
  39.                 )
  40.               )
  41.             )
  42.           )
  43.         )
  44.       )
  45.     )
  46.   )
  47.   (princ)
  48. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-5-29 04:07:21 | 显示全部楼层
好像有点鸡肋的感觉,受measure命令的限制,不能divide,又不能对选集操作(要么就做块炸开),还不如直接用 vlax-curve系列函数来处理。舍弃measure或divide命令。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-18 22:58 , Processed in 0.177748 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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