明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1505|回复: 6

[源码] 按块选择功能

[复制链接]
发表于 2015-11-4 14:00:06 | 显示全部楼层 |阅读模式
本帖最后由 winerfjy 于 2015-11-4 14:51 编辑

  1. (defun c:ak(/ a ss b c d);按块选择功能
  2. (setvar "cmdecho" 0)
  3. (princ "\n选择要选的块样")
  4. (setq a(cdr (assoc 2 (entget (car (entsel))))))
  5. (setq d(substr a 1 1));到得第一个数
  6.   (if (= "*" d)
  7.   (setq c(strcat "`" a))(setq c a))
  8. (setq b (uINT 1 "" "1.手选范围,2.全图选中" 1))
  9.   (if (= 1 b)
  10.     (prompt "\n选择一个区域:"))
  11.   (if (= 1 b)
  12.   (SETQ ss (ssget (list '(0 . "INSERT")(cons 2 c)))))
  13.   (if (= 2 b)
  14. (SETQ ss(ssget "x"(list '(0 . "INSERT")(cons 2 c)))))
  15. (sssetfirst nil ss)
  16. (princ  (STRCAT "共有图块" (ITOA(SSLENGTH ss))"个"))
  17. (prin1)
  18. (princ))
  19. (defun uint (bit kwd msg def / inp)
  20.   (if def
  21.     (setq msg (strcat "\n" msg "<" (itoa def) ">:") ;Test for a default
  22.     bit (- bit (boole 1 bit 1))  ; A default and no null bit code
  23.     )          ;setq
  24.     (if  (= "" (substr msg (strlen msg) 1))
  25.       (setq msg (strcat "\n" (substr msg 1 (1- (strlen msg))) ":"))
  26.           ;Then strip space
  27.           ;else msg is OK
  28.       (setq msg (strcat "\n" msg ":"))
  29.     )
  30.   )          ;if,if
  31.   (initget bit kwd)
  32.   (setq inp (getint msg))
  33.   (if inp
  34.     inp
  35.     def
  36.   )
  37. )  




发表于 2018-3-10 23:08:45 | 显示全部楼层
高手啊能不能修改成选择特定的匿名块
发表于 2018-3-26 00:02:41 | 显示全部楼层
能不能修改成选择特定的匿名块
发表于 2018-5-14 16:30:53 | 显示全部楼层
真心感觉高手的分享
 楼主| 发表于 2018-7-14 23:29:55 | 显示全部楼层
疯球 发表于 2018-5-14 16:30
真心感觉高手的分享

很久没有上论坛了都是刚学lisp的时候拿得出手的东西
发表于 2019-3-6 17:10:05 | 显示全部楼层
可否改进一下,对动态块也适用


资料参考:
http://bbs.mjtd.com/forum.php?mo ... ht=ssget&page=2
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-19 01:17 , Processed in 0.161313 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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