edata
发表于 2014-6-16 19:50:28
依然低调 发表于 2014-6-16 17:29 static/image/common/back.gif
不是必须存在的是吧?谢了!
如果调用command函数写程序
那么尽量使用这个。
因为有的时候出现上次command中断,而另一个程序继续运行的情况。
可以在前面加个(if(> (getvar 'cmdactive) 0)(command))
如果是自己的程序,在结尾也加个,出错函数加个。
尘缘一生
发表于 2014-6-17 05:54:12
emk 发表于 2014-6-16 13:08 static/image/common/back.gif
自己20年前的写的
93年大学毕业,单位只有一台386,用的是AUTOCAD10版,根本就没有VLISP等高级开发工具。环境是DOS系统...........弹指一挥间,21年了。然而,
河东河西,沧海桑田,尘缘一生 ,”明经“世间,才子佳人,飘飘跃然,
劝君:良宵莫虚度,密会“李思普"吧?
依然低调
发表于 2014-6-17 07:51:32
edata 发表于 2014-6-16 19:50 static/image/common/back.gif
如果调用command函数写程序
那么尽量使用这个。
因为有的时候出现上次command中断,而另一个程序继续运 ...
学习了!非常感谢
ucuc2003
发表于 2014-6-17 09:43:45
速度就等于效率,谢谢分享
bdboy
发表于 2014-6-17 11:11:15
最好是有个镜像点,不然没什么实际意义,反而费事了
bai2000
发表于 2014-6-17 11:55:31
同意楼上的说法,请能者出手
ymcui
发表于 2014-6-17 13:42:07
非常精点的程序,真是简单得来用外非常大,谢谢!!!
海盗曹
发表于 2014-6-17 16:01:34
好代码,学习一下
尘缘一生
发表于 2014-6-17 21:16:02
本帖最后由 尘缘一生 于 2014-6-18 05:55 编辑
bdboy 发表于 2014-6-17 11:11 static/image/common/back.gif
最好是有个镜像点,不然没什么实际意义,反而费事了
正相反。我只是判断一下同志们:假如,你是大量工作在CAD里完成者,就知道我代码的效率与意义之所在,假如你大量工作用的是软件包,比如:PKPM,天正等,而CAD是你的辅助工具,只转图、打印与排图,那就无所谓了。
当然如果增加镜像点或线,并不增加击键次数,那是再好不过啦,让我们期待高手解决这个问题吧。
1:镜像点,你觉得需要?有个镜像点,或者镜像线,干吗呢?一句话,就是,把你镜像的东西准确定位,对不对?
实际工作是什么?准确定位的,是在软件包里办,而不是到CAD这里!
2:假如你是搞机械的,还有点道理。
3:建筑专业,要求的是不一定100%全比例,要的是差不多,要的是数值数据准确。如果你是亲自画图的,那么你就能知道我这几段代码的作用目的是干什么?它的作用并不是叫你准确定位的。
举例说明:
假如你要对一个图镜像,完成后,标注的寸界线是不是从45度方向变成了135度?所有的都是吧,你怎么快速一次调整过来?并且还能鼠标拉动,一次定位准确?那么这几个程序就是专门解决类似问题的,否则,你就会费不少功夫奥。
ZZXXQQ
发表于 2014-6-17 21:33:08
本帖最后由 ZZXXQQ 于 2014-6-21 08:15 编辑
;加强代码;;---------------------------------------------------------------------------
(defun C:V-MR-MV (/ s pt2 pt3)
(command)
(if (setq s(ssget)) (progn
(setq pt2 (nth 1(grread 5)))
(setq pt3 (polar pt2 0 2.5))
(command "MIRROR" s "" PT2 pt3 "Y" "MOVE" "P" "" PT3 PAUSE)
))
(princ)
)
;;------------------------------------------------------------------------------
(defun C:H-MR-MV-N (/ s l n s1 pt2 pt3)
(command)
(if (setq s(ssget)) (progn
(setq pt2 (nth 1(grread 5)))
(setq pt3 (polar pt2 (* 0.5 pi) 2.5))
(setq s1 (entlast) ss (ssadd))
(command "MIRROR" s "" PT2 pt3 "N")
(while (setq s1 (entnext s1)) (ssadd s1 ss))
(command "MOVE" ss "" PT3 PAUSE)
))
(princ)
)
;;------------------------------------------------------------------------------
(defun C:V-MR-MV-N (/ s l n s1 pt2 pt3)
(command)
(if (setq s(ssget)) (progn
(setq pt2 (nth 1(grread 5)))
(setq pt3 (polar pt2 0 2.5))
(setq s1 (entlast) ss (ssadd))
(command "MIRROR" s "" PT2 pt3 "N")
(while (setq s1(entnext s1)) (ssadd s1 ss))
(command "MOVE" ss "" PT3 PAUSE)
))
(princ)
)
;;--------------------------------------------------------------------------------