找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: xtdwynij

[求助] 如何自动识别键盘输入与捕捉输入

[复制链接]

已领礼包: 449个

财富等级: 日进斗金

 楼主| 发表于 2013-5-14 01:21:18 | 显示全部楼层
xtdwynij 发表于 2013-5-14 01:15
感谢师兄发的这个代码。我不是要一触即发的!我做的功能都是对我有帮助的实用的。一触即发也只是少按了一 ...

也就是说事先我并不知道长宽。而是了交互输入我才会知道。我先去指定一个点。然后根据交互输入得出其它的点。而用了getdist函数的话只能是知道一个点的前提下才能够去用它。但是我只能够知道一个点。其它的点还是要交互输入才能够知道。这样说不知道师兄是否明白?可能是我表达不够清楚吧!明天我来个动画。
那么晚了师兄还不休息啊?身体是革命的本钱哦!小菜鸟我先下了。明天我再来补上我的问题!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 449个

财富等级: 日进斗金

 楼主| 发表于 2013-5-14 09:57:42 | 显示全部楼层
下面是我附上想要的郊果动画图片以及一个此例的小应用程序!
还请师兄前辈们继续出手!或者说有更好的方法指点一下小菜鸟也行!有进步就行呵呵!感激!
jdfw.gif
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 449个

财富等级: 日进斗金

 楼主| 发表于 2013-5-14 09:59:20 | 显示全部楼层
xtdwynij 发表于 2013-5-14 09:57
下面是我附上想要的郊果动画图片以及一个此例的小应用程序!
还请师兄前辈们继续出手!或者说有更好的方法 ...
  1. (defun xbjk ( / aa bb cc )
  2.   (setvar "osmode" 515)
  3.   (setq aa (getpoint "请指定第一点:"))
  4.   (setq bb (getpoint aa "请指定第二点:"))
  5.   (setq cc (distance aa (list (car bb) (cadr aa))))
  6. )  ;这是量X轴的距离
  7. (defun ybjk (/ dd ee gg)
  8.   (setvar "osmode" 515)
  9.   (setq dd (getpoint "请指定第一点:"))
  10.   (setq ee (getpoint dd "请指定第二点:"))
  11.   (setq gg (distance dd (list (car dd) (cadr ee))))
  12. ) ;这是量y轴的距离

  13. ;===========
  14. (defun c:bjk ( / aa3 cirdist cirent dist ent ent1 ent2 h h1 h2 l l1  pt1 pt1_pt4 pt2 pt2_pt3 pt3 pt3_pt4 pt4 pt5 pt6 pt7 pt8 pt10)
  15.   (setvar "cmdecho" 0)
  16.   (setvar "osmode" 0)
  17.   (initget "A B")
  18.   (setq aa3 (getkword "\n A 捕捉输入 ,B 键盘输入[A捕捉输入]:"))
  19.   (if (null aa3) (setq aa3 "A"))
  20.   (cond
  21.     ((= aa3 "B")
  22.      (setq l (getreal "\n请输入飞机孔总长度:"))
  23.      (setq h (getreal "\n请输入矩形高度:"))
  24.      (setq l1 (getreal "\n请输入上面小孔的长度:"))
  25.      (setq h2 (getreal "\n请输入总高度:"))
  26.     )
  27.     ((= aa3 "A")
  28.        (prompt "\n请输入飞机孔总长度:")
  29.        (setq l (xbjk))
  30.        (prompt "\n请输入矩形高度:")
  31.        (setq h (ybjk))
  32.        (prompt "\n请输入上面小孔的长度:")
  33.        (setq l1 (xbjk))
  34.        (prompt "\n请输入总高度:")
  35.        (setq h2 (ybjk))
  36.     )
  37.   )
  38.   (setq h1 (- h2 h))
  39.   (setq dist (- l h))
  40.   (setq pt10 (getpoint "\n请指定一个点:"))
  41.   (setq pt1 (polar pt10 pi (/ dist 2.)))
  42.   (setq pt2 (polar pt1 0 dist))
  43.   (setq pt3 (polar pt2 (/ pi 2) h))
  44.   (setq pt4 (polar pt1 (/ pi 2) h))
  45.   (setq pt1_pt4 (polar pt1 (/ pi 2) (/(distance pt1 pt4)2)))
  46.   (setq pt2_pt3 (polar pt2 (/ pi 2) (/(distance pt2 pt3)2)))
  47.   (command "line" pt3 pt4 "")
  48.   (setq ent (entlast))
  49.   (command "line" pt1 pt2 "")
  50.   (command "arc" "c" pt1_pt4 pt4 pt1  "arc" "c" pt2_pt3 pt2 pt3)

  51.   (setq pt3_pt4 (polar pt4 0 (/(distance pt4 pt3) 2)))
  52.   (setq pt6 (polar pt3_pt4 pi (/ l1 2)))
  53.   (setq pt7 (polar pt3_pt4 0 (/ l1 2)))
  54.   (setq pt8 (polar pt3_pt4 (/ pi 2) h1))
  55.   (command "circle" "3p" pt6 pt8 pt7)
  56.   (setq ent2 (entlast))
  57.   (setq ent1 (entget ent2))
  58.   (setq cirent (cdr(assoc 10 ent1)))
  59.   (setq cirdist (cdr (assoc 40 ent1)))
  60.   (setq pt5 (polar cirent (/ pi -2) cirdist))
  61.   (command "trim" ent "" (list ent2 pt5) "")
  62.   (command "trim" ent2 "" (list ent pt3_pt4) "")
  63.   (setvar "cmdecho" 1)
  64.   (setvar "osmode" 3)
  65.   (princ)
  66. )

