VB6 example for "Planar Clip operation"

Everything DG Kernel: Technical discussions and issues
Post Reply
TheLeePiper
Posts: 8
Joined: Wed Oct 16, 2024 3:00 pm

VB6 example for "Planar Clip operation"

Post by TheLeePiper »

We are trying to implement an intersection using a horizontal plane on a model volume, as described in the ActiveX docs for "Boolean Operations on Entities". While we can get it to work with an edge of a box object, we cannot figure out how to do this as described using the "Planar Clip operation" example. Could you post a few lines of sample VB6 code to explain how this would be done? Thanks!
Prashant Kande
Posts: 61
Joined: Tue Jun 18, 2024 6:12 am

Re: VB6 example for "Planar Clip operation"

Post by Prashant Kande »

Hello.
Sorry, we have found a bug in this functionality. We are coding a fix. There will be an update in few days. We will post a notification on this thread.
Thanks for reporting.
Prashant Kande
Posts: 61
Joined: Tue Jun 18, 2024 6:12 am

Re: VB6 example for "Planar Clip operation"

Post by Prashant Kande »

We have sorted this out in today's 5544 update.

The access to the operation had to change. The old way was a bad idea a while ago. It worked with old compilers, but not any longer. We have dropped support for clipping planes in v6 I think. The planar ops sample wend down with it. So, unfortunately, the test case was lost.

Here is the new way: Planar Ops (ActiveX), Planar Ops (DGKC).

At the moment we do not have VB code for it. And my VB6 is too rusty. We do not really support it, despite it still works. Here is C# version:

Code: Select all

IDictionary_DG context = m_gen.Create<IDictionary_DG>();
PlaneDg plane = CreatePlane();

context.SetDouble("PlaneOriginX", plane.Origin[0]);
context.SetDouble("PlaneOriginY", plane.Origin[1]);
context.SetDouble("PlaneOriginZ", plane.Origin[2]);

context.SetDouble("PlaneNormalX", plane.Normal[0]);
context.SetDouble("PlaneNormalY", plane.Normal[1]);
context.SetDouble("PlaneNormalZ", plane.Normal[2]);

context.SetString("Operation", "Clip");	// Or "Subtract"

IObject_DG iObj = m_entity.As<IObject_DG>();

iObj.Execute("PlanarOperation", context);
This is from PlanarOpsTst.Execute(string operation)

You can see it working if you run the top test in the installed Samples\NET\C#\Tests\InterfaceTests\
Prashant Kande
Posts: 61
Joined: Tue Jun 18, 2024 6:12 am

Re: VB6 example for "Planar Clip operation"

Post by Prashant Kande »

A C++ version: Download
It is a restored PlanarOps sample. It is kind of dirty right now. See the PlanarOpsDlg::OnCut()
I hope we have time to add it to an update.
TheLeePiper
Posts: 8
Joined: Wed Oct 16, 2024 3:00 pm

Re: VB6 example for "Planar Clip operation"

Post by TheLeePiper »

Thanks so much! I'll download and test.
Post Reply