明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1531|回复: 4

请大侠帮助加个按范围选择的函数!!!

[复制链接]
发表于 2012-12-26 12:55 | 显示全部楼层 |阅读模式
下面是本论坛程序,是按块名选中全图同名块,求大侠帮助加个按 范围选择 的函数,不想全部选中,想按范围选择

(defun c:sxb()
(vl-load-com)
(if (setq Ent (entsel))
     (progn
      ;转换成vla对象
      (setq Obj (vlax-ename->vla-object (car Ent)))
      ;获取块名称
      (setq BlkName (vla-get-effectivename Obj))
      ;根据块名称对整个图纸中符合条件的块建立选择集
      (setq en (ssget "X" (list (cons 0 "INSERT")(cons 2 BlkName))))
      ;获得选择集中图元的个数
      (setq sumen (sslength en))
      ;选中选择集
      (sssetfirst nil nil)
      (sssetfirst nil en)
      ;打印
      (print (strcat "块参照—>名称:"  BlkName ))
      (print (strcat "      —>共计:【" (rtos sumen) "】个;其中:"))
      ;中间变量ii赋初值0,建立空表集jh1
      (setq ii 0 jh1 nil)
      ;对每个块提取属性值
      (repeat sumen
     ;依次提取选择集每个图元名称
            (setq Ent (ssname en ii) ii (+ 1 ii))
     ;将图元名称转换为vla对象
            (setq Obj (vlax-ename->vla-object Ent))
            ;判断是否是属性块
            (if (and (= (vla-get-objectname Obj) "AcDbBlockReference") (= (vla-get-hasattributes Obj) :vlax-true))
                (progn
                 ;提取属性对象
                 (setq Objatt (vlax-safearray->list (vlax-variant-value (vla-getattributes Obj)))
                      ;提取属性值,该属性值为表一个表存在
                      Attstring (mapcar 'vla-get-textstring Objatt)
                  )
   ;将属性值表连接成一个字符串
          (setq jh1 (cons (vl-princ-to-string  Attstring) jh1))
  );内progn结束
             );结束if
        );结束repeat
      );结束progn
);结束if
;调用函数
(dd jh1)
);函数结束

(defun dd(jh / i j )
     (setq i (length jh))
     (while(> i 0)
           (setq ys (car jh))
           (if(member ys jh)
              (setq jh (vl-remove ys jh))
            );结束IF
           (setq j (length jh))
           (print (strcat "            —>" ys ":" (rtos (- i j))))
           (setq i j)
           (princ)
     );结束while
);结束函数

发表于 2012-12-26 13:08 | 显示全部楼层
将(setq en (ssget "X" (list (cons 0 "INSERT")(cons 2 BlkName))))改为(setq en (ssget (list (cons 0 "INSERT")(cons 2 BlkName))))
 楼主| 发表于 2012-12-26 13:16 | 显示全部楼层
非常谢谢楼上的大侠
发表于 2012-12-26 13:59 | 显示全部楼层
自己动手,丰衣足食!
发表于 2012-12-26 21:50 | 显示全部楼层
路过,,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-4 06:31 , Processed in 0.385039 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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