三维网

标题: 自動轉換 層,顏色,線型 [打印本页]

作者: BILL.PU    时间: 2009-12-9 23:02
标题: 自動轉換 層,顏色,線型
Autodesk Inventor 3D圖轉AutoCAD 每次都要一一改,層,顏色,線型
3 ?: b* b8 v1 v# t求助,自動轉換 層,顏色,線型 .LSP
6 R( J" I& [0 k% W% g如下圖 9 {" r7 c7 @% [6 ]* ?& R
2 G$ R7 Y4 J2 P+ N. g# d0 s
謝謝[attach]1517784[/attach]
作者: sealive_leafage    时间: 2009-12-10 19:32
使用命令laytrans可以图层转换,只要你有一个含有标准图层设置的样本文件(dwt)就可以方便的映射转换了;# S* `7 R6 [- ^9 g8 c2 ]# X
0 K! h7 e0 D& f+ X. ^: j4 h) _
[ 本帖最后由 sealive_leafage 于 2009-12-10 19:34 编辑 ]
作者: BILL.PU    时间: 2009-12-10 20:47
感謝樓上回復,不知哪裡可下載
作者: rongjian    时间: 2009-12-10 21:51
原帖由 BILL.PU 于 2009-12-10 20:47 发表 http://www.3dportal.cn/discuz/images/common/back.gif0 Z# ~! U; i! W; p
感謝樓上回復,不知哪裡可下載
/ Q% I$ g6 u7 U% C' Z
不用下载,这是CAD自带的一个功能。位置就在菜单“工具”——“CAD标准”——“图层转换器”或者输入命令LAYTRANS就可以了。) w8 Y- e7 {+ g( U- b
[attach]1518675[/attach]
作者: BILL.PU    时间: 2009-12-11 19:27
謝謝指導!試過後不是個人所需,相同層只能同一顏色同一線型
0 T+ i# d! h& x6 O所以需要寫程式
作者: woaishuijia    时间: 2009-12-11 21:17
VBA代码,供参考
  1. $ Y9 T: i6 D4 ~  c) R5 M
  2. Sub A()
    ) M6 S( Q/ S& g6 P. _% F
  3.     Dim E As AcadEntity
    * n5 R8 e) J( E# Z
  4.     ThisDrawing.Layers.Add "AA"
    4 ?0 c7 I8 A0 ?" i: O9 ]1 \
  5.     LoadLineType "HIDDEN"+ Z, I) F0 j( A. a: T. m
  6.     LoadLineType "CENTER"
    1 }2 _. p' m; U0 U6 r
  7.     For Each E In ThisDrawing.ModelSpace' D" @2 X7 K/ w8 A6 ?
  8.         Select Case E.Layer
    8 Z. F& B0 c7 @% ]% Q
  9.             Case "可见(ISO)"
    " g0 {) ?, J0 u. ~
  10.                 E.color = 7& e9 d1 j& i+ S9 A3 o
  11.                 E.Linetype = "Continuous"
    / g5 ~; |0 o: s; R, B4 G  T
  12.             Case "窄部可见(ISO)". y+ b& R) ~5 Z) Z5 h- R
  13.                 E.color = 5
    ! `" |2 H, e- i4 t% z+ {  z
  14.                 E.Linetype = "Continuous"
    % f1 {: k0 K6 E) h
  15.             Case "隐藏(ISO)"" D7 V' u1 s; X& R* c% C/ v: s
  16.                 E.color = 4
    - H- w: s$ X$ a, p, F$ h: L
  17.                 E.Linetype = "HIDDEN"
    3 C' `7 Z7 D3 o  Y8 O  w& @% _
  18.             Case "中心线(ISO)", "中心标记(ISO)"
    . t# z0 L4 D1 w% k
  19.                 E.color = 18 T% U9 J0 ]& N7 g# E# f" C) I9 A
  20.                 E.Linetype = "CENTER", q1 R2 j3 M8 x( J4 ~
  21.         End Select
    " W. [4 a, O( p
  22.         E.Layer = "AA"
    & ^1 j3 \* `. e8 z( ?$ Q) R
  23.     Next& C* S* W9 d* {9 @" b! C; i, E
  24. End Sub
    : \% a4 j/ \0 r" @) w

  25. & G" ?; S! G8 Y$ }
  26. Private Sub LoadLineType(S As String)4 [: E$ f! S6 K0 i
  27.     Dim T As AcadLineType, B As Boolean
    8 N2 q. d) j/ K- X/ V
  28.     For Each T In ThisDrawing.Linetypes
    * ]$ ?# n$ i: x7 u: W
  29.         If T.Name = S Then: g3 J& N! H$ X3 b
  30.             B = True8 s9 G; z; b7 V4 t
  31.             Exit For* {1 B$ s% L' S1 n  G9 X
  32.         End If  O7 W' r" q. H) N: t+ q
  33.     Next. Q7 K5 O1 {* G3 k7 i  M8 {$ v
  34.     If Not B Then ThisDrawing.Linetypes.Load S, "acadiso.lin"0 ]: y+ U' ]7 X: O4 h4 d' [
  35. End Sub9 F8 q. c- o- y; R
复制代码

作者: 哥哥很善良    时间: 2010-1-2 17:55
用下面的程序:
1 f3 r5 O- ^- T; y(if (not (tblsearch "layer" "xuxian"))! }. e3 W, f5 c' f  b/ y
    (command "layer" "n" "xuxian" "l" "hidden" "xuxian" "c" "3" "xuxian" "")9 c# |8 z  M0 Q: I& b
    )                                                 ;;;上面是你图上无xuxian层它自动去建立。6 ]- L$ m' N2 d) V) X
                           ;;;你是在同一层上画了不同的线型( k( w( d9 d& t7 k+ U# h8 J! S
(defun c:chgla ()$ F6 S8 y" b& k: T7 F& A
  (setq en (ssget "all") n (sslength en) i 0)1 s+ h. O7 M9 b# h( X4 S+ m
  (repeat n) k: y, v; U+ Q' c) Z% |. O
    (setq ee (ssname en i) en1 (entget ee) linee (cdr (assoc 6 en1)))    ;;;只有在同一层上画了不同的线型有6
3 H3 }& d" X3 [. z" x% X+ X' V: n3 H    (if (= linee "HIDDEN")
  X) _& |/ s2 X" T9 B" a1 N3 i4 o       (command "change" ee """p" "la" "xuxian" "")3 Z9 \8 w. F: ~  b5 l! D, ~6 I9 o
      )
, x. I8 C; ]/ b    (setq i (+ i 1))% u2 W3 }& }+ w
   )* P' l# F9 N: e& x$ Z4 |6 b( s
)4 S' f$ u; }- `+ v
  
6 `. `0 t5 V& ?用上面的方法可去把不同的线型分出去。




欢迎光临 三维网 (http://www.3dportal.cn/discuz/) Powered by Discuz! X3.4