天正能否实现文字关联?
大老猫
大老猫 Lv.14
2011年08月08日 19:28:42
来自于天正电气
只看楼主

在cad图纸中,能否实现这个功能,输入文字A和文字B,将A和B的内容关联,当修改文字A时,文字B同时随A一同修改?我试过使用图块的在位编辑功能,两个块名相同的图块,当对A块在位编辑后B块也同时修改了,就是太麻烦了,能有更好的办法吗?

在cad图纸中,能否实现这个功能,输入文字A和文字B,将A和B的内容关联,当修改文字A时,文字B同时随A一同修改?
我试过使用图块的在位编辑功能,两个块名相同的图块,当对A块在位编辑后B块也同时修改了,就是太麻烦了,能有更好的办法吗?
免费打赏
lancerzy
2011年08月09日 10:40:39
2楼
楼主说的一同修改是改什么 改样式还是改什么
如果是内容 A和B的内容相同的话
用查找替换就可以了

能说的更详细点么
回复
大老猫
2011年08月09日 12:20:01
3楼
谢谢楼上的,A和B的文字内容是一样的,想修改A的文字内容时,B的文字内容变得和A一样。用查找替换是可以同时改变A和B的文字内容,但也会同时把文字内容与A和B相同的其它文字同时改掉,这是我所不希望的。我在网上查阅了些解决办法,要二次开发,我对LISP不懂,所以求助天正软件开发人员解决这个问题。我在网上查到的解决方案如下:
利用AcadDocument_ObjectModified事件实现
Private pJudge As Boolean
Sub Test()
Dim pText(1) As AcadText
Dim pnt(2) As Double
Set pText(0) = ThisDrawing.ModelSpace.AddText("ABC", pnt, 5)
pnt(1) = 10
Set pText(1) = ThisDrawing.ModelSpace.AddText("ABC", pnt, 5)
Dim xt(1) As Integer, xd(1)
xt(0) = 1001: xd(0) = "TlsTest"
xt(1) = 1000: xd(1) = "OK"
pText(0).SetXData xt, xd
pText(1).SetXData xt, xd
End Sub

Private Sub AcadDocument_ObjectModified(ByVal Object As Object)
On Error Resume Next
Dim xt, xd
Dim ss As AcadSelectionSet
Dim ft(0) As Integer, fd(0)
If Not pJudge Then
pJudge = True
Object.GetXData "TlsTest", xt, xd
If IsArray(xd) Then
ThisDrawing.SelectionSets("TlsTest").Delete
Set ss = ThisDrawing.SelectionSets.Add("TlsTest")
ft(0) = 1001: fd(0) = "TlsTest"
ss.Select acSelectionSetAll, , , ft, fd
For Each i In ss
i.TextString = Object.TextString
Next i
End If
pJudge = False
End If
End Sub
如何实现,我不会啊
回复
weilan01
2011年08月10日 10:46:57
4楼
A和B如何定义,内容是否一致,在修改A时,B会变成和A相同还是有固定值,是否只是文字,请LZ详细描述下,
最好是有土有真相~呵呵
回复
liuconstruct
2012年07月26日 10:32:52
5楼
回复

相关推荐

APP内打开