土木在线论坛 \ 建筑设计 \ CAD下载及教程 \ AUTOCAD系列批量处理程序

AUTOCAD系列批量处理程序

发布于:2005-10-16 10:05:16 来自:建筑设计/CAD下载及教程 [复制转发]
笔者在AUTOCAD中编辑大量图形时,发现仅用AUOTCAD本身提供的命令,效率实在太低,故编写系列批量处理程序以提高工作效率、工作质量。


1.批量修改POLYLINE的线宽(CH_w):
  我们知道编辑一条POLYLINE的线宽可以通过Pedit命令来完成,如果需要编辑多条POLYLINE时还使用Pedit命令则不但需要选择目标,还要输入线宽,实在有点不方便,而且还可能漏选。其实编写个小小的LISP程序便可一次性完成。程序CH_W.LSP如下:

  (DEFUN C:CH_W( / wid ent_ss n_ss ent_n j ent_a)

     (PRINC "\n请选择目标(W C WP CP F)")

     (SETQ ENT_SS (SSGET) WID (GETREAL"\n请输入线宽<0.3>:"))

     (if (= wid nil) (setq wid 0.3))

     (IF (/= ENT_ss nil)

       (PROGN

         (SETQ N_SS (SSLENGTH ENT_SS)  J 0)

         (REPEAT N_SS

       (SETQ ENT_N (SSNAME ENT_SS J) ent_a (cdr (assoc 0 (entget ent_n)))

                   J  (1+ J))

          (if (or (= ent_a "POLYLINE") (= ent_a "LWPOLYLINE"))

  

            (COMMAND "PEDIT" ENT_N "w" wid "" COMMAND))

         );ENDREP

       );ENDPROGN

     ) ;ENDIF

  ) ;enddefun

2. 批量打印出图(Mplot)
  在AUTOCAD中用PLOT命令每次只能打印一张图纸,如果在一个图形文件内有多张大小一样的图纸成纵向排列,间距M_d=500mm。通过Mplot只需调试一张,便可打印所有图纸。程序如下:

  (defun c:Mplot()

    (setq p_1 (getpoint"\n\tFirst CORNER:")

       P_2 (getPOINT"\n\tOther CORNER:")

       n (getint"\n\t总张数:<1>"))

    (if (= n nil) (setq n 1))

    (setq m_d 500)

   (REPEAT n

       (command"plot" "w" P_1 P_2 "n" COMMAND)

全部回复(2 )

只看楼主 我来说两句抢地板
  • 正午焰阳
    正午焰阳 沙发
    批量打印出图(Mplot) 楼主可以在详细说明一下使用方法吗?

    最好搞个演示,本人太笨,照以上方法整了一天也没搞成,请赐教!
    2006-07-22 14:24:22

    回复 举报
    赞同0
  • bt
    bt 板凳
    (command "pedit" "m" pause)
    2005-10-18 10:40:18

    回复 举报
    赞同0
这个家伙什么也没有留下。。。

CAD下载及教程

返回版块

52.08 万条内容 · 658 人订阅

猜你喜欢

阅读下一篇

给AutoCAD 增加超级编辑命令

---- AutoCAD在中国有很广泛的用户基础,同时也有很多专业的、业余的开发人员。从R13版本开始,Autodesk 提供了ARX开发工具,面向对象的特性使开发人员如沐春风。有关ARX编程与ADS编程的比较这里不再赘述,此处只讲如何用ARX实现我们所要求的功能,不足之处请指正。 ---- 许多二次开发软件均提供超级编辑命令,如Genius 14、HMCAD 6.0等等。读者或许对这些命令很感兴趣,能不能自己开发类似的功能呢?只要您对C++和ARX编程有一些了解,利用Autodesk提供的ObjectARX SDK软件包(可以到Autodesk网址上免费下载),您能很方便的写出此类程序,虽说不能和专业人员提供的超级编辑命令相媲美,但也能给您带来不少方便。本文利用ObjectARX提供的范例程序(缺省安装ObjectARX SDK后的路径是X:\OBJECTARX\ARXLABS\LAB07)进行简单的修改即可实现我们所要求的功能。以下是采用ObjectARX SDK 2.0,在MSVC 5.0编译环境下测试通过。

回帖成功

经验值 +10