明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 小菜123

[资源] 小菜版选择易,欢迎使用并提出完善建议

    [复制链接]
 楼主| 发表于 2011-5-4 12:49:22 | 显示全部楼层
程序更新了一下,更新说明写在一楼了,希望支持动态块的朋友,请测试是否可用
发表于 2011-5-4 13:12:18 | 显示全部楼层
小菜123 发表于 2011-5-4 12:49
程序更新了一下,更新说明写在一楼了,希望支持动态块的朋友,请测试是否可用

支持小菜,很好的选择过滤功能!
发表于 2011-5-4 18:19:03 | 显示全部楼层
花了一个币,想看看是什么,结果呢下载下来是ss_v1.0.lsp.php
 楼主| 发表于 2011-5-4 20:21:27 | 显示全部楼层
楼上朋友:一楼的两个附件,我都进行了下载测试,下载下来的文件跟上传的相同,没有发现什么问题
发表于 2011-5-5 08:33:01 | 显示全部楼层
很强大,很经典的代码,学习了
发表于 2011-5-5 08:59:04 | 显示全部楼层
经典的选择易,支持楼主。
 楼主| 发表于 2011-5-5 21:47:25 | 显示全部楼层
本帖最后由 小菜123 于 2011-5-5 21:48 编辑

升级到v1.01 修正了取尺寸标注值函数中,标注文字(Mtext)有格式控制符,结果不正确的问题
修改过的函数如下:
(defun getdim (ent flag / e el roop) ;flag=T 取文字 flag=nil 只取测量数值,标注修改过返回nil
   (setq e (dxf -2 (tblsearch "block" (dxf 2 ent)))  roop T)
   (while roop
     (setq e (entnext e)   el (entget e))
     (if (member '(0 . "MTEXT") el)
       (setq roop nil)
     )
   )
    ;判断有无修改.
   (if (or (= (dxf 1 ent) "<>") (= (dxf 1 ent) ""))
        (read (unformat (dxf 1 el) nil))
        (if flag (read (unformat (dxf 1 el) nil)))
   )   
);;defun
;;新增下面的函数:
(defun UnFormat (Mtext KeepLF / Text Str)
  ;;keeplf=t 保留换行符,nil不保留  from 明经论坛
  ;;去掉mtext的格式控制符,返回文字内容
  (and
    Mtext
    (setq Text "")
    (while (/= Mtext "")
      (cond
        ((wcmatch (strcase (setq Str (substr Mtext 1 2))) "\\[\\{}`~]")
          (setq Mtext (substr Mtext 3)
                Text   (strcat Text Str)
          )
        )
        ((wcmatch (substr Mtext 1 1) "[{}]")
          (setq Mtext (substr Mtext 2))
        )
        ((and KeepLF (wcmatch (strcase (substr Mtext 1 2)) "\\P"))
          (setq Mtext (substr Mtext 3)
                Text  (strcat Text "\\P")
          )
        )
        ((wcmatch (strcase (substr Mtext 1 2)) "\\[LOP]")
          (setq Mtext (substr Mtext 3))
        )
        ((wcmatch (strcase (substr Mtext 1 2)) "\\[ACFHQTW]")
          (setq Mtext (substr Mtext (+ 2 (vl-string-search ";" Mtext))))
        )
        ((wcmatch (strcase (substr Mtext 1 2)) "\\S")
          (setq Str   (substr Mtext 3 (- (vl-string-search ";" Mtext) 2))
                Text  (strcat Text (vl-string-translate "#^/" "   " Str))
                Mtext (substr Mtext (+ 4 (strlen Str)))
          )
        )
        ((> (ascii Mtext) 127)
           (setq Text (strcat Text (substr Mtext 1 2))
                 Mtext (substr Mtext 3)
           )
        )
        (1
          (setq Text (strcat Text (substr Mtext 1 1))
                Mtext (substr Mtext 2)
          )
        )
      )
    )
  )
  Text
);;defun
发表于 2011-5-28 13:33:17 | 显示全部楼层
这个选择易功能真够强大
发表于 2011-5-29 01:10:31 | 显示全部楼层
本帖最后由 xotoo 于 2011-5-29 01:11 编辑

这个版本的选择易终于支持动态块了——小菜我爱死你了
毫不犹豫的花一个明经币下载了一个源码
发表于 2011-5-29 01:20:59 | 显示全部楼层
本帖最后由 xotoo 于 2011-5-29 01:31 编辑

小菜,反映一个问题
附加过滤中的线条长度——>(大于)<(小于)和≤(小于等于)好像搞反了,明明选择的是小于过滤项,但是选择到的线条都是大于的线条,反之亦然,你自己试一下
≥不起作用;≠好像也会出问题,有些应该过滤到的线条不能正确过滤

另外关于角度方面的这个地方我简单进行了测试,好像也有这个问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-21 01:36 , Processed in 0.151264 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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