明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[已解答] 大师们方便帮看一下这个标注程序错在哪里吗?

[复制链接]
发表于 2014-11-8 21:49:05 | 显示全部楼层
  1. (defun c:`q();线性
  2. (initget 1)
  3. (setq pt1 (entsel "\n请指定标注起点:"))
  4. (initget 1)
  5. (setq pt2 (entsel "\n请指定标注终点:"))
  6. (command "dimlinear" (cadr pt1) (cadr pt2) pause)
  7. (princ)
  8. )
 楼主| 发表于 2014-11-8 22:34:53 | 显示全部楼层
ZZXXQQ 发表于 2014-11-8 21:49

Z版,和原来的程序相差太远了啊!

原来的:
1:点左键时,光标没有落在任何图元上,程序退出,如果点左键时,光标落在图元上,程序就可以继续运行到点第二点,如果点第二点时,光标没有落在任何图元上,程序退出,如果点第二点时,光标落在图元上,程序标出一个线性标注并循环到开始
2:按右键,可以选一根线,标出一个线性标注,并循环到开始

现在想改为:当程序顺利运行到要点第二点时,如果第二点没有落在任何图元上,程序不退出,直到点到图元或按右键退出
发表于 2014-11-9 11:16:35 | 显示全部楼层
(defun c:`q();線性
(setq bz? (getpoint "\n左鍵標兩點,右鍵選線"))
(setq gbwz (grread 3));游標位置
(if (member (car gbwz) '(3 5))
(setq od (cadr gbwz)));滑鼠位置
(if bz?
(bz)
(bzz)
)
(princ))

(defun bz()
(if (ssget od)
  (progn
    (while (not (ssget (setq pt2 (getpoint od "\n請指定標注終點:")))))
    (command"dimlinear" od pt2)
    (while (= 1 (getvar "cmdactive"))(command pause))
    (c:`q)
  )  
)

(princ))

(defun bzz()
(command "dimlinear""")
(while (= 1 (getvar "cmdactive"))(command pause))
(c:`q)
(princ))

点评

再次非常感谢你lsjj大师,这正是我想要的效果  发表于 2014-11-9 21:07

评分

参与人数 1明经币 +1 收起 理由
669423907 + 1 谢谢

查看全部评分

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

本版积分规则

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

GMT+8, 2025-5-23 21:32 , Processed in 0.145447 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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