Author Topic: Wipeout group codes 160, 90 and 290: what do they represent?  (Read 2420 times)

0 Members and 1 Guest are viewing this topic.

roy_043

  • Water Moccasin
  • Posts: 1895
  • BricsCAD 18
Wipeout group codes 160, 90 and 290: what do they represent?
« on: January 31, 2013, 05:26:03 PM »
Example elist:
Code: [Select]
(
  (-1 . <Entity name: 0cf7fcc8>)
  (0 . "WIPEOUT")
  (5 . "24F")
  (330 . <Entity name: 0ce517b8>)
  (100 . "AcDbEntity")
  (67 . 0)
  (410 . "Model")
  (8 . "0")
  (160 . 308)
  (100 . "AcDbWipeout")
  (90 . 0)
  (10 0.0 0.0 0.0)
  (11 400.0 0.0 -0.0)
  (12 -0.0 400.0 0.0)
  (13 1.0 1.0 0.0)
  (70 . 7)
  (280 . 1)
  (281 . 50)
  (282 . 50)
  (283 . 0)
  (71 . 2)
  (91 . 5)
  (14 -0.5 0.5 0.0)
  (14 0.0 0.5 0.0)
  (14 0.0 -0.5 0.0)
  (14 -0.5 -0.5 0.0)
  (14 -0.5 0.5 0.0)
  (290 . 0)
)
Group code 160: Undocumented? Value equals (+ 68 (* numberOfVertices 48)).
Group code 90: According to documentation: Class version.
Group code 290: Undocumented? Boolean value.

Can anybody explain these group codes?

Lee Mac

  • Seagull
  • Posts: 12912
  • London, England
Re: Wipeout group codes 160, 90 and 290: what do they represent?
« Reply #1 on: January 31, 2013, 08:08:19 PM »
Are you using Bricscad to create the Wipeout?

My reason for asking is that I have just created a 400,400 rectangular wipeout with bottom-left corner at 0,0 in Vanilla AutoCAD 2013 to match the dimension of the wipeout encoded by your example DXF data, and there are several differences in the data:

Code: [Select]
  (
    (-1 . <Entity name: 7ef03a98>)
    (0 . "WIPEOUT")
    (330 . <Entity name: 7ef01cf8>)
    (5 . "2E3")
    (100 . "AcDbEntity")
    (67 . 0)
    (410 . "Model")
    (8 . "0")
    (100 . "AcDbWipeout")
    (90 . 0)
    (10 0.0 0.0 0.0)
    (11 400.0 0.0 0.0)
    (12 0.0 400.0 0.0)
    (13 1.0 1.0 0.0)
    (340 . <Entity name: 0>)
    (70 . 7)
    (280 . 1)
    (281 . 50)
    (282 . 50)
    (283 . 0)
    (290 . 0)
    (360 . <Entity name: 0>)
    (71 . 2)
    (91 . 5)
    (14 -0.5 0.5 0.0)
    (14 0.5 0.5 0.0)
    (14 0.5 -0.5 0.0)
    (14 -0.5 -0.5 0.0)
    (14 -0.5 0.5 0.0)
  )

Apart from the obvious differences (handle / ename pointers etc.), I note the following:
  • Handle DXF 5 appears below DXF 330
  • No DXF 160 group present
  • Your DXF data includes weird '-0.0' values
  • My data includes 'empty' entity pointers for DXF 340 & 360
  • DXF 290 appears beneath DXF 283
Unfortunately, I do not know what DXF 90 indicates, nevertheless, it is not required when creating the Wipeout entity; similarly for group 290, unknown value but not required.


roy_043

  • Water Moccasin
  • Posts: 1895
  • BricsCAD 18
Re: Wipeout group codes 160, 90 and 290: what do they represent?
« Reply #2 on: February 01, 2013, 04:45:41 AM »
Are you using Bricscad to create the Wipeout?
Of course. :-D

Handle DXF 5 appears below DXF 330
DXF 290 appears beneath DXF 283
    I think there are (have been) warnings that lisp code should never rely on
    the order of entity lists as this may vary between program versions.
    So this does not seem to be a big issue.

No DXF 160 group present
    Strange.

Your DXF data includes weird '-0.0' values
    I was surprised by this as well.
    Note:
    (cadr (assoc 12 (entget (car (entsel))))) => -0.0
    (zerop (cadr (assoc 12 (entget (car (entsel)))))) => T

My data includes 'empty' entity pointers for DXF 340 & 360
    Also strange!

I would prefer to use 'Visual' Lisp to manipulate wipeouts. But since the coordinates of the clipping boundary are not exposed in VL this is not always an option.

FWIW: In BricsCAD only group codes 0, 10, 11, 12, 70, 280 and 14 (multiple) are required to entmake a polygonal wipeout.

Thank you Lee for responding.

Lee Mac

  • Seagull
  • Posts: 12912
  • London, England
Re: Wipeout group codes 160, 90 and 290: what do they represent?
« Reply #3 on: February 01, 2013, 07:07:55 AM »
Handle DXF 5 appears below DXF 330
DXF 290 appears beneath DXF 283
    I think there are (have been) warnings that lisp code should never rely on
    the order of entity lists as this may vary between program versions.

I agree completely - I raised these points just for completeness of observation.  :-)

FWIW: In BricsCAD only group codes 0, 10, 11, 12, 70, 280 and 14 (multiple) are required to entmake a polygonal wipeout.

AutoCAD requires the entity type (DXF 0), both subclass markers (DXF 100), insertion point (DXF 10), pixel vectors (DXF 11 & 12), clipping state (DXF 280) [not necessarily required to create the wipeout, but you will get odd results if you exclude it], clipping boundary type (DXF 71) [again, not necessarily required, but wipeout will be rendered invisible if excluded], and boundary vertices (DXF 14). Note that the display properties bit-code (DXF 70) is not required in AutoCAD. Here is an example.

Thank you Lee for responding.

No worries Roy, sorry I couldn't really answer your main question  :-(

roy_043

  • Water Moccasin
  • Posts: 1895
  • BricsCAD 18
Re: Wipeout group codes 160, 90 and 290: what do they represent?
« Reply #4 on: February 01, 2013, 07:45:26 AM »
You can leave out group code 70 in BricsCAD as well. But for this group code a default value of 0 is used. So the result will then not show the clipping boundary.

Lee Mac

  • Seagull
  • Posts: 12912
  • London, England
Re: Wipeout group codes 160, 90 and 290: what do they represent?
« Reply #5 on: February 01, 2013, 07:52:26 AM »
You can leave out group code 70 in BricsCAD as well. But for this group code a default value of 0 is used. So the result will then not show the clipping boundary.

Omitting DXF 70 in AutoCAD results in a default value of 7 for Wipeouts...