明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2145|回复: 10

[源码] <已解决>有关鼠标左右键转换

[复制链接]
发表于 2011-4-8 22:24 | 显示全部楼层 |阅读模式
本帖最后由 AMTONNY 于 2011-4-23 23:33 编辑

    我现需一简单程序,在进行连续标注过程中点右键进行切换,不知哪位版主帮忙写一下,要求如下:
    (command "DIMCONTINUE" )
点右键切换为
    (command "DIMORDINATE" )

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2011-4-9 23:16 | 显示全部楼层
本帖最后由 xiaxiang 于 2011-4-9 23:44 编辑





  1. (setq   cmd  ".DIMCONTINUE")

  2. ...

  3. (princ "\n 右键=... /  左键=... / 空格;回车=退出:")
  4.     (setq gr (grread nil 4 2)
  5.       ga (car gr)
  6.       gb (cadr gr))
  7. ...
  8. (cond
  9. ((= ga 3)
  10.        (princ "\n选实体:")
  11. ...
  12. )

  13. ...
  14. ((= 25 ga)(if (= cmd ".DIMCONTINUE") ;;切换.
  15.   (progn (princ "\n 模式: ...\n选实体:")(setq cmd ".DIMORDINATE"))
  16.   (progn (princ "\n 模式: ...\n选实体:")(setq cmd ".DIMCONTINUE"))
  17.               )
  18. )
  19. ...
  20. )


 楼主| 发表于 2011-4-10 21:31 | 显示全部楼层
多谢xiaxiang 大侠的指点,但我不会把代码加入我的程序中,麻烦帮忙完善,谢谢!!以下是我的程序:

(defun c:d()
  (setvar "orthomode" 1)
  (setq bas (getpoint "\n请指定坐标标注原点:"))
  (setvar "OSMODE" 0)
  (command "UCS" "o" bas)  ;;;将UCS移至标注原
  (setvar "OSMODE" 183)
       (command "_dimordinate" pause pause "")
       (command "_DIMCONTINUE");;;;程序到此处运行良好,当我想结束 连续标注 时点击右键,产生了右键的信号,程序如何取得该信号后转入坐标标注,连续标注而不需要退出程序,直到按Esc键退出为止,谢谢
  (setq err (getvar "errno"))
(if (= err 52)    (command "_dimordinate" pause pause "")
       (command "_DIMCONTINUE"))


)
 楼主| 发表于 2011-4-11 22:04 | 显示全部楼层
各位大侠能不能出手帮忙呀
发表于 2011-4-12 09:16 | 显示全部楼层
Let me try if I can do something for you.
 楼主| 发表于 2011-4-12 19:58 | 显示全部楼层
谢谢xiaxiang 大侠热心帮忙
发表于 2011-4-14 16:40 | 显示全部楼层
不了解您的具体要求,做了个程序,不合适可以商量。

  1. ;;;连续标注&坐标标注切换程序0.2
  2. ;;;By xiaxiang 明经通道
  3. (defun c:dd (/ bas cmd  ga gb gr roop sel err )
  4.   (setvar "orthomode" 1)
  5.   (setq bas (getpoint "\n请指定坐标标注原点:"))
  6.   (setvar "OSMODE" 0)
  7.   (command "UCS" "o" bas)  ;;;将UCS移至标注原
  8.   (setvar "OSMODE" 183)
  9.    (command "_dimordinate" pause pause )
  10. (setq roop T)
  11. (setq   cmd  ".DIMCONTINUE")
  12. (while roop
  13. (princ "\n 右键=切换标注模式 /  左键=选标注实体 :")
  14.     (setq gr (grread nil 4 2)
  15.       ga (car gr)
  16.       gb (cadr gr))
  17. (cond
  18. ((and(= ga 3)(= cmd ".DIMCONTINUE"))
  19. (setvar "OSMODE" 183)
  20. (command cmd  pause "" "" )
  21. )
  22. ((and(= ga 3)(= cmd ".DIMORDINATE"))
  23. (setvar "OSMODE" 695)
  24. (setq sel (car(cdr(nentselp gb))))
  25. (if (= sel nil)
  26. (command cmd  pause pause)
  27. (command cmd  sel pause)
  28. )
  29. )
  30. ((= 11 ga)(if (= cmd ".DIMCONTINUE") ;;切换.
  31.   (progn (princ "\n 模式: 坐标标注")(setq cmd ".DIMORDINATE"))
  32.   (progn (princ "\n 模式: 连续标注")(setq cmd ".DIMCONTINUE"))
  33.               )
  34. )
  35. )
  36. )
  37. (setq err (getvar "errno"))
  38. (if (= err 52)    (command "_dimordinate" pause pause "")
  39.        (command "_DIMCONTINUE"))
  40. )
基本上是揣摩了您的意图编写。

本帖子中包含更多资源

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

x
 楼主| 发表于 2011-4-24 16:20 | 显示全部楼层
本帖最后由 AMTONNY 于 2011-4-24 21:35 编辑

(defun c:d()
  (setvar "orthomode" 1)
  (setq bas (getpoint "\n请指定坐标标注原点:"))
  (setvar "OSMODE" 0)
  (command "UCS" "o" bas)  ;;;将UCS移至标注原

       (command "_dimordinate" "0,0" "-5,0" "")
       (command "_dimordinate" "0,0" "0,-5" "")
(setvar "OSMODE" 183)
       (command "_DIMCONTINUE"))
发表于 2011-4-24 20:05 | 显示全部楼层
AMTONNY 发表于 2011-4-24 16:20
(defun c:d()
  (setvar "orthomode" 1)
  (setq bas (getpoint "\n请指定坐标标注原点:"))

就这么简单?不用左右键切换?
 楼主| 发表于 2011-4-24 21:32 | 显示全部楼层
谢谢9楼的帮忙,问题目已经解决了,我要的结果就是我上传的程序,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-10 10:47 , Processed in 0.155722 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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