因为常用到往同一方向移动同一距离,所以就写了个小程序,希望对各位也有点小用,有记忆功能的,如下
网友答:
取自明经,各有优劣网友答:
照着论坛记忆拉伸的程序改成了记忆移动,同时感谢Z大!
;;;;============================================================
;;;;========================记忆移动============================
;;;;============================================================
;源地址http://bbs.mjtd.com/forum.php?mo ... 1&fromuid=38464
(defun c:MM (/ basicpoint old_ORTHOMODE pt)
(setq old_ORTHOMODE (getvar "ORTHOMODE"))
(setvar "ORTHOMODE" 1)
(if (= nil S_distance)
(progn (setq S_distance (getreal "\n输入移动距离:"))
)
(progn (setq s_disyd (getreal
(strcat "\n输入移动距离<" (rtos S_distance) ">")
)
)
(if (= nil s_disyd)
(setq s_disyd S_distance)
)
(setq S_distance s_disyd)
)
)
(command ".move" (ssget) "")
(setq basicpoint (getpoint "\n指定基点:"))
(setq pt (getpoint basicpoint "\n指定方向:"))
(command basicpoint
(polar basicpoint (angle basicpoint pt) S_distance)
)
(setvar "ORTHOMODE" old_ORTHOMODE)
(princ)
)
;;;;============================================================
;;;;================记忆移动100 200 300 400 50==================
;;;;============================================================
(defun c:M1 (/ S_distance basicpoint old_ORTHOMODE pt)
(setq old_ORTHOMODE (getvar "ORTHOMODE"))
(setvar "ORTHOMODE" 1)
(setq S_distance 100)
(command ".move" (ssget) "")
(setq basicpoint (getpoint "\n指定基点:"))
(setq pt (getpoint basicpoint "\n指定方向:"))
(command basicpoint (polar basicpoint (angle basicpoint pt) S_distance))
(setvar "ORTHOMODE" old_ORTHOMODE)
(princ)
)
(defun c:M2 (/ S_distance basicpoint old_ORTHOMODE pt)
(setq old_ORTHOMODE (getvar "ORTHOMODE"))
(setvar "ORTHOMODE" 1)
(setq S_distance 200)
(command ".move" (ssget) "")
(setq basicpoint (getpoint "\n指定基点:"))
(setq pt (getpoint basicpoint "\n指定方向:"))
(command basicpoint (polar basicpoint (angle basicpoint pt) S_distance))
(setvar "ORTHOMODE" old_ORTHOMODE)
(princ)
)
(defun c:M3 (/ S_distance basicpoint old_ORTHOMODE pt)
(setq old_ORTHOMODE (getvar "ORTHOMODE"))
(setvar "ORTHOMODE" 1)
(setq S_distance 300)
(command ".move" (ssget) "")
(setq basicpoint (getpoint "\n指定基点:"))
(setq pt (getpoint basicpoint "\n指定方向:"))
(command basicpoint (polar basicpoint (angle basicpoint pt) S_distance))
(setvar "ORTHOMODE" old_ORTHOMODE)
(princ)
)
(defun c:M4 (/ S_distance basicpoint old_ORTHOMODE pt)
(setq old_ORTHOMODE (getvar "ORTHOMODE"))
(setvar "ORTHOMODE" 1)
(setq S_distance 400)
(command ".move" (ssget) "")
(setq basicpoint (getpoint "\n指定基点:"))
(setq pt (getpoint basicpoint "\n指定方向:"))
(command basicpoint (polar basicpoint (angle basicpoint pt) S_distance))
(setvar "ORTHOMODE" old_ORTHOMODE)
(princ)
)
(defun c:M5 (/ S_distance basicpoint old_ORTHOMODE pt)
(setq old_ORTHOMODE (getvar "ORTHOMODE"))
(setvar "ORTHOMODE" 1)
(setq S_distance 50)
(command ".move" (ssget) "")
(setq basicpoint (getpoint "\n指定基点:"))
(setq pt (getpoint basicpoint "\n指定方向:"))
(command basicpoint (polar basicpoint (angle basicpoint pt) S_distance))
(setvar "ORTHOMODE" old_ORTHOMODE)
(princ)
)网友答:
谢谢大神的分享,用处大大的用网友答: 下载要记得回帖一下网友答: 顶。试用一下。网友答: 谢谢楼主,又学一招网友答: 先看看好不好用,哈网友答: 谢谢 顶顶顶网友答: 本帖最后由 kwok 于 2012-6-11 13:18 编辑
这个不错,支持一下,刚好需要.
试了一下,
如果能只记忆距离,方向由鼠标来定+加空格确定移动,就好了.
网友答: 源码的,就得支持!
下来,学习一下!
网友答:
昨天忘记回铁了网友答:
试用一下。。。。。
网友答:

