明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 7176|回复: 33

求助怎样让下面的程序S1的选择集,选择了图元后高亮显示?谢谢。

  [复制链接]
发表于 2012-4-18 08:23:31 | 显示全部楼层 |阅读模式
(defun XENTSELX (msg / a)
  (while
    (if    (not (setq a (entsel msg)))  ;新建点选选集时,左键没有选择到物体和空格,回车,右键退出的效果一样返回nil
      (/= 52 (getvar "errno"))          ;点右键退出还是点左键空选退出, 查看错误码errno.
    )                                   ;如果为7 则是左键空选退出, 如果为52, 则是右键退出.
  )
  (car a)
)
     ;利用格式刷来刷填充图案,让其比例和图案一致,并且过滤选择出其中的hatch填充图案
(defun c:cah (/ cm s1 s2 cd_err0)
  (princ "\n* 格式刷特性匹配Hatch填充图案→|HATCH| *")
  (setvar "cmdecho" 1)
  (if (setq s1 (XENTSELX "\n拾取源|HATCH|对象 <退出>:"))
    (progn
                 (princ "\n选择目标|HATCH|对象 <退出>:")
                 (if (setq s2 (ssget '((0 . "hatch"))))
                     (progn
      (command ".painter" s1 s2 "")
                     )
                 )
    )
  )
  (princ)
)
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2019-6-5 16:14:59 | 显示全部楼层
学习一下,看图纸比较方便
发表于 2012-4-18 09:04:03 | 显示全部楼层

给你参考:
;;亮显指定颜色的实体
(defun c:KK (/ coa co ssco i one )
  (setq coa (getvar "CECOLOR"))
  (initdia)
  (command ".color")(setvar "cmdecho" 0)
  (setq co (getvar "CECOLOR"))
  (SETQ SSCO(SSGET "X" (LIST (CONS 62 (atoi co)))))
  (setvar "CECOLOR" coa)
  (setq i 0)
  (repeat (sslength ssco)
    (setq one (ssname ssco i))
    (redraw one 3)
    (setq i (1+ i)))
  (setvar "cmdecho" 1) (princ))
 楼主| 发表于 2012-4-18 09:46:01 | 显示全部楼层
参数类型错误呀,谢谢!
发表于 2012-4-18 09:57:55 | 显示全部楼层
andyhua 发表于 2012-4-18 09:46
参数类型错误呀,谢谢!

不好意思,前面程序没调试,其实只要这个函数就行,redraw

(setq sst (ssget));取得选择集
(setq i -1)
(repeat (sslength sst)
(redraw (ssname sst (setq i (1+ i))) 3);显示
)

评分

参与人数 1金钱 +5 收起 理由
Clark_James + 5 很给力!

查看全部评分

发表于 2012-4-18 10:05:26 | 显示全部楼层
check acet-ss-redraw (ET)
 楼主| 发表于 2012-4-18 10:25:06 | 显示全部楼层
【KAIXIN】 发表于 2012-4-18 09:57
不好意思,前面程序没调试,其实只要这个函数就行,redraw

(setq sst (ssget));取得选择集

版主大哥,不会呀。其实我对LISP一窍不通。根本就不知道怎么加了,加在哪里呀?55555555555555555555555
发表于 2012-4-18 10:39:38 | 显示全部楼层
andyhua 发表于 2012-4-18 10:25
版主大哥,不会呀。其实我对LISP一窍不通。根本就不知道怎么加了,加在哪里呀?55555555555555555555555

(defun XENTSELX (msg / a)
  (while
    (if    (not (setq a (entsel msg)))  ;新建点选选集时,左键没有选择到物体和空格,回车,右键退出的效果一样返回nil
      (/= 52 (getvar "errno"))          ;点右键退出还是点左键空选退出, 查看错误码errno.
    )                                   ;如果为7 则是左键空选退出, 如果为52, 则是右键退出.
  )
  (car a)
)
     ;利用格式刷来刷填充图案,让其比例和图案一致,并且过滤选择出其中的hatch填充图案
(defun c:KK (/ cm s1 s2 cd_err0)
  (princ "\n* 格式刷特性匹配Hatch填充图案→|HATCH| *")
  (setvar "cmdecho" 1)
  (setq s1 (XENTSELX "\n拾取源|HATCH|对象 <退出>:"));   
     (redraw s1 3);显示
      (princ "\n选择目标|HATCH|对象 <退出>:")
          (if (setq s2 (ssget '((0 . "hatch"))))
                  (progn
      (command ".painter" s1 s2 "")
                     )
                 )
  (princ)
)
 楼主| 发表于 2012-4-18 11:43:40 | 显示全部楼层
谢谢斑竹老大,非常的感谢。
发表于 2012-4-18 19:39:29 | 显示全部楼层
顶开心。开开心心!!!
发表于 2012-12-1 18:42:12 | 显示全部楼层
学习学习,高手还挺多!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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