明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3032|回复: 17

求助,如何让下面的代码可以拾取到不是标注对象而不出错,退出。

  [复制链接]
发表于 2012-4-30 18:57:47 | 显示全部楼层 |阅读模式
求助大侠们,如何让下面的代码,只能过虑拾取标注对象,而不是现在的,比如拾取到了LINE,程序就会出错退出。希望改成当拾取到不是标注对象时,可以继续的循环拾取,直到选择到了标注对象为止。谢谢。

(defun XENTSELX (msg / a)
  (while
    (if    (not (setq a (entsel msg)))  ;新建点选选集时,左键没有选择到物体和空格,回车,右键退出的效果一样返回nil
      (/= 52 (getvar "errno"))          ;点右键退出还是点左键空选退出, 查看错误码errno.
    )                                   ;如果为7 则是左键空选退出, 如果为52, 则是右键退出.
  )
  (car a)
)

     ;;;利用dimstyle命令将选择的标注的样式置为当前标注样式
(defun c:des (/ cm ss cd_err0)
  (princ "\n*** 将选择的 |标注的样式| & |图层| 置为当前 ***")
  (setq cm (getvar "cmdecho"))
  (setq cd_err0 *error* *error* cd_err)
  (setvar "cmdecho" 1)
  (setq ss (XENTSELX "\n拾取要置为当前样式的标注 <退出>:"))
  (if ss
     (progn
           (command ".dimstyle" "r" "" ss)
           (command ".laymcur" ss)
     )
  )
  (setvar "cmdecho" cm)
  (setq *error* cd_err0)
  (princ)
)
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2012-4-30 20:38:53 | 显示全部楼层
调用 SSGET
i.e.
(while (not (setq ss (ssget  ":E:S" '((0 . "DIMENSION"))))))
(car (ssname ss  0))

 楼主| 发表于 2012-5-2 08:17:59 | 显示全部楼层
请问,楼上的大师,上面的代码应该加在哪里呀,怎么用了,小弟我对LISP不懂哦。谢谢
发表于 2012-5-2 09:08:40 | 显示全部楼层
本帖最后由 Andyhon 于 2012-5-3 15:54 编辑

(defun c:des (/ cm ss cd_err0)
  (princ "\n*** 将选择的 |标注的样式| & |图层| 置为当前 ***")
  (setq cm (getvar "cmdecho"))
  (setq cd_err0 *error* *error* cd_err)
  (setvar "cmdecho" 1)
  ;; (setq ss (XENTSELX "\n拾取要置为当前样式的标注 <退出>:"))
  (while (not (setq ss (ssget  ":E:S" '((0 . "DIMENSION"))))))
  (setq ss  (ssname ss  0))
  (command ".dimstyle" "r" "" ss)
  (command ".laymcur" ss)
  (setvar "cmdecho" cm)
  (setq *error* cd_err0)
  (princ)
)
 楼主| 发表于 2012-5-2 11:55:25 | 显示全部楼层
谢谢长老的关注。不过好像程序无法达到预期的目的。本来我想是,拾取了尺寸样式后让当前的尺寸样式为被拾取的样式,同时,当前图层也是被拾取的样式的图层。但是,长老的程序好像不能达到这个效果。谢谢!
发表于 2012-5-2 12:03:11 | 显示全部楼层
只异动了选取部份呀
请先行确认在您的 PC 上,能用原程序达成所需
 楼主| 发表于 2012-5-2 13:28:52 | 显示全部楼层
原程序在电脑上,是可以实现上面的功能的。只是当拾取到不是标注的对象后,会出错而已了。
发表于 2012-5-2 14:04:15 | 显示全部楼层
未审何处兜不拢
请上传配进调试用的图样
分述程序程序执行前后...
 楼主| 发表于 2012-5-3 08:22:02 | 显示全部楼层
长老真是个热心人呀,谢谢长老的关心。测试图,测试要的效果及源LISP都在附件中,麻烦长老有时间下载看看。谢谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2012-5-3 15:19:22 | 显示全部楼层
长老怎么不光顾了,顶起来!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-21 17:42 , Processed in 0.236965 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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