QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 3939|回复: 8
收起左侧

[原创] AutoCAD二次开发lisp

[复制链接]
发表于 2007-1-26 20:07:15 | 显示全部楼层 |阅读模式 来自: 中国江苏苏州

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
连续模设计相关技术及AutoCAD二次开发lisp& H" q% u3 P# J/ q' @
lisp源程序,大家可以pp,我可以帮改改
 楼主| 发表于 2007-1-26 20:10:20 | 显示全部楼层 来自: 中国江苏苏州

AutoCAD二次开发lisp

;;;将选取的图形拷贝到指定的图层 Command:k) \1 f  |1 ?0 [( s% f
;;;2004-01-08     Chen Jian
2 M7 p6 ^$ N: k# {( F; \, N4 P( k;;;Version 1.0
* T4 \  ^$ A# {4 m) \;;;MADE IN CHINA" t! t' C( I) I' i
(defun c:K(/ en2 en3 yesno)# x- q5 o. v5 b3 R* [7 S
  (setvar "cmdecho" 0)
, \8 q- g9 Y  e& B1 ]7 C  (princ "请选取欲拷贝的图形:")- W. j" s+ j6 _  }# e6 Q
  (setq en2 (ssget))            ;选取欲拷贝的图形7 h9 h& F" }; b, P9 |
  (if (= en2 nil)
& p+ m% A8 h& D' F    (sub-quit)+ i# b2 N, [8 m, Y4 m4 f  P- A! u
    (sub-kkk en3 chklay YESNO)4 G& U7 p0 }! i9 ?, F
    )
- [5 Y; g3 m# `7 e. T2 }9 `  )' v. h- ~+ K# b' F5 G5 Y
8 r3 v7 B& P/ j4 |1 d* x
(defun sub-kk()( j$ j; B% S7 P  Z+ D
  (command "copy" en2 ""  "0,0" "")& ?( L) q2 V9 K" y  i8 K' d$ w
  (command "change" en2 "" "p" "la" en3 "")4 K2 e( x1 i$ H
  (princ "\n所选图已拷贝到图层")& E- t  Y0 i5 O0 F- p1 W. Y1 x
  (prin1 en3)+ E7 _' {# z0 c  z
  (prin1)). M$ t; S1 I) v1 @* _; P
, d8 i- Z/ T8 v3 H; A/ A8 M: o
(defun sub-kkk (en3 chklay yesno)7 \0 I! z& k& q3 ?9 E7 ]/ `; P6 {
  (setq en3 (getstring "请输入图层名:"))8 U) `# u3 n3 f, U( }6 Q1 F. i  z, R
  (if (= en3 "")
* V' d+ I0 m) O4 _3 ?# F    (progn (sub-quit))
/ f0 {/ m2 Y: G: V3 z! K4 E    (progn (setq chklay (tblsearch "layer" en3))
5 x) I. t3 I/ e( V           (if (= chklay nil)
# |- i" t3 k3 \7 w             (progn(setq yesno(getstring "\n层不存在,是否建立<N>:"))  D7 y4 ?! H: g! m% b5 l* k  @* S
                    (if        (or (= yesno "Y") (= yesno "y"))0 u! O& @' d1 o5 L6 V7 P; k
                      (progn
# D+ F1 D6 R5 q# _6 Z                        (command "layer" "n" en3 "")# K/ S1 n' E/ X4 z: e1 z
                        (sub-kk)& g) Q1 g! m# C; r, N
                      )- u6 m4 Y3 W- ^
                      (progn (sub-quit))
$ K' h; Z( n$ N: }: X                    )# }  {# x/ K- r& t/ }" k! {+ o) n, k# s( V
             )
/ V6 C/ e6 R6 J* f9 A6 s7 ]             (progn (sub-kk))" t. ~' [" A" t4 @# r
           )
: j$ B( a3 E' R    )  }5 D6 G2 G9 f! I
  )# Z+ j. T/ s3 O; {/ K
)
 楼主| 发表于 2007-1-26 20:12:08 | 显示全部楼层 来自: 中国江苏苏州

AutoCAD二次开发lisp

AutoCAD二次开发lisp   我可以帮写
发表于 2007-1-28 12:04:33 | 显示全部楼层 来自: 中国广东东莞
楼主可否发些实用的源程序,供大家分享.
发表于 2008-11-6 12:50:28 | 显示全部楼层 来自: 中国江苏苏州
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
发表于 2008-11-15 09:42:50 | 显示全部楼层 来自: 中国云南德宏傣族景颇族自治州

李冰冰为百万蜡像揭幕 大声惊呼太像了

腾讯娱乐讯: 华表与百花双料影后李冰冰29日现身上海,为其蜡像揭幕而来,李冰冰的蜡像在经历半年的专业制作后,于今日光采示人!这是李冰冰继一年之内连夺华表和百花影后之后,获得的又一项尊贵殊荣,她的加入让蜡像馆更加熠熠生辉然而宣传稿中一再强调的内地首位入住的女星身份,却遭到各方质疑,李冰冰表示这只是误解而已。
4 n* S: B$ C0 w+ F1 K李冰冰蜡像造型特地参照了她在领取华表奖最佳女主角奖项时所穿的服装造型。因蜡像传神地表达了李冰冰清丽的气质和无法抗拒的魅力,入驻蜡像馆“爱心小屋”区恰如其分。李冰冰从影十数年,塑造了众多脍炙人口的角色。尤其是近几年,随着电影《天下无贼》、《云水谣》和《功夫之王》的热映,更让这位勤奋的艺人跨入事业巅峰。作为一位全面发展的艺人,李冰冰没有止步于现有的成就,更全身心地投入公益事业、灌录唱片,在各个领域都获得了不错的成绩。 1 N7 |( r6 J0 x6 z' p9 T& m
您最关注的站
6 n0 T: M( `) j' w, Y$ Z6 `诛仙攻略 美容减肥网 东方女性 黄冈论坛 中国美容
发表于 2008-11-17 15:48:28 | 显示全部楼层 来自: 中国江苏苏州
楼主不简单!我用过了!是最实用的CAD外挂件了!
发表于 2010-9-21 13:23:27 | 显示全部楼层 来自: 中国广东深圳
请帮忙修改以下程序,谢谢!
5 g  c0 C, l# A! P  D3 Rdefun cOF (/ a b b1 p1 d pckbox)
5 X8 p" M: m! y  [(setq d 20 p1 nil pee (/ pi 2)e 3 pckbox (getvar "pickbox"line " ")
4 r. ]9 Q! v8 z; @1 J  |/ J9 d. {(if(= #parof nil)(setq #parof(/(getvar "viewsize")10))): B# ?: F$ `" u# r
(princ "\n当前偏移量 <")(princ #parof)
. B: K* h1 k7 O& y, L(setq answer(getstring ">: "))8 f% O. `$ F  ]- w
(if (/= (atof answer) 0.0)(setq #parof(atof answer)))# `6 p& @/ U7 A7 d* A
        (princ line)
$ R; ]' V$ W5 U) b        (setvar "pickbox" pckbox)
" E3 V9 Y7 h8 v1 |( u, C/ k4 d        (setq ent(entsel "\n拾取线: "))
! i2 q6 t9 t1 k        (setvar "pickbox" 2)
7 a( {7 E! s! [, s. {        (setq point(cadr ent))
% P/ R+ s( @0 f( a        (princ line)
  r- B4 a2 W/ Q$ {# W        (setq side(getpoint "\n拾取要偏移的一方: "))/ o  @) i$ p, w! l# u2 m8 Y
        (setq dist(distance side point))(setq ang(angle side point))0 g8 s9 r( i2 ~  [) L3 o- w
        (if(or(or(< ang 0.78)(> ang 5.5))(and(> ang 2.35)(< ang 3.92)))
% Z+ i& p6 ]; T% ]6 r- N                (setq ang(- 0 ang))(setq ang(- pi ang))
( d8 o- e+ {6 m2 p% K; J, ^        );end if' H# ]' V; _6 U
        (setq other(polar point ang dist))
5 o  B) `, z4 K. `. C        (command "offset" #parof ent side ent other "")! C: Y$ R" A4 |+ ~- e( L
        (entdel(car ent))- r; I$ J6 P+ ?, c
) b  E0 S! X, ?% F
(setvar "pickbox" pckbox)
/ [* U1 _6 e0 i) v* ?(prin1)/ V( a1 V9 ~9 ?1 Z( ^6 D
)
发表于 2010-9-21 13:29:44 | 显示全部楼层 来自: 中国广东深圳
还有一个程序8 Q6 c) i/ S. n0 H' r
(defun mp (). G: b( B$ D- B% X
  (setvar "cmdecho" 0)
: H4 e# t  E0 a( M( f  (command "ucs" "w")
3 z. x9 O' J% e; M0 W# G  (setq i 0)' s& Z" B; x% h2 s& m4 J
  (winwin). U3 K6 T! X# G3 u
  (win)
$ Q8 J+ L* t, Z  (vl-load-com)! t3 c; |4 B1 s! O  H4 T* k1 m
  (setq        acadobj         (vlax-get-acad-object)2 A4 z2 m) V# R+ s: [  p
        acadpro         (vla-get-preferences acadobj)1 w3 i* ^8 v5 F" E% a
        acaddis         (vla-get-output acadpro)2 ]  Q$ Z! E5 o3 O4 Y; F8 v% p9 e* d
        acadtool (vla-get-defaultoutputdevice acaddis)
8 a% y" U. [3 H0 K, ~        output         (vla-get-defaultplotstyletable acaddis)( z1 K+ b9 L8 F% O1 s) h  n; K0 i
  )
8 m/ g2 W) A9 n  (setq        *acadobject*   (vlax-get-acad-object)0 W3 Z5 Y0 J4 [9 u2 e$ R1 ]
        *acaddocument* (vla-get-activedocument *acadobject*)
, N, \; _! \9 P1 B9 b, \4 K        *mspace*       (vla-get-modelspace *acaddocument*)) Q% P3 H$ k2 |# v% B5 ~6 y
  )  |1 K5 Y* j) {# l4 ?0 K
  (setq pop_list (list acadtool))4 V+ z- j; Y- T% G5 z1 v
  (setq        pop1_list '("acad.ctb") C4 D! B" b  T0 ?: t. f. S
                    "acad.stb") ~2 ~" `5 U6 Z' q
                    "Add-A-Plot Style Table Wizard"
( E: S6 F/ ~6 R' z                    "Fill Patterns.ctb"
- |1 q5 H2 y3 h                    "Grayscale.ctb"6 {* D- b$ S" Q) v
                    "monochrome.ctb"
' i1 j- f. L6 a                    "monochrome.stb"4 ~' e7 w( k* ]* @) g0 y5 N1 F( _
                    "Sample Floor Plan_Architectural.stb", v- f2 ]3 z% V  s+ @2 R
                    "Sample Floor Plan_Base.stb"5 ~6 ^9 `0 N* M: ]+ N, O4 ~) l. c
                    "Sample Floor Plan_Electrical.stb"
) {  N( ^% P0 M0 c) I+ k# M                    "Sample Floor Plan_Lighting.stb"4 J& W- L/ M2 a
                    "Screening 25%.ctb"$ E9 s0 N* E  I- Z! E
                    "Screening 50%.ctb"/ d. S/ c" R+ n$ ~
                    "Screening 75%.ctb"
" {& E! \! [" q                    "Screening 100%.ctb". S. @" [" P+ B5 W; U6 Z6 `
                   )% K( ^, _% q6 v4 `( E) Q4 v
  )  }/ N% R% B) o4 ~
  (dcl)/ W5 ]& e! V: P2 p9 j. m3 Q/ s
  (setq sss (ssget))) s5 t# |9 P  \7 n" m- C9 Z5 U( I* x& H
  (setq n 0)
( P$ p  u2 o. h; L* _  (setq i 0)9 K+ n, Z1 ~. e# }6 b' E. Y* P
  (repeat (sslength sss)
5 }6 [, \) u! H) ^% y4 K    (setq en (ssname sss n))0 ^% g3 Z: \% d  R
    (setq vl-en (vlax-ename->vla-object en)). F6 @$ K5 Q, ^% j$ J( y( J
    (vla-getboundingbox vl-en 'minext 'maxext)$ O! A4 ~9 y9 i& n
    (setq point1 (vlax-safearray->list minext))
/ ~  ^, C: O# d) P  ]6 }1 ~" o    (setq point2 (vlax-safearray->list maxext))6 O5 d# A2 [! V: N0 [) n
    (setq en_date (entget en))) X+ E5 X: h0 D3 ]
    (setq ABC (strcase (cdr (assoc 0 en_date))))9 `9 r; W: V* z  ?3 M$ M
    (if        (= ABC "INSERT")4 t: @/ ~# g" G) {$ @2 s) l# o
      (liling)9 ^# g. }  L" Y: |5 B# ?3 ?
    )
9 ]! D& F3 D6 E! _8 P0 ]. t& ?/ a4 |! I2 L) J8 x' F* b$ O
    (setq n (1+ n))4 [9 y4 n2 A! m3 D+ Y2 c
  )+ w' r/ c( A( q  q- X' A
  (cond        ((= data "0")
) e. V4 ?) G7 A         (princ (strcat "\nゴ" (itoa i) "眎家ㄣ瓜"))
/ g9 a& j9 a! L        )' w4 Y1 L) t5 }
        ((= data "1")/ n' Z" C5 k# j2 E4 t0 I
         (princ (strcat "\n 共打印了" (itoa i) "模具图纸"))
& R" J! S* x+ l8 P; ]- q5 u        )
% h' B+ e8 ?' z4 y* v+ {  )* t* ^4 ~, q+ L6 @
  (princ)' M# U) F* c5 a6 h
)# O8 m" S+ P5 _4 N

5 n' D7 {$ |$ q& T7 z% z' @$ o8 I$ [6 T& K9 P- Z% l& V6 x
(defun acad1 ()
5 m0 o  r" ^+ X, U8 Z2 N  (command "-plot"         "Y"        ""     acadtool             siz2   """ j! R( s2 x% q+ i
           fang          ""         "w"        point1 point2 ""     ""            ""
3 P* u/ A5 v4 U6 x* \& |+ F0 O! D           output ""         ""        ""     ""     "". L$ \" d: H2 i0 j' T, {
          )) h3 t& j4 o  W6 q' t
  (setq i (1+ i))
) H5 M9 J+ U; J  i0 c: `)
1 \; F/ h" y# K# x4 l5 O
& W7 Z/ O% U8 q) m$ @; |4 _7 @- n2 F
(defun acad2 ()
% d4 V* Q0 ^. C. ?  @6 g" w  (command "-plot"         "Y"        ""     acadtool             siz1   ""
, A# w7 a; o1 {           fang          ""         "w"        point1 point2 ""     ""            "", `8 C8 ~# R: L$ G# _+ d1 w
           output ""         ""        ""     ""     ""
& W9 i5 ~! l) {/ X# w+ N4 u7 _: f          )
5 N2 e8 Z) o! }# Q) @$ ?/ X; `  (setq i (1+ i))% P3 G  ^0 o' t8 I) }! h
)7 O- O+ I0 ~7 P" s

" O3 [8 H! {9 O: n! w9 [5 @2 P
7 \5 `7 ~4 Y% X- u  P& l(defun acad3 ()
2 g3 ]1 z" Q6 D/ K3 p" q  (command "-plot"         "Y"        ""     acadtool             siz1   ""1 p: ?9 {' Q$ p3 E! f- H' c# v
           fang          ""         "w"        point1 point2 ""     ""            ""
5 Q6 f/ u# S8 ^: E1 x: o" l5 L           output ""         ""        ""     ""     ""9 i$ a  _4 V9 u5 A; }! S1 h6 T
          )# j. R9 t- [" {* G
  (setq i (1+ i)), a& }7 v8 v5 N( P" d
)& ]/ a% q6 i# `/ [8 n$ k/ B
* C$ S& V" I7 E

$ D. V: |+ u, S  D(defun acad4 ()5 W6 F% c+ d1 Z' Q4 w# t# r& o
  (command "-plot"         "Y"        ""     acadtool             siz1   ""
( k! R! C! ~' A! p' A  Z           fang          ""         "w"        point1 point2 ""     ""            ""
/ k2 ?* p6 S6 n           output ""         ""        ""     ""     ""7 g3 A3 L6 Q) C( N5 m. ~+ R+ Q
          )& l2 e8 M" X% R
  (setq i (1+ i))+ m; j1 [( U6 v$ V$ O/ x
)
5 E  w, e. v% _! o/ V- |( ^! |# I0 l2 o$ i: |. U" z
(defun acad5 ()
7 F3 I+ P& b* M6 U  (command "-plot"         "Y"        ""     acadtool             siz2   ""' h" Q' l1 G" J$ P, C% y. t1 ~7 [
           fang          ""         "w"        point1 point2 ""     ""            ""3 D0 M5 k, P; {( \6 y( i
           output ""         ""        ""     ""     ""
  A2 `! w% Z+ c' W7 g: i          )
# y7 `, \: B  @7 p  (setq i (1+ i))
& a. ]) c8 _7 k- M: F2 r: T)0 c( U. x$ E3 |% J- L4 X# g2 c

4 C  I2 U: E) g* ?0 X(defun winwin ()
4 w/ X! n- F  r  ~0 |6 w  (setq dat_file (findfile "Big5orGB.dat"))% }3 m' k2 T6 F0 g4 h
  (setq ff (open dat_file "r"))
% P0 j, p& n* f5 S3 `7 {6 J; H  (setq data1 (read-line ff))
( F) A( L1 @; ~4 m  (setq data (substr data1 1 1)), I1 K$ k$ g/ r/ R' @+ ]
  (close ff)
8 S! }( ?& f5 x/ f! N1 K3 m  (princ)6 e# L+ S" i1 a3 A
)& V) S( r5 I+ ?% Q0 x5 G
% N' w7 t% \: z8 V- p8 _0 F  g
(defun liling ()5 x7 X0 m" {" Y2 l  V2 `- m% _
  (setq size (strcase (cdr (assoc 2 en_date))))! |; t  u4 j$ R# y0 u- V9 G
  (cond        ((and (= size "A3") (= th "AA")) (acad1))
' t2 O5 s+ G' w$ A" N0 D, S        ((and (= size "A4") (= th "AA")) (acad2))* w, I6 P2 L- `8 B1 p* J( M
        ((and (= size "A4") (= th "BB")) (acad4))& U( Q- h: k5 P/ j# M! E! ]
        ((and (= size "A3") (= th "BB")) (acad3))  o$ w6 `! {0 X, }( H* R% t/ Z
        ((and (= size "A3") (= th "CC")) (acad1))' K( f2 Z" t2 e9 D* h2 t
  )
' b  ^9 M! x' y' x( y- Z6 I# })3 [2 S7 ?/ E' x6 Z3 ?# Z# d
(defun win ()9 J# q1 f1 @* Z! s3 ~8 ?& P
  (setq dat_file (findfile "paper_size.dat"))
. [( t% [' |( _6 q2 W; D. L  (setq paper (open dat_file "r"))
& ?+ H2 T% q/ [! A( `  (setq siz1 (read-line paper))
; s. E7 V; K8 k( @  (setq siz2 (read-line paper)), s9 m0 X- ]4 Z1 I  d4 y$ c4 m
  (close paper)
' J# U+ Q& G, y  a, x" a! I  (princ)
. ^& [, z3 q6 p- }7 q+ @)
, T+ _( Y; p  P' ~/ ]) z2 L
; _/ j8 Z( p1 ^& q5 @! Z(defun dcl ()2 W0 b2 l; L0 \) N, H
  (setq dcl_id (load_dialog "mp"))( |" T  }7 K9 r
  (cond0 `: Y8 R1 S+ r, H' ]
    ((= data "0") (new_dialog "mpf" dcl_id)); q; a! e: y8 L* L$ r1 J# ]! }
    ((= data "1") (new_dialog "mpj" dcl_id))' J/ A% u5 L9 a# b
  ). M+ @" z# }7 U, l8 `
  (action_tile "AA" "(done_dialog 1)")! @2 ^  h6 t( @( @2 n
  (action_tile "BB" "(done_dialog 2)"), r1 O4 n$ K7 \* n8 e, T
  (action_tile "CC" "(done_dialog 3)")
% C1 \4 n, L4 c8 g0 H  (show_list "pop" pop_list); y5 m, u7 ?! p& v' O3 ^
  (show_list "pop1" pop1_list)
! i/ A! M; `4 p3 D+ }2 r# y  (action_tile "pop" "(sub_pop $value)")
1 V5 f7 h$ X5 \( I( Y( l7 H  (action_tile "pop1" "(sub_pop1 $value)"): o1 e# W! A8 R# r6 @/ W- D
  (ty_list1)
4 u8 b7 p) ~: k4 o3 Z( |' u  (set_tile "LP" "1")
( ], w3 \$ o% [+ M/ Y  (set_tile "edit_x" "0.00")
3 q% v5 {/ C  J$ b+ [# O2 k* J  (set_tile "edit_Y" "0.00")) Q, w% A0 v; m
  (action_tile "LP" "(ty_list1)"): N/ w* @- m$ M* r
  (action_tile "PL" "(ty_list2)")
, R( O2 k9 |3 F  f  (setq dd (start_dialog))* E. o9 k8 ]8 `( Z4 P. t
  (cond        ((= dd 1) (setq th "AA"))- a5 I" E2 S- K$ {; B  Q
        ((= dd 2) (setq th "BB"))
! K1 D3 q' p/ r$ _        ((= dd 3) (setq th "CC"))$ `' q( ?" i* f
  )& G) _$ M. h# [  C) a8 E+ A
)
9 }$ {: \5 Y2 ^/ O* I7 M* M! S4 [; f$ {7 m
(defun sub_pop (vvs)
5 u0 n( J  o( \7 _: Q: z) r. {  (set_tile "plotstyle" (nth (atoi vvs) pop_list))) S; ]* \: b) s5 H2 [! `3 r. s
)
6 n* U9 q) X7 O$ {+ ~
4 \& {" \. K  N/ t(defun sub_pop1        (vvs)
, O7 I4 ^" m) r8 C  (set_tile "acadstyle" (nth (atoi vvs) pop1_list))$ @; ?; `: F! z. f) G2 N  n
)/ r: ^1 s& l8 I$ J) d% R- f' s
(defun ty_list1        ()
8 Y. O6 V9 N2 Z% y7 a  p  (setq ddtype 1)& s& S7 L! ]$ j) j
  (setq fang "Portrait")
- G& V' H9 l! u- u  (show_sld "kimage" "sb"); K9 q( k. w: @5 R3 T
)
2 u3 P& R3 W$ e4 s) b4 S. F' Q; h1 p9 s
(defun ty_list2        ()- Q5 M$ L/ o+ U: J
  (setq ddtype 2)
0 m" D4 N0 f6 M9 q4 p1 _5 |$ L  (setq fang "Landscape")0 I! \' h% {, V9 h( m; ^6 t+ C
  (show_sld "kimage" "sb1")& s5 E- }7 D+ \7 W; W% q% ^
)1 E1 m# F$ O. E" `
7 V+ p  E) W0 M, j) y# G& }
(defun show_sld        (key sld)8 @( V" T# @$ g6 k+ p2 W
  (setq x (dimx_tile key))
% t$ U* H3 l6 U- ]" J+ U) h  (setq y (dimy_tile key)), F+ k2 \1 ^4 b% Z: ^
  (start_image key)
0 \$ M. X1 l6 u; j, G2 Z/ F  (fill_image 0 0 x y -15)2 \% [' w- a) f9 U4 s9 T7 V0 P
  (slide_image 0 0 x y sld)
* n' z% I' B2 u- N- k  (end_image)
) `, q- }3 m: o* m3 X)$ E- m0 n% Q9 w
(defun show_list (key newlist)
* K* \( z0 x2 w( m+ Y& u" @  (start_list key)8 W+ o# U8 f9 b# S
  (mapcar 'add_list newlist)$ }6 n; f' y! l
  (end_list); z8 o& c; Q: P/ l) G8 |
)" }# D' R5 ?% z* `
- C1 W( {3 `! w1 S4 w
(vlax-add-cmd "mp" 'mp)
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

快速回复 返回顶部 返回列表