.NET
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic to the Top
- Bookmark
- Subscribe
- Printer Friendly Page
transparan cy viewportov erride
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Hi,
Does anyone how to make a layer or an entity transparant within a viewport?
I figured out the following code found in:
It gives an error at New Autodesk.AutoCAD.Colors.Transparency(127)
Using transactie AsTransaction = DWG.TransactionManager.StartTransaction
Dim Layertable AsLayerTable = DWG.LayerTableId.GetObject(OpenMode.ForRead)
Dim VP AsViewport = transactie.GetObject(Doc.Editor.CurrentViewportObj
Dim LVPO AsLayerViewportProperties
ForEach LayerID In Layertable
Dim LaagTabelRec AsLayerTableRecord = transactie.GetObject(LayerID, OpenMode.ForRead)
LVPO = LaagTabelRec.GetViewportOverrides(VP.Id)
LVPO.Transparency = New Autodesk.AutoCAD.Colors.Transparency(127)
Next
transactie.Commit()
EndUsing
Solved! Go to Solution.
Re: transparan cy viewportov erride
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Hi,
I used the following code and for me it does not interrupt at the line for setting the layer-override-transparency ..... as long as I have a layout active and I'm IN a viewport ![]()
Of course it crashes if I have the tab "Model Space" active (so I don't have a layout active)
<Runtime.CommandMethod("ADESK_VPLayerTransparency" )> _
Public Shared Sub ADESK_VPLayerTransparency()
Dim tDwg As ApplicationServices.Document = ApplicationServices.Application.DocumentManager.Md iActiveDocument
Dim tDwgLock As ApplicationServices.DocumentLock = Nothing
Try
tDwgLock = tDwg.LockDocument
Using transactie As DatabaseServices.Transaction = tDwg.TransactionManager.StartTransaction
Dim Layertable As DatabaseServices.LayerTable = CType(transactie.GetObject(tDwg.Database.LayerTabl eId, DatabaseServices.OpenMode.ForRead), DatabaseServices.LayerTable)
Dim LVPO As DatabaseServices.LayerViewportProperties
For Each LayerID As DatabaseServices.ObjectId In Layertable
Dim LaagTabelRec As DatabaseServices.LayerTableRecord = CType(transactie.GetObject(LayerID, DatabaseServices.OpenMode.ForWrite), DatabaseServices.LayerTableRecord)
LVPO = LaagTabelRec.GetViewportOverrides(tDwg.Editor.Curr entViewportObjectId)
LVPO.Transparency = New Autodesk.AutoCAD.Colors.Transparency(127)
Next
transactie.Commit()
End Using
Catch ex As Exception
Call MsgBox("Unknown error in 'ADESK_VPLayerTransparency'" & vbNewLine & ex.Message)
Finally
If tDwgLock IsNot Nothing Then tDwgLock.Dispose() : tDwgLock = Nothing
End Try
End Sub
HTH, - alfred -
Alfred NESWADBA
Ingenieur Studio HOLLAUS ... www.hollaus.at
-------------------------------------------------------------------------
Re: transparan cy viewportov erride
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Thanks for your reply.
When i use new ...colors.transparency(127) visual studio gives me an error. (see attachement 1)
i tried to replace 127 with an byte-value and visual studio gives me another error. (see attachement 2)
Re: transparan cy viewportov erride
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Hi,
what version of AutoCAD do you use? I tried it with 2012(64bit) and Option Strict ON, and I don't get a message, neither during code-writing nor during runtime.
Could you try:
LVPO.Transparency = New Autodesk.AutoCAD.Colors.Transparency(CByte(127))
- alfred -
Alfred NESWADBA
Ingenieur Studio HOLLAUS ... www.hollaus.at
-------------------------------------------------------------------------
Re: transparan cy viewportov erride
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
I use autocad 2011 64bit with visual studio 2008.
i tried Cbyte(127) and that did the trick!
thanks!

