找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 4715|回复: 27

[每日一码] 【函数分享】根据G版思路写的右键菜单函数。附实例代码。

[复制链接]
发表于 2013-5-19 11:14:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
本帖最后由 wowan1314 于 2013-5-19 17:15 编辑

根据G版思路写的“对话框”,或者叫“右键菜单函数”更准确些。
原帖地址:
这样的对话框用LISP能搞出不?
http://bbs.xdcad.net/thread-667749-1-1.html
(出处: 晓东CAD家园-论坛)
;;==========================右键菜单函数V1.0--先关闭捕捉===========BY WOWAN1314
;;                      思路来源----G版        程序制作:----WOWAN1314  
;;主要参考资料: CAOYIN刷子函数及"流浪水手"的拖拽实例其他不一一点名了。基本是拼凑出来的。
;; 感谢G版,caoyin  流浪水手...一发程序发现大部分都是别人写的。有的都不记的作者了。哎。怪不得好多人都不敢发
;;免责声明:本着开源精神,本代码可随意复制。仅供参考、交流。实际工作不得使用,否则后果自负。
;;=========================================================================;;;;功能:在指定点产生类似右键菜单的表格框供选择。并返回选择值。
;;调用格式:(YY:YJCAIDAN PT LEN LEN1 WZLST TUXIAN)
;;参数:        PT表格产生点,len格子大小。tuxian为要作底的文字内容. WZLST为要写的文字表.LEN1横向长度,
;;                  共计5个参数TUXIAN可为NIL,其他必须有值.
;;附加说明:表格横向固定2格,竖向多少格由文字表决定. 竖向长度固定,横向长度自定. 文字样式随当前
;;返回值:   表(0 "DN15").表内第一项为数字:表示选择了WZLST的第几项(其中0表示第一个文字),   ;;                                         表内第二项为对应的文字内容.
;;=========================================================================;;
  1. ;;;======================{  示例代码:修改替换管径文字 }====================;;
  2. ;;;
  3. (DEFUN C:T11 (/ EN WZTXT WZLST LEN OLDWZ LEN1 SNAP WZ *error* error_end)
  4. ;;-------------------------------出错函数
  5.    (defun *error* (x) (error_end)(command "_.undo" "1"))
  6.    (defun error_end ()
  7.       (AND snap (setvar "osmode" snap));打开捕捉
  8.       (command "_.undo" "e");结束编组
  9.       ;回到当初
  10.       (REDRAW);刷新当前
  11.    )
  12. ;;主函数
  13. (command "_.undo" "Be")
  14.   (WHILE (SETQ EN (entsel "\n选择要修改管径的文字:"))
  15.     (IF  (AND (SETQ WZTXT (DXF_READ 1 (CAR EN)))
  16.        (wcmatch WZTXT "*DN##*")
  17.   )        ;管径
  18.       (PROGN
  19.   (SETQ WZLST (LIST "DN15"    "DN20"    "DN32"  "DN40"
  20.         "DN50"    "DN65"    "DN75"  "DN80"
  21.         "DN100"   "DN300"   "DN150"  "DN200"
  22.         "你好"
  23.        )
  24.   )
  25.   (SETQ len   (p2u222 88)
  26.         OLDWZ WZTXT
  27.         LEN1  (* 0.26 4 LEN)
  28.         ;;计算横向长度
  29.   )
  30.   (setq snap (getvar "osmode"))
  31.   (setvar "osmode" 0)    ;关闭
  32.   (IF (SETQ WZ (CADR (YY:YJCAIDAN (CADR EN) LEN LEN1 WZLST OLDWZ)));;调用菜单函数
  33.     (YY_SubUpd (CAR EN) 1 WZ) ;;此处放回调函数
  34.   )        ; IF

  35.       )
  36.     )          ;END IF
  37.   )
  38. (error_end)
  39.   (PRINC)
  40. )          ;END DEFUN

  41. ;;;===========================================得到当前屏幕的大小比例
  42. (defun p2u222 (pix)
  43.   (* pix (/ (getvar "viewsize") (cadr (getvar "screensize"))))
  44. )
