tranney 发表于 2013-6-7 23:23:38

几个二合一命令,是多位高手帮忙弄的,我只是拿出来给大家,希望大家喜欢

第一个小程序,按tt,切换单行文字和 多行文字
这2个命令用的少,又占了左手键,所以整合
(setq ddd1 1)
(defun c:tt()
(setq ddd1 (* ddd1 -1))
(if (> ddd1 0)(princ "绘图工具绘制 多行文字:\n")
(princ "绘图工具绘制 单行文字 :\n"))
(if (> ddd1 0)
(c:mt)
(command "dtext") )
(princ)
)

第2个,按a,切换弧和圆,这2个也用的少,
(setq aaa1 1)
(defun c:a()
(setq aaa1 (* aaa1 -1))
(if (> aaa1 0)(princ "绘图工具绘制圆:\n")
(princ "绘图工具绘制弧:\n"))
(if (> aaa1 0)
(command "_.CIRCLE")
(command "_.arc") )
(princ)
)
第3个,
;---------- 显示顺序 切换 开始
;---------- 通用2选1程序
(setq bbb1 1)
(defun c:hx()
(setq bbb1 (* bbb1 -1))
(if (> bbb1 0)(c:qzwt)(c:hzwt))
(princ)
)
(defun c:qzwt (/ ss)
(print "   调整显示顺序,前置物体")
(setq ss (ssget))
(command "DRAWORDER" ss "" "f")
)
(defun c:hzwt (/ ss)
(print "   调整显示顺序,后置物体")
(setq ss (ssget))
(command "DRAWORDER" ss "" "b")
)
;---------- 显示顺序 切换 结束
第4个,我是切换前缀后缀的,是装了文字修改大师才能用的,
;---------- 前缀后缀 切换
;---------- 通用2选1程序
(setq ccc1 1)
(defun c:qz()
(setq ccc1 (* ccc1 -1))
(if (> ccc1 0)(princ "文修大师    前缀:\n") (princ "文修大师    后缀:\n"))
(if (> ccc1 0)(c:cttaa)(c:cttas))
(princ)
)

本来还能切换图层打开关闭,等等很多应用哦,大家自己去想想怎么用吧

金鹅起飞 发表于 2023-12-19 16:04:15

tranney大师好!您的这几个命令组合很好。我很喜欢第3个:

第3个,
;---------- 显示顺序 切换 开始
;---------- 通用2选1程序
(setq bbb1 1)
(defun c:hx()
(setq bbb1 (* bbb1 -1))
(if (> bbb1 0)(c:qzwt)(c:hzwt))
(princ)
)
(defun c:qzwt (/ ss)
(print "   调整显示顺序,前置物体")
(setq ss (ssget))
(command "DRAWORDER" ss "" "f")
)
(defun c:hzwt (/ ss)
(print "   调整显示顺序,后置物体")
(setq ss (ssget))
(command "DRAWORDER" ss "" "b")
)
;---------- 显示顺序 切换 结束

我运行后出现这样的问题:

命令: hx ; 错误: no function definition: C:HZWT

没有函数定义。我是小白,不知该如何解决,请大师指教,怎么处理这个问题,谢了

金鹅起飞 发表于 2023-12-21 08:16:20

昨天忘记告诉大师我的运行环境:
Win10版本, CAD2010版本。谢谢

vlisp2012 发表于 2013-6-8 19:57:03

多谢分享啊!

wowan1314 发表于 2013-6-8 20:05:28

这是怎么实现切换??

我一直以为要用关键词或根据实体类型来实现切换呢!

sicky111 发表于 2013-6-10 02:17:01

我这也有个,画圆或复制二合一,先输命令是画圆;先选图元是复制,也是在论坛上找到的,贴上来,算是一个补充吧。
原帖地址:http://bbs.mjtd.com/forum.php?mod=viewthread&tid=88900

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; c快捷键,当没有选择实体是按c为画圆;当选择实体是按c为复制。
; by: ProgramFancier2011.8.21
; Test in AutoCAD2010
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun c:c()
(setq ss (ssget "i")) ;将已选中的实体加入选择集
(if (= ss nil)
    (command "CIRCLE") ;如果选择集为空,则执行画圆命令
    (command "COPY" "M")   ;如果选择集不为空,则执行复制命令
)
(princ)
)

清风明月名字 发表于 2013-6-10 10:55:39

谢谢众位坛友代码分享!

jyzas 发表于 2013-7-10 22:47:46

终于学习到,谢谢楼友分享

陈亚娣 发表于 2013-7-11 12:29:56

学习学习

恕放之生命 发表于 2014-8-21 20:27:54

谢谢分享。

伪书虫86 发表于 2014-8-22 11:08:07

思路不错,学习了

fantasywait 发表于 2014-8-22 11:10:52

多谢楼主分享
页: [1] 2
查看完整版本: 几个二合一命令,是多位高手帮忙弄的,我只是拿出来给大家,希望大家喜欢