GRDRAW essentially broken in V20

I ran into this today on V20, all builds.
Using the lisp function GRDRAW is about 4x slower than in V19/V18, and it does not draw correctly.
It seems to blank out other items from GRDRAW, ash shown in the test function below.
The code below runs instantly in autocad, 2 seconds in V18/V19, and 9 seconds in V20.
I use GRDRAW extensively in general utility and also civil design tools, so its a deal killer for us for V20.
I did a support request on this so I'm sure the bricsys team will get back to me soon.
I am transitioning my civil tools to transient entities using .net, and that works well for temp items shown on screen during commands.
I still have several tools though, that leave items shown on screen after a command. The test code below is part of a tool that reports drawing health on file open.
I can't have 9 seconds delays on startup so may have to rethink some things if this is a deep issue.
Try this code (I do all caps for lisp, sorry...)

(DEFUN C:CTTESTGR ( / ANG CENLT LL SCREENWIDTH SHIFT UL VCTR VT WIDTH XINC)
(SETQ SCREENWIDTH (* (/ (CAR (GETVAR "SCREENSIZE"))(CADR (GETVAR "SCREENSIZE")))(GETVAR "VIEWSIZE"))
VT (GETVAR "VIEWTWIST")
)
(WHILE (< VT 0.0)
(SETQ VT (+ VT (* 2.0 PI)))
)
(WHILE (> VT (* 2.0 PI))
(SETQ VT (- VT (* 2.0 PI)))
)

(SETQ WIDTH (* 0.8 SCREENWIDTH)
VCTR (TRANS (GETVAR "VIEWCTR") 1 0)
CENLT (POLAR VCTR (- PI VT)(/ WIDTH 2.0)) ;20% TO LEFT
UL (POLAR CENLT (- (/ PI 2.0) VT)(/ (GETVAR "VIEWSIZE") 4.0)) ;25% TO TOP
LL (POLAR CENLT (- (/ PI -2.0) VT)(/ (GETVAR "VIEWSIZE") 4.0)) ;25% TO TOP
XINC (/ WIDTH 2000.0)
SHIFT 0.0
)
;LOOP AND DRAW 100 LINES VERTICALLY
(REPEAT 2000
(GRDRAW (TRANS (POLAR LL (- 0.0 VT) SHIFT) 0 1)
(TRANS (POLAR UL (- 0.0 VT) SHIFT) 0 1)
7
)
(SETQ SHIFT (+ XINC SHIFT))
)
)

Comments

  • Confirmed. Much faster if the TRANS functions are removed. In V20 I got a time for the repeat loop of 11157 milliseconds with TRANS and 1969 milliseconds with TRANS commented out. In V19 the times were 984 ms with and 563 ms without.

  • In the latest V20 build, this indeed has been fixed.
    Thanks to the Bricsys team for attending to it! V20 is BACK!

  • seems this is still an issue in v23.1.7, I'm not using lisp much, so it really doesn't effect me
    I was just testing a Voronoi routine for lisp, a bit shocked

    video
    https://drive.google.com/file/d/1YsnrC0MeztqkC5Rj-6ngD9h0CpRR70mP/view

    time is seconds
    AutoCAD - 3.01
    ZwCad - 3.38
    BricsCAD - 70.62