- (defun c:jyyd (/ s_disyd)
- (princ "\n<<<欢迎使用记忆移动功能>>>")
- (setvar "ORTHOMODE" 1)
- (command ".MOVE" (ssget) "")
- (command (setq basicpoint (getpoint "\n指定基点:")))
- (if (= nil s_dis_allyd)
- (progn
- (setq s_dis_allyd (getreal "\n输入移动距离:"))
- (command s_dis_allyd)
- )
- (progn
- (setq s_disyd (getreal (strcat "\n输入拉伸距离<" (rtos s_dis_allyd 2 4)
- ">:"
- )
- )
- )
- (if (= nil s_disyd)
- (setq s_disyd s_dis_allyd)
- )
- (command s_disyd)
- (setq s_dis_allyd s_disyd)
- )
- )
- (setvar "ORTHOMODE" 0)
- (princ "\<<<记忆移动执行完毕!>>>")
- (princ)
- )
zhong876158 发表于 2014-9-20 09:34
有同感,运行后影响了正交模式
照着论坛记忆拉伸的程序改成了记忆移动,同时感谢Z大!
;;;;============================================================
;;;;========================记忆移动============================
;;;;============================================================
;源地址http://bbs.mjtd.com/forum.php?mo ... 1&fromuid=38464
(defun c:MM (/ basicpoint old_ORTHOMODE pt)
(setq old_ORTHOMODE (getvar "ORTHOMODE"))
(setvar "ORTHOMODE" 1)
(if (= nil S_distance)
(progn (setq S_distance (getreal "\n输入移动距离:"))
)
(progn (setq s_disyd (getreal
(strcat "\n输入移动距离<" (rtos S_distance) ">")
)
)
(if (= nil s_disyd)
(setq s_disyd S_distance)
)
(setq S_distance s_disyd)
)
)
(command ".move" (ssget) "")
(setq basicpoint (getpoint "\n指定基点:"))
(setq pt (getpoint basicpoint "\n指定方向:"))
(command basicpoint
(polar basicpoint (angle basicpoint pt) S_distance)
)
(setvar "ORTHOMODE" old_ORTHOMODE)
(princ)
)
;;;;============================================================
;;;;================记忆移动100 200 300 400 50==================
;;;;============================================================
(defun c:M1 (/ S_distance basicpoint old_ORTHOMODE pt)
(setq old_ORTHOMODE (getvar "ORTHOMODE"))
(setvar "ORTHOMODE" 1)
(setq S_distance 100)
(command ".move" (ssget) "")
(setq basicpoint (getpoint "\n指定基点:"))
(setq pt (getpoint basicpoint "\n指定方向:"))
(command basicpoint (polar basicpoint (angle basicpoint pt) S_distance))
(setvar "ORTHOMODE" old_ORTHOMODE)
(princ)
)
(defun c:M2 (/ S_distance basicpoint old_ORTHOMODE pt)
(setq old_ORTHOMODE (getvar "ORTHOMODE"))
(setvar "ORTHOMODE" 1)
(setq S_distance 200)
(command ".move" (ssget) "")
(setq basicpoint (getpoint "\n指定基点:"))
(setq pt (getpoint basicpoint "\n指定方向:"))
(command basicpoint (polar basicpoint (angle basicpoint pt) S_distance))
(setvar "ORTHOMODE" old_ORTHOMODE)
(princ)
)
(defun c:M3 (/ S_distance basicpoint old_ORTHOMODE pt)
(setq old_ORTHOMODE (getvar "ORTHOMODE"))
(setvar "ORTHOMODE" 1)
(setq S_distance 300)
(command ".move" (ssget) "")
(setq basicpoint (getpoint "\n指定基点:"))
(setq pt (getpoint basicpoint "\n指定方向:"))
(command basicpoint (polar basicpoint (angle basicpoint pt) S_distance))
(setvar "ORTHOMODE" old_ORTHOMODE)
(princ)
)
(defun c:M4 (/ S_distance basicpoint old_ORTHOMODE pt)
(setq old_ORTHOMODE (getvar "ORTHOMODE"))
(setvar "ORTHOMODE" 1)
(setq S_distance 400)
(command ".move" (ssget) "")
(setq basicpoint (getpoint "\n指定基点:"))
(setq pt (getpoint basicpoint "\n指定方向:"))
(command basicpoint (polar basicpoint (angle basicpoint pt) S_distance))
(setvar "ORTHOMODE" old_ORTHOMODE)
(princ)
)
(defun c:M5 (/ S_distance basicpoint old_ORTHOMODE pt)
(setq old_ORTHOMODE (getvar "ORTHOMODE"))
(setvar "ORTHOMODE" 1)
(setq S_distance 50)
(command ".move" (ssget) "")
(setq basicpoint (getpoint "\n指定基点:"))
(setq pt (getpoint basicpoint "\n指定方向:"))
(command basicpoint (polar basicpoint (angle basicpoint pt) S_distance))
(setvar "ORTHOMODE" old_ORTHOMODE)
(princ)
)网友答:
海盗曹 发表于 2012-6-14 17:02
取自明经,各有优劣
谢谢大神的分享,用处大大的用网友答: 下载要记得回帖一下网友答: 顶。试用一下。网友答: 谢谢楼主,又学一招网友答: 先看看好不好用,哈网友答: 谢谢 顶顶顶网友答: 本帖最后由 kwok 于 2012-6-11 13:18 编辑
这个不错,支持一下,刚好需要.

试了一下,
如果能只记忆距离,方向由鼠标来定+加空格确定移动,就好了.
网友答: 源码的,就得支持!

下来,学习一下!
网友答:
昨天忘记回铁了网友答:
试用一下。。。。。