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)
)
;;--------------------------------------------------------------------------------
页: 1 [2] 3 4
查看完整版本: 简单的代码,作用不一定小!