求能在在同一层下不同的圆的大小由不同的颜色来显示的lisp
<p> 求能在在同一层下不同的圆的大小由不同的颜色来显示的lisp.不知有没有人能做到?还有就是可以选中同颜色的圆进行修改,修改时所选的如果是红色的圆,那么图中有20个红色的,这20个也会跟着改变?谢谢各位!</p><p></p> clm840917 发表于 2023-10-21 12:20看见你了看见你了
你这是什么意思啊?{:1_1:} 看见你了看见你了 看不见我看不见我 补充一点就是能统计出任何一种颜色的圆的大小和数量,有人会的吗?请帮忙谢谢 本帖最后由 作者 于 2008-1-12 19:18:10 编辑
;圆按大小分色显示 明经 ZZXXQQ 2008.1.12
(defun c:tt ()
(setvar "CMDECHO" 0)
(if (setq ss (ssget '((0 . "CIRCLE")))) (progn
(command ".UNDO" "BE")
(setq i -1 cirlst (list))
(repeat (sslength ss)
(setq r (cdr (assoc 40 (entget (setq en (ssname ss (setq i (1+ i))))))))
(if (assoc r cirlst)
(setq cirlst (subst (cons r (1+ (cdr (assoc r cirlst)))) (assoc r cirlst) cirlst))
(setq cirlst (cons (cons r 1) cirlst))
)
)
(setq i -1 cirlst (reverse cirlst))
(setq cirlst (vl-sort cirlst (function (lambda (e1 e2) (< (car e1) (car e2))))))
(repeat (length cirlst)
(setq r (car (nth (setq i (1+ i)) cirlst)))
(command "select" ss "")
(setq ss1 (ssget "P" (list (cons 0 "CIRCLE") (cons 40 r))))
(command "chprop" ss1 "" "C" (itoa (1+ i)) "")
)
(command ".UNDO" "E")
))
(setvar "CMDECHO" 1)
(princ)
)
zzxxqq大大说的什么内容啊,俺帖子少看不到哦 ; 错误: no function definition: COMMSND 指位错了!将COMMAND敲错了。三楼已改。 <p>ZZXXQQ你好,你给的程序并不能满足我的要求,<你给的只能选一个不同的来修改> 谢谢</p><p>我要的是在多种孔径和数量不同的情况下,能根据大小来配上不同的颜色,</p><p>例如:0.5mm的圆孔有30个 0.82mm的圆孔有8个</p><p> 1.0mm的圆孔有20个 .................</p><p>出来的效果是0.5mm的30个孔都用一种颜色,其它的依此类推用不同颜色表示出来</p><p>谢谢...................</p><p> </p> 三楼已改,先试试。 ZZXXQQ你好,加载后出现:输入的列表有缺陷,请帮忙解决,本人一点也不懂,谢谢 程序在2004上调试通过。三楼程序复制后要将行前面的分号去掉才行。再试试看。