请wowan1314大侠出手,深化右键菜单函数
wowan1314大侠的右键菜单函数非常不错,使用方便实用。无奈我不会编程,只会皮毛,故请wowan1314大侠拔刀相助,将右键菜单函数深化这些功能。1、文字修改功能,在无修改文字时自动调整为插入文字。
2、固定右键菜单文字字体,不会随修改文字变化。
再次感谢!http://bbs.mjtd.com/thread-101509-1-1.html 本帖最后由 wowan1314 于 2013-7-10 14:36 编辑
这个是在主程序中 写的东西。 右键函数不需要调整啊
楼主可尝试写写。 不会太难的。
1/
(setvar 'textstyle "YB");;这个是设定文字样式的。 YB为文字样式
在右键函数前,设定文字样式。这样右键菜单的文字样式就固定为你制定的样式了。
2/
我那个示例代码,有个选择文本, 原来估计是选择到文本并满足要求就出现右键菜单。
你在后面加上如果不满足要求也出现右键菜单,并根据菜单函数返回的文字,在选择点处插入文字。
(entmake (list '(0 . "TEXT") (cons 1 str) (cons 10 pt) (cons 40 5)));;这个创建文字, STR是文字内容 PT是文字插入点. 谢谢wowan1314及时回复,我试下,不懂再向你请教! wowan1314 发表于 2013-7-10 14:19 static/image/common/back.gif
这个是在主程序中 写的东西。 右键函数不需要调整啊
楼主可尝试写写。 不会太难的。
wowan1314大侠,我还是搞不定,希望你能出手! 众山小 发表于 2013-7-11 13:04 static/image/common/back.gif
wowan1314大侠,我还是搞不定,希望你能出手!
你试下看!估计是不怎么好用!(DEFUN C:T11 (/ EN WZTXT WZLST LEN OLDWZ LEN1 SNAP WZ *error* error_end
P1)
;;-------------------------------出错函数
(defun *error* (x) (error_end) (command "_.undo" "1"))
(defun error_end ()
(AND snap (setvar "osmode" snap)) ;打开捕捉
(command "_.undo" "e") ;结束编组
;回到当初
(REDRAW) ;刷新当前
)
;;主函数
(command "_.undo" "Be")
(SETQ EN (entsel "\n选择要修改管径的文字:"))
(SETQ WZLST (LIST "DN15" "DN20" "DN32" "DN40" "DN50"
"DN65" "DN75" "DN80" "DN100" "DN300"
"DN150" "DN200" "你好"
)
)
(SETQ len (p2u222 88)
OLDWZ WZTXT
LEN1(* 0.26 4 LEN)
;;计算横向长度
)
(setvar 'textstyle "YB")
;;YB为文字样式,自定义
(IF (AND (SETQ WZTXT (DXF_READ 1 (CAR EN)))
(wcmatch WZTXT "*DN##*")
) ;管径
(progn
;;假如是管径文字那么久改文字
(setq snap (getvar "osmode"))
(setvar "osmode" 0) ;关闭
(IF (SETQ WZ (CADR (YY:YJCAIDAN (CADR EN) LEN LEN1 WZLST OLDWZ)))
;;调用菜单函数
(YY_SubUpd (CAR EN) 1 WZ)
;;此处放回调函数
) ; IF
) ;END PROGN
(progn
;;假如不是管径文字或没选中那么久插入文字
(setq P1 (getpoint "\n选择文字插入点:"))
(if P1
(progn
(setq snap (getvar "osmode"))
(setvar "osmode" 0) ;关闭
(IF (SETQ WZ (CADR (YY:YJCAIDAN P1 LEN LEN1 WZLST OLDWZ)))
;;调用菜单函数
(entmake (list '(0 . "TEXT")
(cons 1 WZ)
(cons 10 p1)
(cons 40 5)
)
)
) ; IF
)
)
) ;END PROGN
) ;END IF
(error_end)
(PRINC)
) ;END DEFUN
;;;===========================================得到当前屏幕的大小比例
(defun p2u222 (pix)
(* pix (/ (getvar "viewsize") (cadr (getvar "screensize"))))
) 最近比较忙,一直没有上来。今天一上论坛就看见wowan1314 大侠的留言,非常感谢你无私帮助!一会我试试!
页:
[1]