GRREAD右键菜单演示.gif

右键菜单函数.LSP

9.18 KB, 阅读权限: 20, 下载次数: 55, 下载积分: D豆 -1 , 活跃度 1

售价: 10 D豆  [记录]

收点辛苦码字费

评分

参与人数 7D豆 +33 贡献 +2 收起 理由
tigcat + 5 太厉害了
xshrimp + 5 + 1 很给力!经验;技术要点;资料分享奖!
Lispboy + 5 很给力!经验;技术要点;资料分享奖!
ScmTools + 3 好主题奖!
XDSoft + 6 + 1 很给力!经验;技术要点;资料分享奖!
炫翔 + 5 很给力!经验;技术要点;资料分享奖!
牢固 + 4 很给力!经验;技术要点;资料分享奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 1632个

财富等级: 堆金积玉

发表于 2013-5-19 12:21:32 | 显示全部楼层
支持!再接再励
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-5-19 15:24:37 | 显示全部楼层
支持楼主。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-5-19 16:34:26 | 显示全部楼层
楼主,看我第一个购买你附件的份上,你给讲讲这个程序呗,用的是画的临时的线和文字吗,用后删除?

点评

CAD的右键菜单用完你能留在屏幕上吗?! 肯定得删除。加出错处理- 出错就后退一步,或者单独对此函数处理出错。第二中不知道能不能行!!  发表于 2013-5-19 16:40
画的都 真线 真文字 ,不然得时刻重写。 选中部分的外框虚线是临时的。 你选择完肯定就删除啦。主程序得加出错处理。不然会留在屏幕上.  发表于 2013-5-19 16:37

评分

参与人数 1D豆 +5 收起 理由
wowan1314 + 5 商家回馈奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-5-19 16:53:46 | 显示全部楼层
我看了你的代码,里面好像没出错处理的函数,如果过程中按ESC什么了,那些临时的线或者字是不是要留在屏幕上?

点评

难道我还得把出错处理也写到示例代码中?! 算了我再完善下吧。 反正今天都不做事了  发表于 2013-5-19 16:58
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-19 16:56:48 | 显示全部楼层
Lispboy 发表于 2013-5-19 16:53
我看了你的代码,里面好像没出错处理的函数,如果过程中按ESC什么了,那些临时的线或者字是不是要留在屏幕 ...

主要是提供 这个函数。。:L

其他出错处理 各自主程序中写。。 示例代码仅演示如何调用这个函数。

示例代码也是随便写的。实际工作我也不用这个示例代码,所以没有完善。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-5-19 17:12:13 | 显示全部楼层
wowan1314 发表于 2013-5-19 16:56
主要是提供 这个函数。。

其他出错处理 各自主程序中写。。 示例代码仅演示如何调用这个函数。

坐等,送茶。{:soso_e160:}

点评

呵呵! 应该可以了。不行就你来改算啦。 我得休息了。。最近都在玩了  发表于 2013-5-19 17:22
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-5-19 18:24:50 | 显示全部楼层
这个可以有,支持
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-5-19 22:08:43 | 显示全部楼层
这个不错,大力支持:)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-5-24 14:23:16 | 显示全部楼层
楼主,我用了,怎么一闪瞬间就没有了,什么也做不了,不知是怎么回事。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3256个

财富等级: 富可敌国

发表于 2013-5-25 14:43:08 | 显示全部楼层
举、四肢支持  太厉害了,再修炼一年后 估计能看懂了呵呵
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-6-4 10:28:23 | 显示全部楼层
acwipeout.arx,2013裡頭沒有,要如處理
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2221个

财富等级: 金玉满堂

发表于 2013-6-4 12:38:41 | 显示全部楼层
dear sir, wow nice
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6468个

财富等级: 富甲天下

发表于 2013-6-9 12:36:31 | 显示全部楼层
兄弟的精帖也好多,学习一下思路。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2476个

财富等级: 金玉满堂

发表于 2013-6-19 07:44:02 | 显示全部楼层
CAD2013不能用呀!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-15 19:32 , Processed in 0.243455 second(s), 68 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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