<已解决>有关鼠标左右键转换
本帖最后由 AMTONNY 于 2011-4-23 23:33 编辑我现需一简单程序,在进行连续标注过程中点右键进行切换,不知哪位版主帮忙写一下,要求如下:
(command "DIMCONTINUE" )
点右键切换为
(command "DIMORDINATE" )
本帖最后由 xiaxiang 于 2011-4-9 23:44 编辑
(setq cmd".DIMCONTINUE")
...
(princ "\n 右键=... /左键=... / 空格;回车=退出:")
(setq gr (grread nil 4 2)
ga (car gr)
gb (cadr gr))
...
(cond
((= ga 3)
(princ "\n选实体:")
...
)
...
((= 25 ga)(if (= cmd ".DIMCONTINUE") ;;切换.
(progn (princ "\n 模式: ...\n选实体:")(setq cmd ".DIMORDINATE"))
(progn (princ "\n 模式: ...\n选实体:")(setq cmd ".DIMCONTINUE"))
)
)
...
)
多谢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"))
)
各位大侠能不能出手帮忙呀 Let me try if I can do something for you. 谢谢xiaxiang 大侠热心帮忙 不了解您的具体要求,做了个程序,不合适可以商量。
;;;连续标注&坐标标注切换程序0.2
;;;By xiaxiang 明经通道
(defun c:dd (/ bas cmdga gb gr roop sel err )
(setvar "orthomode" 1)
(setq bas (getpoint "\n请指定坐标标注原点:"))
(setvar "OSMODE" 0)
(command "UCS" "o" bas);;;将UCS移至标注原
(setvar "OSMODE" 183)
(command "_dimordinate" pause pause )
(setq roop T)
(setq cmd".DIMCONTINUE")
(while roop
(princ "\n 右键=切换标注模式 /左键=选标注实体 :")
(setq gr (grread nil 4 2)
ga (car gr)
gb (cadr gr))
(cond
((and(= ga 3)(= cmd ".DIMCONTINUE"))
(setvar "OSMODE" 183)
(command cmdpause "" "" )
)
((and(= ga 3)(= cmd ".DIMORDINATE"))
(setvar "OSMODE" 695)
(setq sel (car(cdr(nentselp gb))))
(if (= sel nil)
(command cmdpause pause)
(command cmdsel pause)
)
)
((= 11 ga)(if (= cmd ".DIMCONTINUE") ;;切换.
(progn (princ "\n 模式: 坐标标注")(setq cmd ".DIMORDINATE"))
(progn (princ "\n 模式: 连续标注")(setq cmd ".DIMCONTINUE"))
)
)
)
)
(setq err (getvar "errno"))
(if (= err 52) (command "_dimordinate" pause pause "")
(command "_DIMCONTINUE"))
)基本上是揣摩了您的意图编写。
本帖最后由 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")) AMTONNY 发表于 2011-4-24 16:20 static/image/common/back.gif
(defun c:d()
(setvar "orthomode" 1)
(setq bas (getpoint "\n请指定坐标标注原点:"))
就这么简单?不用左右键切换? 谢谢9楼的帮忙,问题目已经解决了,我要的结果就是我上传的程序,谢谢
页:
[1]
2