Jeff_M 发表于 2006-9-1 16:09:11

很有趣Chuck。这是一件重要的事情,但不是那么重要,我可以抛来抛去,让我的思想远离治疗。我明白你关于如何转换代码的观点,我可能会尝试一下rted和我可能会在几天内试一试。我可以到处闲逛,但我可以'我现在真的没有编码。用你的代码删除一个对立面看起来确实很简单。我知道我可以用acisout获得干净的三维实体,但大多数人想要的是三维实体以外的东西。如果有;免费为每个人清理垃圾
我真的不同意让程序员有权决定你可以删除什么。你的就是你的。他们用Macromedia/Adobe Flash实现了这一点。它们使内容的创建者能够控制您是否可以停止播放媒体。尽管许多知名网站都使用该软件,但更多的网站利用了您在知名网站上安装该软件的事实,现在到处都是噪音和闪烁的废话劫持了您的箱子。这应该是非法的,我敢打赌,无论是对于使其不可删除的自定义对象的开发人员,还是对于创建最终用户无法控制的内容的内容创建者,这都可能是非法的。我真的不想在这个切线上走下去,但这个废话真的让我生气。在我上次购买InstallShield时,我注意到我不需要提供卸载程序!现在,软件公司给你这个选择可能是合法的,如果你在美国和许多其他国家销售软件,法律要求卸载程序,你就没有这个选择
我想知道欧文·温格德是否有清理这些东西的工具
编辑:他做了。三十美元。http://www.manusoft.com/Software/SuperPurge/index.stm数字!

Jeff_M 发表于 2006-9-1 16:22:30

欧文's的实用程序在那幅画上做了工作。您必须选择硬清除,并特别选择要删除的内容。选择“全部”可以有效地删除所有内容,这是应该的。我打算给自己买一本。

Jeff_M 发表于 2006-9-1 16:48:09

我买下了欧文'这是很久以前的事了。它工作得很好……大部分情况下。有一些图形在使用后拒绝再次打开,因此请确保您首先拥有有效的备份。不,我没有向欧文报告这些问题,因为这些问题都在我真正没有的图纸上'我什么都不需要,所以我只是抄下我确实需要的东西,并称之为好。

Bryco 发表于 2006-9-4 05:57:14

是否有人试图使用VBA复制实体并将其保存在新图形中
然后另存为,用代理实体覆盖图形
这可能每次都管用
约翰

Bryco 发表于 2006-9-6 16:03:32

这是另一种尝试 它似乎适用于我的ADT对象
Sub main()
Dim sourceDoc As AcadDocument
Dim targetDoc As AcadDocument
Set sourceDoc = Application.ActiveDocument
Set targetDoc = Documents.Add
scanObjects sourceDoc, targetDoc
Application.ZoomExtents
Set targetDoc = Nothing
End Sub
Private Sub scanObjects(ByRef sourceDoc As AcadDocument, _
                        ByRef targetDoc As AcadDocument)
Dim block As AcadBlock
For Each block In sourceDoc.Blocks
    If block.IsLayout Then
      Dim index As Long
      Dim objects() As AcadObject
      index = -1
      ReDim objects(0 To block.Count) As AcadObject
      Dim ent As AcadEntity
      For Each ent In block
      If ent.ObjectName"AcDbZombieEntity" Then
          If ent.HasExtensionDictionary Then
            scanDictionary ent.GetExtensionDictionary
          End If
          index = index + 1
          Set objects(index) = ent
      End If
      Next ent
      Set ent = Nothing
      If index > -1 Then
      ReDim Preserve objects(index) As AcadObject
      sourceDoc.CopyObjects objects, targetDoc.Blocks(block.Name)
      End If
    End If
Next block
Set block = Nothing
End Sub
Sub scanDictionary(ByRef dictionary As AcadDictionary)
Dim obj As AcadObject
For Each obj In dictionary
    If TypeOf obj Is AcadDictionary Then
      scanDictionary obj
    ElseIf obj.ObjectName Like "AcDbZombie*" Then
      obj.Delete
    ElseIf obj.HasExtensionDictionary Then
      scanDictionary obj.GetExtensionDictionary
    End If
Next obj
Set obj = Nothing
End Sub
此代码将非代理对象复制到新图形 新图形将保持打开状态且未保存在编辑器中。
页: 1 [2]
查看完整版本: 代理实体