yetianyun
发表于 2012-8-31 16:32:00
半听可乐 发表于 2012-8-31 16:22 static/image/common/back.gif
你这个也有同样的bug:前后两次移动有错位,而且比我发的错位严重哦
我用没有发现楼主所说的bug,不知楼主是何操作的!
半听可乐
发表于 2012-8-31 16:36:38
本帖最后由 半听可乐 于 2012-8-31 16:42 编辑
yetianyun 发表于 2012-8-31 16:32 http://bbs.mjtd.com/static/image/common/back.gif
我用没有发现楼主所说的bug,不知楼主是何操作的!
就这样错位了……
yetianyun
发表于 2012-8-31 16:57:44
本帖最后由 yetianyun 于 2012-8-31 17:03 编辑
会不会是捕捉的时候不准确所造成的呢,我按楼主的方法,捕小圆的圆心,分批移到框外,在框外依然是连在一起的,
如方便交流,QQ :103550749
yetianyun
发表于 2012-8-31 17:15:24
longer1000
发表于 2012-9-1 08:47:35
yetianyun 发表于 2012-8-31 17:15 static/image/common/back.gif
兄弟,能否把移动值显示出来
yetianyun
发表于 2012-9-1 12:17:19
longer1000 发表于 2012-9-1 08:47 static/image/common/back.gif
兄弟,能否把移动值显示出来
命令行显示了移动的距离和角度,
=========================================================================
;;;-------------------------------------------------------------------------------------------------------------------
(defun c:DB_REMMOVE (/ ss p1 p2 mbd gr temp ent pt ppt)
;;;(setvar "orthomode" 1)
(if (not movedist)
(setq movedist 3)
)
(if (not moveang0)
(setq moveang0 pi)
)
(if (setq ss (ssget)
p1 (getpoint "\n指定基点:")
)
(progn
(command "point" p1)
(setq ss (ssadd (setq ent (entlast)) ss))
(setq p2 (polar p1 moveang0 movedist))
(command "move" ss "" p1 pause)
(setq pt (trans(cdr (assoc 10 (entget ent))) 0 1))
(setq ppt (list (- (car pt) (car p1)) (- (cadr pt) (cadr p1)) 0))
(if (equal p1 ppt)(command "move" ss "" pt p2))
(setq pt (trans(cdr (assoc 10 (entget ent))) 0 1))
(setq movedist (distance p1 pt) moveang0 (angle p1 pt))
(PROMPT (strcat "\n本次移动的距离:" (rtos movedist 2 3) ",移动相对角度:" (rtos (/ (* moveang0 180) pi) 2 9)))
(entdel ent)
)
)
(princ)
)
luyu9635
发表于 2012-9-1 21:27:26
本帖最后由 luyu9635 于 2012-9-1 21:54 编辑
如果说有错位,可能是rtos的精度引起的,按ANDY兄说的改下,应该不会有问题了
yetianyun
发表于 2012-9-2 17:55:10
今天偶然用程序移动,果有楼主所说的错位,后细检观察,觉是第二次移动惹的祸,所以修改如下,楼主可一试……
(defun c:DB_REMMOVE(/ ss p1 p2 mbd gr temp ent pt ppt os)
;;;(setvar "orthomode" 1)
(if (not movedist)
(setq movedist 3)
)
(if (not moveang0)
(setq moveang0 pi)
)
(if (setq ss (ssget)
p1 (getpoint "\n指定基点:")
)
(progn
(command "point" p1)
(setq ss (ssadd (setq ent (entlast)) ss))
(setq p2 (polar p1 moveang0 movedist))
(command "move" ss "" p1 pause)
(setq os (getvar "osmode"))
(setvar "osmode" 0)
(setq pt (trans(cdr (assoc 10 (entget ent))) 0 1))
(setq ppt (list (- (car pt) (car p1)) (- (cadr pt) (cadr p1)) 0))
(if (equal p1 ppt)(command "move" ss "" pt p2))
(setq pt (trans(cdr (assoc 10 (entget ent))) 0 1))
(setq movedist (distance p1 pt) moveang0 (angle p1 pt))
(PROMPT (strcat "\n本次移动的距离:" (rtos movedist 2 3) ",移动相对角度:" (rtos (/ (* moveang0 180) pi) 2 9)))
(entdel ent)
(setvar "osmode" os)
)
)
(princ)
)
daidong013
发表于 2012-9-2 19:57:26
yetianyun 发表于 2012-9-2 17:55 static/image/common/back.gif
今天偶然用程序移动,果有楼主所说的错位,后细检观察,觉是第二次移动惹的祸,所以修改如下,楼主可一试… ...
这个程序非常不错,希望再加个记忆复制的功能!
52幕墙设计
发表于 2013-1-25 20:19:29
yetianyun 发表于 2012-9-2 17:55 static/image/common/back.gif
今天偶然用程序移动,果有楼主所说的错位,后细检观察,觉是第二次移动惹的祸,所以修改如下,楼主可一试… ...
很不错,就是有一点可以改进“如果使用记忆的距离和角度,是不是就可以不需要在指定基点?”