QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
goto3d 说: 此次SW竞赛获奖名单公布如下,抱歉晚了,版主最近太忙:一等奖:塔山817;二等奖:a9041、飞鱼;三等奖:wx_dfA5IKla、xwj960414、bzlgl、hklecon;请以上各位和版主联系,领取奖金!!!
2022-03-11
全站
goto3d 说: 在线网校新上线表哥同事(Mastercam2022)+虞为民版大(inventor2022)的最新课程,来围观吧!
2021-06-26
查看: 2058|回复: 6
收起左侧

[求助] 自動轉換 層,顏色,線型

[复制链接]
发表于 2009-12-9 23:02:17 | 显示全部楼层 |阅读模式

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

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

x
Autodesk Inventor 3D圖轉AutoCAD 每次都要一一改,層,顏色,線型& M' ~8 U, z7 s! ^, x) S+ O5 _$ m$ `
求助,自動轉換 層,顏色,線型 .LSP
- D( r6 a6 D; h: H' e. Z5 m& a如下圖
; l' O1 B- @2 A& Z( [$ k" z7 j; L7 b" ?6 w
謝謝 顏色,層,線型.jpg
发表于 2009-12-10 19:32:52 | 显示全部楼层
使用命令laytrans可以图层转换,只要你有一个含有标准图层设置的样本文件(dwt)就可以方便的映射转换了;
' H6 Y$ M; r. t, }  t& A$ {: e" j3 w/ I/ _6 s8 z& }3 n& [2 X9 o
[ 本帖最后由 sealive_leafage 于 2009-12-10 19:34 编辑 ]
未命名.JPG

评分

参与人数 1三维币 +5 收起 理由
2005llnn + 5 应助

查看全部评分

 楼主| 发表于 2009-12-10 20:47:41 | 显示全部楼层
感謝樓上回復,不知哪裡可下載
发表于 2009-12-10 21:51:37 | 显示全部楼层
原帖由 BILL.PU 于 2009-12-10 20:47 发表 http://www.3dportal.cn/discuz/images/common/back.gif
* ~; q0 R- J$ j# g感謝樓上回復,不知哪裡可下載
: @& v3 w6 R. a) ~- W" R5 n2 b. C
不用下载,这是CAD自带的一个功能。位置就在菜单“工具”——“CAD标准”——“图层转换器”或者输入命令LAYTRANS就可以了。
$ Y1 u6 [" e. V BZ.jpg

评分

参与人数 1三维币 +3 收起 理由
2005llnn + 3 应助

查看全部评分

 楼主| 发表于 2009-12-11 19:27:33 | 显示全部楼层
謝謝指導!試過後不是個人所需,相同層只能同一顏色同一線型
" {; a  Y4 g0 P0 ]5 c& v4 B; R- J/ R所以需要寫程式
发表于 2009-12-11 21:17:15 | 显示全部楼层
VBA代码,供参考
  1. 2 h- c  F1 X6 i( o
  2. Sub A()
    % \/ l. ]7 u& F' w* o1 G
  3.     Dim E As AcadEntity( Q8 J& r* V9 C6 y# s$ @6 l8 C( t" d
  4.     ThisDrawing.Layers.Add "AA"
    / \2 k# P/ ?7 z* E$ I6 O- X
  5.     LoadLineType "HIDDEN"
    + y' z0 F1 w1 d/ g3 |+ B3 g, ?; o8 B: ~
  6.     LoadLineType "CENTER"
      N% W/ {6 u; h$ y! r0 a; M# |
  7.     For Each E In ThisDrawing.ModelSpace, U$ J: [+ C5 V5 V4 T- {9 j4 ~# i
  8.         Select Case E.Layer
    $ S/ }* u7 W  |; ~
  9.             Case "可见(ISO)". d# B& `/ }4 J1 P: H1 @4 K
  10.                 E.color = 73 t4 P6 R7 d( [  P! J3 g1 c5 K
  11.                 E.Linetype = "Continuous"
    " t, B2 J) D9 V+ T# ]9 l% M
  12.             Case "窄部可见(ISO)"
    0 K, l7 D4 T5 n) f5 L
  13.                 E.color = 5
    7 d) @- h& s2 b
  14.                 E.Linetype = "Continuous"1 t. @$ G* x; M+ \0 D5 X
  15.             Case "隐藏(ISO)"
    1 `) w2 x/ u. A5 u  M4 O* ?! i
  16.                 E.color = 4
    , V! ?9 r% h/ n3 u+ C! ~
  17.                 E.Linetype = "HIDDEN"3 R+ |5 G7 V) F% R+ g5 A( h9 P
  18.             Case "中心线(ISO)", "中心标记(ISO)"3 Z6 S! @! c* h
  19.                 E.color = 1& W. v& }: A) m& t5 [3 L) t; E0 J. V
  20.                 E.Linetype = "CENTER"
    - x5 }) ]* K# i; {: Q$ H: [& \8 {6 G
  21.         End Select* y9 e! J; W6 M0 n. B: _
  22.         E.Layer = "AA"( H1 H- W  s! A
  23.     Next- B' A7 e& ?4 y! F! p: [  C0 y
  24. End Sub
    # y( f9 x3 y. f1 ~- y" b* {, V, p( {
  25. * j" N1 U: i9 n0 l8 u
  26. Private Sub LoadLineType(S As String)& A0 x( N" S; y8 L* _) g
  27.     Dim T As AcadLineType, B As Boolean6 [( k- V# {; _2 M9 N1 B+ G( }
  28.     For Each T In ThisDrawing.Linetypes: E9 p7 [: u6 a2 X. z* v
  29.         If T.Name = S Then
    * |7 e0 g; n5 |; g! K
  30.             B = True* s6 B4 a, {  d' V1 m* g- B7 k' y
  31.             Exit For
    + o3 F! W1 G1 {) F1 H& G4 ]+ ~/ J
  32.         End If
    5 t8 Q2 \- z6 c; w; T$ n
  33.     Next& B* c5 D4 @! M8 C
  34.     If Not B Then ThisDrawing.Linetypes.Load S, "acadiso.lin"* P/ `7 L: g" n5 I, q/ d
  35. End Sub8 z+ x. t( @) `; R" J
复制代码

评分

参与人数 1三维币 +5 收起 理由
2005llnn + 5 应助

查看全部评分

发表于 2010-1-2 17:55:56 | 显示全部楼层
用下面的程序:6 \1 ], I$ u$ P3 k
(if (not (tblsearch "layer" "xuxian"))
. C& y" H' }5 U- e' U4 e$ f/ Z    (command "layer" "n" "xuxian" "l" "hidden" "xuxian" "c" "3" "xuxian" "")
. c9 j: p. b8 m) n3 v$ z& T- o    )                                                 ;;;上面是你图上无xuxian层它自动去建立。% ^9 v, W! r$ {+ l
                           ;;;你是在同一层上画了不同的线型
. q( ], J. C/ p# S! B( C(defun c:chgla ()  C, h. H  e9 n: B% v0 F
  (setq en (ssget "all") n (sslength en) i 0)
& b" Z3 O9 b* Q8 G3 q8 K# _3 ]2 j  (repeat n5 M6 G, }% M' S$ m5 ~1 R
    (setq ee (ssname en i) en1 (entget ee) linee (cdr (assoc 6 en1)))    ;;;只有在同一层上画了不同的线型有6
5 T7 `) K0 m" M9 q+ i) ?    (if (= linee "HIDDEN")0 G; c4 Y% _. \
       (command "change" ee """p" "la" "xuxian" "")1 \/ t. {3 X) R0 D" O% u
      )3 `( r4 t5 |/ E0 Y7 }* R0 G. K3 K
    (setq i (+ i 1))% \, y; F5 F0 X) {% b
   )
5 E; I6 b  S- b9 x/ F)5 b( A9 O7 T0 P/ _
  , ~3 J2 e1 X+ m' t% z6 O
用上面的方法可去把不同的线型分出去。
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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