明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1842|回复: 6

求助线段动态拖拽

[复制链接]
发表于 2012-8-20 14:21 | 显示全部楼层 |阅读模式
1明经币
如何用LISP实现以鼠标当前位置为线段的中点画一条正交Y轴200长的线段,而且随着鼠标的移动跟着移动,可以连续画线段,直到按右键退出,就像画正交构造线一样,可以随着鼠标移动跟着移动。

最佳答案

查看完整内容

第一个问题:添加一个错误处理即可!关于错误处理的例子论坛里比比皆是! 第二个问题:参见帖子http://bbs.mjtd.com/thread-91191-1-1.html 第三个问题:增加一个空格响应的判断即可 ,修改直线的方向模式 你可以自己尝试修改!当你修改成功后,自然会获得无与伦比的成就感 ...
发表于 2012-8-20 14:21 | 显示全部楼层
本帖最后由 Gu_xl 于 2012-8-21 20:04 编辑
阿富汗发货单 发表于 2012-8-21 10:58
谢谢GU_Xl版主的热心解答,试了后发现几个问题:
1. 按鼠标右键退出命令没问题,但按键盘ESC取消会多出来 ...

第一个问题:添加一个错误处理即可!关于错误处理的例子论坛里比比皆是!
第二个问题:参见帖子http://bbs.mjtd.com/thread-91191-1-1.html
第三个问题:增加一个空格响应的判断即可 ,修改直线的方向模式

你可以自己尝试修改!当你修改成功后,自然会获得无与伦比的成就感 ...
   
回复

使用道具 举报

 楼主| 发表于 2012-8-21 07:37 | 显示全部楼层
怎么没人回答啊 ,大哥大姐们帮帮忙吧!不胜感激!!
回复

使用道具 举报

发表于 2012-8-21 09:55 | 显示全部楼层
阿富汗发货单 发表于 2012-8-21 07:37
怎么没人回答啊 ,大哥大姐们帮帮忙吧!不胜感激!!

  1. (defun c:tt  (/ GR PT P1 P2 LINE LOOP)
  2.   (while (not loop)
  3.     (setq gr (grread t 15))
  4.     (cond
  5.       ((= 5 (car gr))
  6.        (setq pt (cadr gr))
  7.        (setq p1        (polar pt pi 100)
  8.              p2        (polar pt 0 100)
  9.              )
  10.        (if line
  11.          (progn
  12.            (setq line (subst (cons 11 (trans p2 1 0))
  13.                              (assoc 11 line)
  14.                              (subst (cons 10 (trans p1 1 0))
  15.                                     (assoc 10 line)
  16.                                     line)))
  17.            (entmod line)
  18.            )
  19.          (progn
  20.            (entmake (list '(0 . "line")
  21.                           (cons 10 (trans p1 1 0))
  22.                           (cons 11 (trans p2 1 0))))
  23.            (setq line (entget (entlast)))
  24.            )
  25.          )
  26.        )
  27.       ((= 3 (car gr))
  28.        (setq pt (cadr gr))
  29.        (setq p1        (polar pt pi 100)
  30.              p2        (polar pt 0 100)
  31.              )
  32.        (if line
  33.          (progn
  34.            (setq line (subst (cons 11 (trans p2 1 0))
  35.                              (assoc 11 line)
  36.                              (subst (cons 10 (trans p1 1 0))
  37.                                     (assoc 10 line)
  38.                                     line)))
  39.            (entmod line)
  40.            )
  41.          (progn
  42.            (entmake (list '(0 . "line")
  43.                           (cons 10 (trans p1 1 0))
  44.                           (cons 11 (trans p2 1 0))))
  45.            (setq line (entget (entlast)))
  46.            )
  47.          )
  48.        (setq line nil)
  49.        )
  50.       ((= 25 (car gr))
  51.        (setq loop t)
  52.        (if line
  53.          (entdel (entlast))
  54.          )
  55.        )
  56.       )
  57.     )
  58.   (princ)
  59.   )
回复

使用道具 举报

 楼主| 发表于 2012-8-21 10:58 | 显示全部楼层
Gu_xl 发表于 2012-8-21 09:55

谢谢GU_Xl版主的热心解答,试了后发现几个问题:
1. 按鼠标右键退出命令没问题,但按键盘ESC取消会多出来一条线段。
2. 没有对象捕捉
3. 现在是正交X轴画线段,可不可以弄成按一下空格键变成正交Y轴画线段,再按一下空格键又变成正交X轴画线段,也就是说用空格键来控制正交X轴画线段和正交Y轴画线段。


请GU_xl版主再修改一下,实在是麻烦您了,谢谢
回复

使用道具 举报

 楼主| 发表于 2012-8-21 20:19 | 显示全部楼层
Gu_xl 发表于 2012-8-21 20:02
第一个问题:添加一个错误处理即可!关于错误处理的例子论坛里比比皆是!
第二个问题:参见帖子http://b ...

好的,我先试试吧!谢谢GU_Xl版主了,如果实在能力有限的话还请版主不吝赐教啦。
回复

使用道具 举报

 楼主| 发表于 2012-8-21 23:33 | 显示全部楼层
Gu_xl 发表于 2012-8-20 14:21
第一个问题:添加一个错误处理即可!关于错误处理的例子论坛里比比皆是!
第二个问题:参见帖子http://b ...

哎, 大哥求您再出下手吧,搞到快23.30了头都晕了还是不行啊,不是(错误: 参数太少),就是(错误: 输入的列表有缺陷),主要还是我还是新手啊,程序短点还好一长就感觉无从下手了,求您啦,我现在的水平还做不到啊。
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-3 01:07 , Processed in 1.862031 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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