Bryco 发表于 2006-6-20 14:09:17

插入公制/英寸DWG

Having 2006为设置插入比例提供了一些很好的选项。但我们有2004年和2006年,所以我需要一种方法,能够将我们的标准参考气泡等插入到英寸和公制中,而不是使用IAcadBlock3属性。
我认为如果绘图是公制的,通过缩放块中的实体,下面的方法会有效,但是代码0]
Alas 2006决定以25.4的比例插入一个块,这样效果会加倍。
感谢任何帮助。
**** Hidden Message *****

Bryco 发表于 2006-6-20 14:14:33

只是在这里即时键入,因此需要进行一些调整,但是
Function is2k6() As Boolean
If Left(thisdrawing.getvariable("ACADVER"),4) = "16.2" then
    is2k6 = true
End if
end function

Bryco 发表于 2006-6-20 14:35:20

谢谢鲍勃,我用同样的东西。
有时知道哪个版本不会阻止错误
,如果is2k6,那么
如果
这在2004年抛出错误,则将B调暗为IAcadBlock3结束

Bryco 发表于 2006-6-20 14:39:09

我看到你的问题了。 您可能必须运行两个不同版本的应用程序。

DaveW 发表于 2006-6-20 14:43:11


Function mmBlock(oBlock As AcadBlock)
    If isMM Then
      Dim Ent As AcadEntity
      Dim Ins
      Ins = oBlock.Origin
      If not is2k6 then
            For Each Ent In oBlock
                Ent.ScaleEntity Ins, 25.4
            Next
      End If
      oBlock.units = acInsertUnitsMillimeters
    End If
End Function

Bryco 发表于 2006-6-20 16:12:36

到目前为止,这是一个非常好的决定,鲍勃。

DaveW 发表于 2006-6-20 16:15:18

即使是一只瞎眼的狗有时也会发现萝卜。

Bryco 发表于 2006-6-21 00:17:13

将单位设置为英寸,并以1的比例插入ref,最终得到的ref比例为0.0394。
因此,通过vba在公制dwg中插入英寸单位时,您需要使用25.4的比例
,而使用sendCommand时,比例为1。
我选择了下面,不知道是否会有一些长期的影响。
始终缩放公制dwg块中的元素。
Function mmBlock(oBlock As AcadBlock)
    If isMM Then
      If AcadVer > 2004 Then
            oBlock.units = acInsertUnitsMillimeters
      End If
      Dim Ent As AcadEntity
      Dim ins
      ins = oBlock.Origin
      For Each Ent In oBlock
            Ent.ScaleEntity ins, 25.4
      Next
    End If
End Function

DaveW 发表于 2006-6-21 22:10:11

不知道这对你是否重要,但我一直在使用这个号码:3.93700787401575E-02
抱歉,我无法为其他问题提供更多帮助。我仍然不检查ACAD版本。我只是在阅读你的人的东西,希望能学到该怎么做。

Bryco 发表于 2006-6-21 23:32:39

Dave 3.93700787401575E-02与1/25.4相同
有关系吗?
我的测试显示7.777x7.777比7.777^2快,7.777X0.5比7.777/2快。
但是cad中的缩放(在命令行)不允许1/2.4,但允许10/254,这很容易记住,所以我现在习惯使用它。
页: [1] 2
查看完整版本: 插入公制/英寸DWG