QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
8天前
查看: 3404|回复: 5
收起左侧

[已答复] CAD2008中如何采用编程手段修改字段内容???

[复制链接]
发表于 2008-6-18 08:28:09 | 显示全部楼层 |阅读模式 来自: 中国辽宁鞍山

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

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

x
CAD2008中增加了字段功能,
9 p: f8 s) e1 Y+ P但如何采用编程手段修改字段内容???
发表于 2008-6-18 09:55:44 | 显示全部楼层 来自: 中国辽宁营口
1、“字段”并非2008的新功能,至少我知道在2005中就有;$ t( a9 b4 j$ p4 `* x3 {
2、“插入字段”实际上是在调用文档对象及其子对象的属性,所以CAD对象集中并没有“字段”对象,如想“修改字段”应该直接修改相应的对象属性。
发表于 2008-6-18 19:44:53 | 显示全部楼层 来自: 中国浙江宁波
首先字段是多行文本对象或单行文本对象(AcadMText、AcadTex),参考二对象的FieldCode方法的帮助或许会得到启发!具体没有试过,猜测应该是按fieldcode方法来区分一个文本对象是否为字段;普通文本对象的fieldcode方法是文本对象的内容,而字段则为通配符,至于下面该怎么做你自己考虑吧!- h6 T" C( ]* C  \8 v. a9 Q
下面是ACAD2008的帮助例子3 z! ]1 ?0 w5 I7 d6 p" N
Sub Example_FieldCode()
9 a3 |  a" o! A4 w5 t: S    ' This example creates a text object in model space.
! `$ c9 o( H  E4 f! Z# H% I: U    ' It then returns the field code string for the object.8 |, `" n5 Y) E' l6 B

4 i  L! n$ b# `3 z0 X1 F    Dim textObj As AcadText+ [7 Q1 B9 M! U, {( h
    Dim text As String3 @/ ]$ T: O# t+ b7 j5 c- `* E
    Dim insertionPoint(0 To 2) As Double! \5 I1 P. q* S; \! a. j, s" L7 r
    Dim height As Double* D/ ~/ B% o+ d) p- X6 b
2 F" n6 u; V9 e/ u; }) |: [% ~7 [
    ' Define the text object
2 A  G9 Y4 X4 P5 w    text = "%<\AcVar Date \f ""M/d/yyyy""%>%"
" _0 f8 K6 L9 `4 j# R    insertionPoint(0) = 2: insertionPoint(1) = 2: insertionPoint(2) = 0( e1 _+ Z- i% z& a& T
    height = 0.5
, X6 b1 w9 R* Q4 B4 R   
$ r% m  `% ]2 J3 D    ' Create the text object in model space/ m  @# {7 T5 I1 g& g
    Set textObj = ThisDrawing.ModelSpace.AddText(text, insertionPoint, height)
7 M8 `: w: @! J0 h    ZoomAll: a7 m: ~* z7 i5 y" r4 T- d: {7 z
   
0 F# _: ^8 l+ i" N6 E: o    ' Return the current text string for the object) H0 a, y4 F7 p" ]8 b
    text = textObj.FieldCode
0 ~9 K: ?! X) Z# |+ h0 V8 L    MsgBox "The FieldCode for the text object equals: " & text, vbInformation, "FieldCode Example"
8 h+ M/ ?$ {8 X2 J6 K1 W* s: L0 h' M5 K' e' L- W
End Sub
6 f! [6 n/ `# _
9 @' \$ z: e& r1 Q- a- V0 o1 u[ 本帖最后由 sealive_leafage 于 2008-6-18 20:04 编辑 ]

评分

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

查看全部评分

发表于 2008-6-18 20:23:24 | 显示全部楼层 来自: 中国

回复 3# 的帖子

有一点不同看法:
, z, a% B1 d. S* C. z% ]! A1、字段可以插入到任意种类的文字(公差除外)中,其中包括表单元、属性和属性定义中的文字。* Y; R2 X; J# D, N$ }
2、FieldCode函数是用来获得文字对象的代码的。在本例程中,单行文字使用了日期字段,查看TextString属性得到的是系统日期字符串,而用FieldCode函数就能得到它的代码"%<\AcVar Date \f ""M/d/yyyy""%>%"。如果一个文字不包含字段,那么TextString和用FieldCode函数得到的代码就是一样的。
发表于 2008-6-18 21:17:18 | 显示全部楼层 来自: 中国
刚才内急,有点词不达意。" P3 W7 A7 \0 [; M5 @8 C1 N
我的意思是说,FieldCode是一个函数,它不能用来修改字段本身。当然,可以通过比较TextString属性和FieldCode函数来判断一个文字对象中是否含有字段。不过,换一个其它字段恐怕不是楼主的本意吧?3 k0 p3 X  A! U6 a, X! m
如果修改字段本身,就本例程而言,只要用Date方法修改系统时间,再全部重生成,字段也就改变了。如果是要换一个字段,你的方法可能是最好的了。
 楼主| 发表于 2008-6-19 13:55:51 | 显示全部楼层 来自: 中国辽宁鞍山
看来确实比较难, 不如直接用属性块算了, 来得方便,谢谢大家
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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