Jump to content

Screen vs Layer Plane within 'hybrid' plugins?


Recommended Posts

Our workflow is entirely Layer plane based so I have very limited experience with screen plane workflows. An issue I'm getting stuck on right now seems to involve the screen plane. 

 

I have a plugin that has 2D text and Polylines as well as 3d geometry using vs.BeginXtrd, vs.Symbol, and vs.SymbolToGroup. This works great, Text and 2D polylines show only in Top/Plan and 3D geometry only shows in 3D. 

 

I'm now going through and removing the need for the symbols by trying to model them instead. Once I add the following lines all my 2D objects become screen planar and show in 3D views; as well as all my 3D objects show in top/plan. 

 

vs.Oval(-12,12,12,-12)
vs.CreateTaperedExtrude(vs.LNewObj(), 15, 9)
vs.SetPlanarRef(vs.LNewObj(), -1)

 

If I try the same lines with vs.CreatTaperedExtrd2, the 2D objects don't become Screen Planar, but the newly created tapered extrude is visible in 2D top/plan without vs.SetPlanarRef.

 

Any guidance on what's going on and how to work around it without needing to effectively use/test vs.SetPlanarRef on every 3D object?

 

Link to comment

A number of potential issues, and some confusion about your description. 
 

Screen plane objects don’t appear in 3D views. The only place where you will currently find screen plane objects is in hybrid symbols and PIOs, and because you only see the 2D component in top/plan, you aren’t really aware of the screen plane. If you are seeing a planar object in a 3D view, it’s in the layer plane or another 3D plane. 
 

CreateTaperedExtrude appears to be essentially deprecated. Use CreatTaperedExtrd2. 
 

Just going by memory, but I believe that when you create an extrude, the profile becomes part of the extrude without creating a duplicate. I believe what you are seeing is the object not having a 2D component, so you are only seeing the 3D in both views. 
 

SetPlanarRef only works on 2D objects ( the 3D object exists in non-planar space). Because the extrude call returns a handle, it’s possible that LNewObj() still refers to the oval. 
 

In the PIO code, all planar objects get created in the screen plane, so an extrude will give the object depth from the current view. Therefore, you DO need to set the planar ref (usually the layer plane) for all planar objects BEFORE extruding. 
 

HTH

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...