.NET

Reply
Contributor
nijhuis
Posts: 16
Registered: ‎09-26-2010
Message 1 of 5 (277 Views)
Accepted Solution

transparancy viewportoverride

277 Views, 4 Replies
02-10-2012 04:54 AM

Hi,

 

Does anyone how to make a layer or an entity transparant within a viewport?

 

I figured out the following code found in:

http://through-the-interface.typepad.com/through_the_interface/2010/06/creating-transparent-hatches-...

 

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.CurrentViewportObjectId, OpenMode.ForWrite)

 

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

 

*Expert Elite*
Alfred.NESWADBA
Posts: 8,890
Registered: ‎06-29-2007
Message 2 of 5 (259 Views)

Re: transparancy viewportoverride

02-12-2012 12:20 PM in reply to: nijhuis

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 :smileywink:

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.MdiActiveDocument
      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.LayerTableId, 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.CurrentViewportObjectId)
               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
-------------------------------------------------------------------------
Contributor
nijhuis
Posts: 16
Registered: ‎09-26-2010
Message 3 of 5 (253 Views)

Re: transparancy viewportoverride

02-13-2012 12:08 AM in reply to: nijhuis

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)

*Expert Elite*
Alfred.NESWADBA
Posts: 8,890
Registered: ‎06-29-2007
Message 4 of 5 (247 Views)

Re: transparancy viewportoverride

02-13-2012 12:33 AM in reply to: nijhuis

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
-------------------------------------------------------------------------
Contributor
nijhuis
Posts: 16
Registered: ‎09-26-2010
Message 5 of 5 (246 Views)

Re: transparancy viewportoverride

02-13-2012 12:38 AM in reply to: nijhuis

I use autocad 2011 64bit with visual studio 2008.

 

i tried Cbyte(127) and that did the trick!

 

thanks!

You are not logged in.

Log into access your profile, ask and answer questions, share ideas and more. Haven't signed up yet? Register

Announcements
Are you familiar with the Autodesk Expert Elites? The Expert Elite program is made up of customers that help other customers by sharing knowledge and exemplifying an engaging style of collaboration. To learn more, please visit our Expert Elite website.

Need installation help?

Start with some of our most frequented solutions to get help installing your software.

Ask the Community