|
|
发表于 2011-4-19 16:16:16
|
显示全部楼层
来自: 中国云南保山
本帖最后由 woaishuijia 于 2011-4-19 16:24 编辑
/ g7 }3 l9 D( y- x8 V. T
- s2 H8 S1 p8 ~* `! v你准备用作零件文件名的字符串中含有非法字符,不能做文件名!4 }" s' v" O0 O# V( O
如果保证该文字中没有非法字符,可以参考下面的代码(VBA)/ N1 u( c, j7 S1 C
-
# F( d# `& I' d6 ^* F - Dim SS As AcadSelectionSet, E(0) As AcadEntity, S As String: N& o0 F. [& {7 B
- '创建选择集
3 u- b$ t+ F1 ]- K - Set SS = ThisDrawing.SelectionSets.Add("SS")3 Q) `6 w$ F; f0 f
- '由用户在屏幕上选取零件图图元,包括准备用作文件名的Name图层的单行文字
/ N2 C% ^ a+ P; B6 f - SS.SelectOnScreen
; V; g3 P% N( P; @# H: ~: [$ V - '遍历选择集,查找其中Name图层的单行文字
6 |! Y/ V( t R- t - For Each E(0) In SS z! x* Y& ?/ }# [: {! `& K
- If E(0).ObjectName = "AcDbText" And E(0).Layer = "Name" Then/ [2 G4 A- \. I, H
- '找到文字后提取字符串8 p% ^. [' l8 O1 k% u# ]! K
- S = E(0).TextString
3 o- R+ ?0 @3 ^( u - '从选择集中移除该单行文字,在新的零件文件中不保存它.( k2 \) S; M8 I# M( L. a; A, t
- '如果在零件文件中需要保存该文字,则删掉下面这行
. H+ @! i H1 E - SS.RemoveItems E
& u) `+ g1 `) }* G* j8 G( y/ h - Exit For& V, X$ p1 n0 w$ S. c+ g
- End If
( b( b0 Q9 G' V& @% U% ^ - Next
! C0 z+ F: ~( _; P - '调用写块方法在新文件中保存选择集中的图元,路径与当前文档相同,文件名使用从单行文字中提取的字符串2 A/ m/ L! A2 A( D& @; x
- ThisDrawing.Wblock ThisDrawing.Path & "" & S & ".dwg", SS/ b: P1 r( g8 U
- '删除用过的选择集
7 p2 t5 k% q u; w* G7 Z- P - SS.Delete6 F* R5 s" r. ?3 L* w
复制代码 |
|