找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 636|回复: 7

[讨论]:未选择到标准图框不退出程序

[复制链接]
发表于 2005-3-21 23:58:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
(defun c:hh (/ )
(setvar "cmdecho" 0)
(setq s (cdr (assoc -1 (entget (car (entsel))))))
(if (= nil s)
(princ "\n请点击标准A3图框,重新选择!!!")
)
(setq li (entget s))
(if  (=(cdr  (assoc '2  li)) "A3")
(progn
(setq p1  (assoc '10 li))
(setq p0 ( list (nth 1 p1) (nth 2 p1)))
(setq xx (cdr (assoc '41 li)))
(setq yy (cdr (assoc '42 li)))
(setq x (* xx 289))
(setq y (* yy 200))
(setq p1 (polar p0 (/ pi 2) y))
(setq p2 (polar p0 0 x))
;(setq s nil)

           (setq c (abs (- (car p1) (car p2))))
           (setq d (abs (- (cadr p1) (cadr p2))))
           (if (> c d) (cond ((<= (/ c 289) 2) (setq x 2.2))
                             ((and (> (/ c 289) 2) (<= (/ c 289) 3)) (setq x 1.9))
                             ((> (/ c 289) 3) (setq x 1.6))
                       )
           )
           (if (> c d) (setq e(* (/ c 289) x))
           )
           (command "dimtxt" e
                    "dimasz" (/ e 1.5)
                    "dimexo" (/ e 5)
                    "dimexe" (/ e 5)
                    "-layer" "s" "dim" "")
           (prompt "\nTEXT HIGH EQUAL:")
           (print e)
)
(princ "\n未找到标准A3图框,重新选择!!!")
)
(princ))

*************************************************************************************
上面程序可用,只是2段中文字的地方有问题,有哪位高手能改动一下程序,将上面的程序设置为未选到名为"A3"的block标准图框不会退出程序,而是继续选择,谢谢~!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-3-22 07:52:34 | 显示全部楼层
[php]
(while (not (setq s1 (entsel "\n请点击标准A3图框!!!")))
    (if        (/= (dxf 2 (entget (car s1))) "A3")
      (setq s1 nil)
    )
  )
(defun dxf (code elist) (cdr (assoc code elist)))
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-22 12:35:15 | 显示全部楼层
楼上的朋友,你的程序应该如何加载到里面呢?好像不行哦~!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-3-22 12:58:33 | 显示全部楼层
最初由 啵浪鼓 发布
[B]楼上的朋友,你的程序应该如何加载到里面呢?好像不行哦~! [/B]

只是告诉一个方法,而不是全部程序。
并不知程序到底是干什么用的?
[php]
;;;加载通用函数
;;;下载:http://www.xdcad.net/forum/showthread.php?s=&threadid=325268
(load "xyp_lib")

;;;未选择到标准图框不退出程序
(defun c:test (/)
  (cmdla0)
  (while (not (setq s1 (entsel "\n请点击标准A3图框!!!")))  
    (if        (and s1 (= (dxf 2 (entget (car s1))) "A3"))
      (princ)
      (setq s1 nil)
    )
  )
  (setq        s  (car s1)
        li (entget s)
        p1 (assoc '10 li)
        p0 (list (nth 1 p1) (nth 2 p1))
        xx (cdr (assoc '41 li))
        yy (cdr (assoc '42 li))
        x  (* xx 289)
        y  (* yy 200)
        p1 (polar p0 (/ pi 2) y)
        p2 (polar p0 0 x)
        c  (abs (- (car p1) (car p2)))
        d  (abs (- (cadr p1) (cadr p2)))
  )
  (if (> c d)
    (cond ((<= (/ c 289) 2) (setq x 2.2))
          ((and (> (/ c 289) 2) (<= (/ c 289) 3)) (setq x 1.9))
          ((> (/ c 289) 3) (setq x 1.6))
    )
  )
  (if (> c d)
    (setq e (* (/ c 289) x))
  )
  (mkla"dim"3)
  (command "dimtxt" e "dimasz" (/ e 1.5) "dimexo" (/ e 5) "dimexe" (/ e 5) "-layer" "s" "dim" "")
  (prompt "\TEXT HIGH EQUAL : ")
  (print e)
  (cmdla1)
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-22 23:25:16 | 显示全部楼层
呵呵,谢谢xyp1964朋友,经你这一改,程序可以在未选择到物体时继续选择.

但好像这段命令在我的电脑里不起作用
(if (and s1 (= (dxf 2 (entget (car s1))) "A3"))
运行后出错:   ; 错误: no function definition: DXF

竟然上面的这句话不起作用,未选择到物体是可以继续选择,但是选择到物体而非A3图框时程序就退出了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-3-23 07:41:06 | 显示全部楼层
最初由 啵浪鼓 发布
[B]呵呵,谢谢xyp1964朋友,经你这一改,程序可以在未选择到物体时继续选择.

但好像这段命令在我的电脑里不起作用
(if (and s1 (= (dxf 2 (entget (car s1))) "A3"))
运行后出错:   ; 错误: no function definition:... [/B]


先下载通用函数xyp_lib.fas!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-3-24 00:16:19 | 显示全部楼层
这么写结构上不够严谨
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-24 13:06:39 | 显示全部楼层
哦,陌生人长老将程序改一下可好?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-28 00:37 , Processed in 0.190345 second(s), 44 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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