Jeff_M 发表于 2008-7-17 18:09:40

我是什么空间?

在我的脑海中,我记不起如何确定一个块是毫秒还是PS;有人能提醒我吗 我认为它与OwnerID有关,但我找不到任何我使用过的代码,所以我不确定我是否在正确的轨道上

SEANT 发表于 2008-7-17 18:25:20

没关系,布莱科以前做过,我就是做不到;找不到它Function IsPs(oBref As AcadBlockReference) As Boolean
    Dim oblock As AcadBlock
    Set oblock = ThisDrawing.ObjectIdToObject(oBref.OwnerID)
    If Not oblock.Name = "*Model_Space" Then
      IsPs = True
    End If
End Function

Bryco 发表于 2008-7-18 06:45:08

也许是更好的?它演示了如何比较数字(ObjectId)而不是进行字符串比较:
Function IsPs(pBlkRef As AcadBlockReference) As Boolean
    IsPs = (pBlkRef.OwnerIDThisDrawing.ModelSpace.ObjectID)
End Function
干杯,格伦。

SEANT 发表于 2008-7-18 06:47:30

实际上,严格来说应该是:
Function IsPs(pBlkRef As AcadBlockReference) As Boolean
    IsPs = (pBlkRef.OwnerID = ThisDrawing.PaperSpace.ObjectID)
End Function

Bryco 发表于 2008-7-18 12:27:11

格伦,我认为第一个更正确&引用;此图纸。“纸质空间”;仅引用最近的当前布局,因此如果块位于任何其他布局中,则第二种方法仍将返回False。

SEANT 发表于 2008-7-18 13:04:35

杰夫,是的,那's正确,并且仅当它与从用户处收集的选择集(例如)结合使用时。如果您'重新处理嵌套的插入,所有下注都已关闭,而且这两种情况无论如何都不正确
尽管如此,这表明了我们的意图

SEANT 发表于 2008-7-18 14:25:03

谢谢你,格伦,我更喜欢这个。!

SEANT 发表于 2008-7-18 14:38:17

没问题,Duh。

Bryco 发表于 2008-7-18 17:19:06

假设&nbsp&nbsp
Set objBlkRef = getblock("UES") 返回一个名为UES的块,如何检查是否返回 我试过了If Not objBlkRef = Nothing 严重失败的

SEANT 发表于 2008-7-18 18:26:26


我认为应该是这样的:如果objBlkRef什么都不是,那么
页: [1] 2
查看完整版本: 我是什么空间?