点评

如果我的理解是正确的话,似乎问题被你搞复杂了,知道一个点,知道其他点与这个点的相对关系,其他点是应该计算得到的,而不是一个一个交互输入得到,如果像你这样每个点都交互,就失去编程的意义了。 就本例而言,  详情 回复 发表于 2013-5-14 10:22
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 344个

财富等级: 日进斗金

发表于 2013-5-14 10:11:16 | 显示全部楼层
xtdwynij 发表于 2013-5-14 09:57
下面是我附上想要的郊果动画图片以及一个此例的小应用程序!
还请师兄前辈们继续出手!或者说有更好的方法 ...

根据尺寸交互直接就可以画出来,为什么需要编程序?这是最基本的交互操作啊!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 449个

财富等级: 日进斗金

 楼主| 发表于 2013-5-14 10:20:55 | 显示全部楼层
牢固 发表于 2013-5-14 10:11
根据尺寸交互直接就可以画出来,为什么需要编程序?这是最基本的交互操作啊!

我知道!但是它型号多的很!而且一天的工作量也大.所以想尽量的多做好一点的程序给自己方便!以减少工作量!单单用画的也很快画出来.但还是编一个用着好!省时省力!呵呵!G版出一下招呗
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2013-5-14 10:22:47 | 显示全部楼层

如果我的理解是正确的话,似乎问题被你搞复杂了,知道一个点,知道其他点与这个点的相对关系,其他点是应该计算得到的,而不是一个一个交互输入得到,如果像你这样每个点都交互,就失去编程的意义了。
就本例而言,最有效的函数应该是:polar
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 449个

财富等级: 日进斗金

 楼主| 发表于 2013-5-14 10:27:06 | 显示全部楼层
ll_j 发表于 2013-5-14 10:22
如果我的理解是正确的话,似乎问题被你搞复杂了,知道一个点,知道其他点与这个点的相对关系,其他点是应 ...

ll_j 师兄你好!我交互输入的四个数值是产品的尺寸.只有先得到产品的尺寸才能够去得出其它的点.假如不交互输入的话那么就只能固定画一种型号的产品!而它的插入点也就是指定点是在中间,也是方便以后的插入的!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 344个

财富等级: 日进斗金

发表于 2013-5-14 10:37:09 | 显示全部楼层
xtdwynij 发表于 2013-5-14 10:27
ll_j 师兄你好!我交互输入的四个数值是产品的尺寸.只有先得到产品的尺寸才能够去得出其它的点.假如不交互 ...

参数化编程,四个数值作为参数输入,其他点根据这四个参数计算出来即可!很简单的问题,大家被你搞得晕晕乎乎!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 449个

财富等级: 日进斗金

 楼主| 发表于 2013-5-14 10:42:23 | 显示全部楼层
牢固 发表于 2013-5-14 10:37
参数化编程,四个数值作为参数输入,其他点根据这四个参数计算出来即可!很简单的问题,大家被你搞得晕晕 ...

不好意思啊G版!是很简单的问题!但我想能不能让它们二个自动去识别键盘输入还是捕捉输入呢?我写的这一个是要去选一个的.而且捕捉就只能捕捉输入.键盘就只能键盘输入!这个我就不懂了.知识点太少了.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 449个

财富等级: 日进斗金

 楼主| 发表于 2013-5-14 10:45:52 | 显示全部楼层
xtdwynij 发表于 2013-5-14 10:42
不好意思啊G版!是很简单的问题!但我想能不能让它们二个自动去识别键盘输入还是捕捉输入呢?我写的这一个是 ...

是四个数值能捕捉输入又可以键盘输入!可以自动识别的!这个我就不懂了!您明白我要表达的意思么?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 344个

财富等级: 日进斗金

