neteasy 发表于 2003-10-22 21:10:00

如何实现消隐功能

如题

bluemoon 发表于 2003-10-23 10:54:00

可以利用第三坐标来实现消隐 也就是前面的Z坐标比后面的大 然后用AUTOCAD的“HIDE”命令来完成图形消隐。不过这只是显示消隐,不能实现打印消隐

topirol 发表于 2003-10-23 11:57:00

wipeout.arx是AUTODESK的技术机密,没有公开代码,所以也不知道原理,要用到光栅图像的吧,我有个想法,就是调用wipeout.arx,赋值一个多边形给它生成消隐效果,我这样可以实现图块消隐等效果...

2002-ytf 发表于 2003-10-24 21:28:00

怎样批量实现图块消隐

topirol 发表于 2003-10-25 17:30:00

首先用程序描出图块的轮廓闭合多边形,然后用sendcommand "wipeout"指定多边形的时候用 函数(本站有)指定给它,就可以的到一个消隐效果了,批量消隐就用一个循环就可以了

neteasy 发表于 2003-10-26 10:38:00

那个函数是什么,我找不到。

topirol 发表于 2003-10-26 12:34:00

'转换图元函数

Public Function axEnt2lspEnt(entObj As AcadEntity) As String
    Dim entHandle As String
    entHandle = entObj.Handle
    axEnt2lspEnt = "(handent " & Chr(34) & entHandle & Chr(34) & ")"
End Function



'示例Break

Sub Break()
    Dim Pnt As Variant
    Dim entObj As AcadEntity
    ThisDrawing.Utility.GetEntity entObj, Pnt, "选择图元:"
    Dim Pnt2 As Variant
    Pnt2 = ThisDrawing.Utility.GetPoint(, "选择点:")

    Dim det As String
    det = GetDoubleEntTable(entObj, Pnt)

    Dim lspPnt As String
    lspPnt = axPoint2lspPoint(Pnt2)
    ThisDrawing.SendCommand "_break" & vbCr & det & vbCr & lspPnt & vbCr

End Sub
页: [1]
查看完整版本: 如何实现消隐功能