請教AUTO CAD二次開發的方法 点击:1199 | 回复:10



ancy

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 25回
  • 年度积分:0
  • 历史总积分:30
  • 注册:2007年9月13日
发表于:2007-09-14 19:03:00
楼主
我現在會用CAD但是對二次開發一竅不通,請教高人指點!



yjig

  • 精华:2帖
  • 求助:5帖
  • 帖子:97帖 | 5237回
  • 年度积分:0
  • 历史总积分:12514
  • 注册:2004年6月04日
发表于:2007-09-14 19:24:00
1楼
学习LISP。
先从网上下载别人的简单小程序,努力看懂每一步,领会作者的意图,慢慢来,别着急。

ancy

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 25回
  • 年度积分:0
  • 历史总积分:30
  • 注册:2007年9月13日
发表于:2007-09-14 22:08:00
2楼
謝謝yjig,只是我還想問一下:繁體和簡體應該沒有什麼區別吧,因為我在公司用的CAD2005是有二次開發的,但我家裡的電腦系統是簡體的。

yjig

  • 精华:2帖
  • 求助:5帖
  • 帖子:97帖 | 5237回
  • 年度积分:0
  • 历史总积分:12514
  • 注册:2004年6月04日
发表于:2007-09-14 23:04:00
3楼
繁體、簡體以及纯英文软件对于二次开发主程序基本是一样的,仅仅是在表达一个字符串上有一点差异,例如:
在执行_ARCTEXT(圆弧文字)
中文简体版本显示为:选择圆弧或文字:
而英文版本显示为:Select an Arc or an ArcAlignedText:
繁体版本显示的是繁体的选择圆弧或文字:
但其余的程序是一样的,执行的效果也是一样的。

yjig

  • 精华:2帖
  • 求助:5帖
  • 帖子:97帖 | 5237回
  • 年度积分:0
  • 历史总积分:12514
  • 注册:2004年6月04日
发表于:2007-09-14 23:15:00
4楼
;;以下是我自遍的粗糙度标注程序,加载后键入ROU,即可运行,供你参考
(defun c:rou (/ blip osd ira irt ip p0 p1 p2 p3 p4 p5 e e1 rouh zm #roughness)
  (setq blip (getvar "blipmode"))
  (setq oldlw (getvar "celweight"))
  (setq osd (getvar "osmode"))
  (setq oldsn (getvar "snapmode"))
  (setvar "blipmode" 0)
  (setvar "cmdecho" 0)
  (setvar "celweight" 25)
  (setvar "osmode" 0)
  (setvar "snapmode" 0)
  (if (not #text_high)
    (setq #text_high (getstring (strcat "\n\n指定标注文字高 <" (rtos (getvar "dimtxt")) ">: ")
     )
  #text_high (cond ((= #text_high "") (getvar "dimtxt"))
   (t (distof #text_high))
     )
    )
  )
  (initget 1)
  (setq ip (getpoint "\n选择标注点: "))
  (while ip
    (setq p0 (osnap ip "nea"))
    (setvar "osmode" 0)
    (if p0
      (setq ira (angle p0 ip))
      (setq ira (* 0.5 pi)
    p0 ip
      )
    )
    (setq p1 (polar p0 (- ira (/ pi 6)) (* 3.2 #text_high)))
    (setq p2 (polar p0 (- ira (/ pi 6)) (* 1.6 #text_high)))
    (setq p3 (polar p0 (+ ira (/ pi 6)) (* 1.6 #text_high)))
    (setq irt (cond ((> 3.142 ira 0) (- ira (* 0.5 pi)))
    (t (+ ira (* 0.5 pi)))
      )
    )
    (setq irt (/ (* irt 180) pi))
    (command "undo" "be")
    (command "pline" p2 "w" 0 "" p3 p0 p1 "")
    (if (not #roughness)
      (setq #roughness "3.2")
    ) ;if 
    (setq rouh (getstring (strcat "\n\n粗糙度数值 [非加工(0)]<" #roughness ">: "))) ;setq
    (if (/= rouh "")
      (setq #roughness rouh)
    ) ;if
    (if (= #roughness "0")
      ;;非加工标注
      (progn (entdel (entlast))
     (command "pline" p3 p0 p1 "")
     (setq e (entlast))
     (setq p4 (polar p0 ira (* 0.92 #text_high)))
     (command "circle" p4 (* 0.46 #text_high))
      )
      (progn (setq e (entlast))
     ;;加工面标注   
     (setq p5 (polar p0 ira (* 2.1 #text_high)))
     (if (> (strlen #roughness) 3)
       ;;字符多于3,p5左移     
       (setq p5 (polar p5 (+ ira (* 0.5 pi)) (* 0.3 #text_high)))
     )
     (command "_text" "m" p5 #text_high irt #roughness)
      )
    )
    (cond ((= p0 ip)
   ;;右上角简化标注
   (setq zm (getstring "\n放大标注1.4倍 [是(Y)/否(N)]:"))
   (if (or (= zm "Y") (= zm "y") (= zm ""))
     (command "scale" e (entlast) "" p0 1.4)
   )
  )
    )
    (setq ip (getpoint "\n下一标注点或 <退出>: "))
    ;;连续标注
  )
  (command "undo" "e")
  (setvar "osmode" osd)
  (setvar "cmdecho" 1)
  (setvar "blipmode" blip)
  (setvar "celweight" oldlw)
  (setvar "snapmode" oldsn)
  (princ)
)

ancy

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 25回
  • 年度积分:0
  • 历史总积分:30
  • 注册:2007年9月13日
发表于:2007-09-15 21:59:00
5楼
請教一下,是否是要建一個文字檔,然後加載!?

yjig

  • 精华:2帖
  • 求助:5帖
  • 帖子:97帖 | 5237回
  • 年度积分:0
  • 历史总积分:12514
  • 注册:2004年6月04日
发表于:2007-09-15 22:12:00
6楼
将以上文件复制到记事本中,保存,将文件重新命名为XXX.lsp。
在菜单中选--工具--AUTOLSIP--加载上述文件。
具体的可参考帮助文件中的有关LISP部分。
也可参考以下网址:
http://www.xdcad.net/forum/

ancy

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 25回
  • 年度积分:0
  • 历史总积分:30
  • 注册:2007年9月13日
发表于:2007-09-16 17:22:00
7楼
謝謝yjig,

kiri

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 148回
  • 年度积分:0
  • 历史总积分:338
  • 注册:2008年3月14日
发表于:2008-04-21 15:06:44
8楼

好东西

用了这么长时间cad竟然不会lsp...

YSC1

  • 精华:3帖
  • 求助:2帖
  • 帖子:129帖 | 2487回
  • 年度积分:88
  • 历史总积分:8018
  • 注册:2002年6月07日
发表于:2008-04-22 13:16:58
9楼
学习了,收藏。感谢YJIG

aburingla

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 1回
  • 年度积分:0
  • 历史总积分:4
  • 注册:2008年3月12日
发表于:2008-12-17 17:37:12
10楼
auto CAD 二次开发 斯卢兹珍珠线 的程序是什么啊

热门招聘