明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: linkai2004

[求助]过年了,有一堆数字要统计,大家能帮我夏吗?

  [复制链接]
发表于 2006-1-24 13:37:00 | 显示全部楼层
linkai2004发表于2006-1-24 9:12:00版主呀 这个怎么用呀 最后得到一个!ss的结果.要怎么用?
  1. (defun c:test ()
  2.   (CMDLA0)
  3.   (setq STR (USTR 1 "\n数字字符串(格式 : a,b,c,...)" STR NIL)
  4. ss  (ssget  (list '(0 . "TEXT") (cons 1 str)))
  5.   )
  6.   (princ"\n选择集为 !ss")
  7.   (CMDLA1)
  8. )
选择集的名称:!ss
主题只要生成选择集,剩下的操作就是你自己的事情了!呵呵……
 楼主| 发表于 2006-1-24 22:21:00 | 显示全部楼层
Andyhon发表于2006-1-24 12:11:00 (defun sslist (sso / n lst)(if (= (type sso) 'PICKSET) ...


好像提示 错误: 输入的列表有缺陷

能不能再帮我改进一下子  谢谢

我要得基本上就是这样的

 楼主| 发表于 2006-1-24 22:31:00 | 显示全部楼层

(setq ss (ssget '((0 . "TEXT"))))

好像是丢了一个括号其他的好像也有点不对,请作者再帮一下忙啦

发表于 2006-1-24 22:35:00 | 显示全部楼层
 
  http://www.faqs.org/faqs/CAD/autolisp-faq/part2/section-1.html
  ;;; convert selection set to list,
  ;;; Note: it's also wise to use ai_ssget, because some ents could be
  ;;;       on locked layers
  ;;; Ex: (sslist (ai_ssget (ssget))) => list of selected unlocked ents
  ;;; or  (mapcar 'entupd (sslist (ssget "X" '((8 . "TEMP")))))
  ;;;       - regens all entities on layer TEMP
  (defun SSLIST (ss / n lst)
    (if (= (type ss) 'PICKSET)
      (repeat (setq n (sslength ss))
        (setq n (1- n)
              lst (cons (ssname ss n) lst)))))
 
 
  http://www.d2cad.nl/lisp/lisps/sslist.html
  (defun SSList (f_sel) ;converts a selection set to a list of enames
  (if f_sel
    (progn
  (if (/= (type f_sel) 'PICKSET)
    (exit)
  ) ; end if
  (setq f_ss_list nil
 f_loop -1
  ) ; end setq
  (repeat (sslength f_sel)
    (progn
      (setq f_loop (1+ f_loop))
;      (princ (strcat "\rSorting " (itoa f_loop) " of " (itoa (sslength f_sel)) "     "))
      (setq f_ss_list (append f_ss_list (list (ssname f_sel f_loop))))
    ) ; end progn
  ) ; end repest
  ) ; end progn
    nil
    ) ; end if
) ; end defun
  
  
http://forum.paug.org/messages/24/973.html?WednesdayMay1920040929am           
;--- sslist -----------------------------------------------
; convert selection-set into a list of entities
; result is the list
; Example: (sslist )
;
(defun sslist (SS / N P)
(repeat (setq N (sslength SS)) ;seed N
(setq N (1- N) ;index number
P (cons (ssname SS N) P)) ;setq
);repeat
); sslist
           
 楼主| 发表于 2006-1-24 22:46:00 | 显示全部楼层

Andyhon 师兄能不能帮我整理一下啦

我看不懂呀..

你开始变编的那个就是我想要得,

能不能完善一下,好像一加载就运行了?怎么回事

发表于 2006-1-25 08:23:00 | 显示全部楼层
本帖最后由 作者 于 2006-1-25 14:54:41 编辑

    
    (defun dxg (code ele)
      (cdr (assoc code (entget ele)))
    )
   
    (defun sslist (SS / N P)
       (repeat (setq N (sslength SS)) ;seed N
         (setq N (1- N) ;index number
               P (cons (ssname SS N) P)
         ) ;setq
       );repeat
    )
   
 ;;; for test only
 ;;; (setq MyStrSet (scopeStr))
 ;;; 返回类如 (<Entity name: 1d232d0> <Entity name: 1d232d8> . . .) 
 (defun scopeStr ()   
    (setq Lint (getInt "下限值起自: ")
            Uint (getInt "上限结束值: ")
    )
    (princ "\n 框选范围内的数字,生成一个选择集: ")
    (setq ss (ssget '((0 . "TEXT"))))
   
    (vl-remove-if
     '(lambda (x)
       (setq y (atoi (dxg 1 x)))
       (cond
        ;((< y Lint) x)
        ;((> y Uint) x)
        ((< y Lint))
        ((> y Uint))
      ))
      (sslist ss)
    )
 )
 楼主| 发表于 2006-1-25 13:13:00 | 显示全部楼层
Andyhon发表于2006-1-25 8:23:00(defun sslist (sso / n lst)(if (= (type sso) 'PICKSET)&n...

好像还是不能用?
 楼主| 发表于 2006-1-25 13:16:00 | 显示全部楼层
请求大家的帮助亚
发表于 2006-1-25 14:57:00 | 显示全部楼层

那就用阳春型的 SSLIST 好了
这样比较单纯

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

本版积分规则

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

GMT+8, 2025-5-19 15:58 , Processed in 0.195456 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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