找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 5421|回复: 17

[LISP程序]:使用grread函数的动态翻转程序

[复制链接]
发表于 2004-4-27 21:18:41 | 显示全部楼层 |阅读模式

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

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

×
这个程序的功能是对选中的物体围绕指定点进行旋转、镜像操作。
程序以指定点为中心分成8个区域,在区域间滑动鼠标可以动态显示翻转的状态。


  1.   [FONT=courier new]
  2. ;;;DRot.LSP
  3. ;;;        v0.90 - 2004.3.18        自由翻转,是一个子程序,可以用在其他的程序中。

  4. (defun c:drot (/ PT0 ss)

  5.   (defun drot (ss pt0 / ANG GD MR OMR ORTANG PT RTANG)
  6.     (setvar "osmode" 0)
  7.     (setvar "highlight" 0)
  8.     (setvar "mirrtext" 1)
  9.     (setq ortang 0.0
  10.           omr 0
  11.     )
  12.     (setq gd (grread t 8))
  13.     (while (= 5 (car gd))
  14.       (cond
  15.         ((= 5 (car gd))
  16.          (setq pt  (cadr gd)
  17.                ang (angle pt0 pt)
  18.          )
  19.          (cond
  20.            ((<= 0 ang (* 0.25 pi))
  21.             (setq rtang        0.0
  22.                   mr 0
  23.             )
  24.            )
  25.            ((<= (* 0.25 pi) ang (* 0.5 pi))
  26.             (setq rtang        90.0
  27.                   mr        1
  28.             )
  29.            )
  30.            ((<= (* 0.5 pi) ang (* 0.75 pi))
  31.             (setq rtang        90.0
  32.                   mr        0
  33.             )
  34.            )
  35.            ((<= (* 0.75 pi) ang (* 1.0 pi))
  36.             (setq rtang        180.0
  37.                   mr        1
  38.             )
  39.            )
  40.            ((<= (* 1.0 pi) ang (* 1.25 pi))
  41.             (setq rtang        180.0
  42.                   mr        0
  43.             )
  44.            )
  45.            ((<= (* 1.25 pi) ang (* 1.5 pi))
  46.             (setq rtang        270.0
  47.                   mr        1
  48.             )
  49.            )
  50.            ((<= (* 1.5 pi) ang (* 1.75 pi))
  51.             (setq rtang        270.0
  52.                   mr        0
  53.             )
  54.            )
  55.            ((<= (* 1.75 pi) ang (* 2.0 pi))
  56.             (setq rtang        0.0
  57.                   mr 1
  58.             )
  59.            )
  60.            (1)
  61.          )

  62.          (cond
  63.            ((and (/= ortang rtang) (/= omr mr))
  64.             (command
  65.               "mirror"
  66.               ss
  67.               ""
  68.               pt0
  69.               (polar pt0 (* pi (/ (* 0.5 (+ rtang ortang)) 180.0)) 1.0)
  70.               "y"
  71.             )
  72.            )
  73.            ((/= ortang rtang)
  74.             (command "rotate" ss "" pt0 (- rtang ortang))
  75.            )
  76.            ((/= mr omr)
  77.             (command "mirror"
  78.                      ss
  79.                      ""
  80.                      pt0
  81.                      (polar pt0 (* pi (/ rtang 180.0)) 1.0)
  82.                      "y"
  83.             )
  84.            )
  85.          )
  86.          (setq ortang rtang
  87.                omr    mr
  88.          )
  89.         )
  90.         (1)
  91.       )                                        ;cond
  92.       (setq gd (grread t 8))
  93.     )                                        ;while
  94.   )

  95. ;;;  main

  96.   (prompt "\n请选择要翻转的实体: ")
  97.   (if (and (setq ss (ssget))
  98.            (setq pt0 (getpoint "\n翻转基点: "))
  99.       )
  100.     (drot ss pt0)
  101.   )                                        ;if
  102.   (princ)
  103. )                                        ;



  104.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-4-27 21:32:19 | 显示全部楼层
为什么没有拷贝程序段到剪贴板的按钮了?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

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

使用道具 举报

发表于 2004-6-18 23:08:33 | 显示全部楼层
虽然我不怎么用的上(也许对其它专业很有用),但的确是挺有意思的一个程序
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-6-18 23:55:43 | 显示全部楼层
不错,不错,为什么VBA里没有grread呢,郁闷,看样子要改行学Lisp了:)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-6-19 01:11:53 | 显示全部楼层
最初由 陌生人 发布
[B]虽然我不怎么用的上(也许对其它专业很有用),但的确是挺有意思的一个程序 [/B]

写这个程序的初衷在于建筑上的应用:住宅的户型平面布置图。其特点是需要大量插入或拷贝图块,图块经常需要旋转、镜像(延正交轴或45度斜轴),用这个程序可以省去大量低级的重复劳动。陌生人应当用得上的:)
这个程序还能进一步改进,加入拷贝功能,拷贝、旋转、镜像合一,又能实地预览,应该很不错的,哪位出手改一下?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-6-19 07:49:56 | 显示全部楼层
最初由 841594 发布
[B]
写这个程序的初衷在于建筑上的应用:住宅的户型平面布置图。其特点是需要大量插入或... [/B]

程序的构思不错,值得奖励。
有三点建议:
1、要设置错误处理程序,加入UNDO,加入对CMDECHO变量的设置。
2、GRREAD时,要有提示,否则,会让用户不知所措。
3、在屏幕上最好要显示你划分的区域,可以用GRDRAW。
仅供参考。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-6-20 08:31:42 | 显示全部楼层
如果能够模仿MYIE中的鼠标动作来操作的话会更加方便。
大家商议一下有没有可能实现。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-6-20 11:08:24 | 显示全部楼层
最初由 841594 发布
[B]
写这个程序的初衷在于建筑上的应用:住宅的户型平面布置图。其特点是需要大量插入或... [/B]


我一般是打开极轴,也还方便。:)

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

已领礼包: 3256个

财富等级: 富可敌国

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-24 00:30 , Processed in 0.401723 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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