发表于 2013-5-14 11:06:54 | 显示全部楼层
xtdwynij 发表于 2013-5-14 10:45
是四个数值能捕捉输入又可以键盘输入!可以自动识别的!这个我就不懂了!您明白我要表达的意思么?

  1. (defun xbjk (InsPt a b c d)
  2.   (setq pt7 (polar inspt (* pi 0.5) d)
  3.         pt2 (polar inspt pi (* 0.5 (- a c)))
  4.         pt3 (polar inspt 0 (* 0.5 (- a c)))
  5.         pt9 (polar pt2 (* pi 0.5) c)
  6.         pt5 (polar pt3 (* pi 0.5) c)
  7.         pt8 (polar pt9 0 (* 0.5 (- a b c)))
  8.         pt6 (polar pt8 0 b)
  9.         pt1 (polar pt2 (* pi 0.75) (* 6 (sqrt 2) 0.5))
  10.         pt4 (polar pt3 (* pi 0.25) (* 6 (sqrt 2) 0.5))
  11.         )
  12.   (command "_pline"
  13.            "_non" pt2
  14.            "a" "s"
  15.            "_non" pt1
  16.            "_non" pt9
  17.            "l"
  18.            "_non" pt8
  19.            "a" "s"
  20.            "_non" pt7
  21.            "_non" pt6
  22.            "l"
  23.            "_non" pt5
  24.            "a" "s"
  25.            "_non" pt4
  26.            "_non" pt3
  27.            "l" "c"
  28.            )
  29.   )
  30. ;;测试
  31. (XBJK (getpoint "\n摆放位置点:") (getdist "\n输入a距离:") (getdist "\n输入b距离:" )  (getdist "\n输入c距离:" )  (getdist "\n输入d距离:" ) )

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

使用道具 举报

已领礼包: 449个

财富等级: 日进斗金

 楼主| 发表于 2013-5-14 11:20:02 | 显示全部楼层

感谢G版出手!把这些要交互的参数全部传出去就行了!以前一直都没有想到还可以这个样!很简单的问题呵呵!下次发贴之前一定贴上动画以及一个小的应用程序.我就是因为怕太简单了大神们不想看.因为代码又臭又长.这才贴了功能出来.
在此也感谢各位师兄出手帮忙!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2013-5-14 11:38:16 | 显示全部楼层
本帖最后由 ll_j 于 2013-5-14 16:25 编辑

也写了一小段,不过又迟了一步。
程序没做容错处理,点号也和楼主贴图不同,只是逆时针排一下,大概表示一下程序过程而已。


  1. (defun c:tt ()
  2.   (setq pt0 (getpoint "\n指定孔洞基底中心点:")
  3.         h0  (getdist pt0 "\n输入孔洞总高:")
  4.         h1  (getdist pt0 "\n输入主孔高:")
  5.         B0  (getdist "\n输入孔洞总宽:")
  6.         B1  (getdist "\n输入顶孔宽度:")
  7.   )
  8.   (setq pt1 (polar pt0 0.0 (/ (- B0 h1) 2))
  9.         pt2 (polar pt1 0.0 (/ h1 2))
  10.         pt2 (polar pt2 (/ pi 2) (/ h1 2))
  11.         pt3 (polar pt1 (/ pi 2) h1)
  12.         pt4 (polar pt3 pi (/ (- B0 h1 B1) 2))
  13.         pt5 (polar pt0 (/ pi 2) h0)
  14.         pt6 (polar pt4 (- pi) B1)
  15.         pt7 (polar pt3 (- pi) (- B0 h1))
  16.         pt8 (polar pt2 (- pi) B0)
  17.         pt9 (polar pt1 (- pi) (- B0 h1))
  18.   )
  19.   (command ".line" pt9 pt1 "")
  20.   (command ".arc" pt1 pt2 pt3)
  21.   (command ".line" pt3 pt4 "")
  22.   (command ".arc" pt4 pt5 pt6)
  23.   (command ".line" pt6 pt7 "")
  24.   (command ".arc" pt7 pt8 pt9)
  25.   (princ)
  26. )

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

使用道具 举报

已领礼包: 449个

财富等级: 日进斗金

 楼主| 发表于 2013-5-14 11:44:10 | 显示全部楼层
ll_j 发表于 2013-5-14 11:38
也写了一小段,不过又迟了一步。
程序没做容错处理,点号也和楼主贴图不同,只是逆时针排一下,大概表示一 ...

感谢ll_j 师兄!呵呵.做容错处理也没有什么!加不加都不影响使用,并且大多数情况并不会用到它.等到我会用这个函数了估计也是我没有什么可学了才会去学这个容错处理.感觉不怎么实用!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 449个

财富等级: 日进斗金

 楼主| 发表于 2013-5-14 11:50:47 | 显示全部楼层
xtdwynij 发表于 2013-5-14 11:44
感谢ll_j 师兄!呵呵.做容错处理也没有什么!加不加都不影响使用,并且大多数情况并不会用到它.等到我会用这 ...

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-25 14:30 , Processed in 0.445397 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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