萬盛學電腦網

 萬盛學電腦網 >> 圖文處理 >> CAD >> CAD使用教程 >> 常見案例解析 >> AUTOCAD系列之批量處理程序

AUTOCAD系列之批量處理程序

我們在AUTOCAD中編輯大量圖形時,發現僅用AUOTCAD本身提供的命令,效率實在太低,故編寫系列批量處理程序以提高工作效率、工作質量。


1.批量修改POLYLINE的線寬(CH_w):
我們知道編輯一條POLYLINE的線寬可以通過Pedit命令來完成,如 果需要編輯多條POLYLINE時還使用Pedit命令則不但需要選擇目標,還要輸入線寬,實在有點不方便,而且還可能漏選。其實編寫個小小的LISP程 序便可一次性完成。程序CH_W.LSP如下:

  (DEFUNC:CH_W(/wident_ssn_ssent_njent_a)

    (PRINC"n請選擇目標(WCWPCPF)")

    (SETQENT_SS(SSGET)WID(GETREAL"n請輸入線寬<0.3>:"))

    (if(=widnil)(setqwid0.3))

    (IF(/=ENT_ssnil)

      (PROGN

        (SETQN_SS(SSLENGTHENT_SS)  J0)

        (REPEATN_SS

      (SETQENT_N(SSNAMEENT_SSJ)ent_a(cdr(assoc0(entgetent_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只需調試一張,便可打印所有圖紙。程序如下:

  (defunc:Mplot()

    (setqp_1(getpoint"ntFirstCORNER:")

      P_2(getPOINT"ntOtherCORNER:")

      n(getint"nt總張數:<1>"))

    (if(=nnil)(setqn1))

    (setqm_d500)

  (REPEATn

      (command"plot""w"P_1P_2"n"COMMAND)

copyright © 萬盛學電腦網 all rights reserved