XREF Layer Linetypes stuck on Continuous

Good morning.  A user brought this to my attention yesterday...and I can't imagine we've gone this far without noticing the issue before, so I'm stumped. 

If I change the linetype of xref layers to anything, save/close the drawing, then re-open the drawing, all of those linetypes are set to CONTINUOUS.  Every other layer change you make sticks, such as color, but linetypes are not working.

This is happening in v16 and v17.  VISRETAIN is on/1.  PSLTSCALE is 1.  LTSCALE is 1.  It doesn't matter which drawing(s), or which drawing(s) you're xref'ing.  It just won't stick.  I've also reapplied the .lin file in the drawing. 

Attached is a video demonstrating. 

If no one has any ideas I'll submit a support request.

Thanks

Comments

  •  I don't understand what the video is showing.  Is it perhaps not showing everything you thought it was showing?

    But, here are some guesses.  It is possible that you have accidentally changed the default linetype that all entities are set at.  Another possibility is that you are using objects that do not display linetypes, and always show as continuous, such as surfaces.

    Can you list one of the objects, or show its properties, so we can see more about it.

    -Joe
  •  I don't understand what the video is showing.  Is it perhaps not showing everything you thought it was showing?

    But, here are some guesses.  It is possible that you have accidentally changed the default linetype that all entities are set at.  Another possibility is that you are using objects that do not display linetypes, and always show as continuous, such as surfaces.

    Can you list one of the objects, or show its properties, so we can see more about it.

    -Joe


    Yeah I uploaded the wrong video the first time.  Here's another one, from two brand new/blank/template drawings.  You can watch the linetype actually change in this one as well.  As quick as I can do it and keep the files under 5MB.

    2017-01-06_8-13-01.mp4

  • We had similiar issues before christmas.
    For us it was because of a lisp routine, that counts objects on layers.

    [code];; Layer Count  -  Lee Mac
    ;; Prints a report of the number of objects on each layer in a drawing
    (vl-load-com)

    (defun c:layercount ( / lst )

    ;clears the log file
    (defun clrlogfile ( / f)
      (setq f (open (getvar "LogFileName") "w"))
      (write-line "" f)
      (close f)
      )

    (clrlogfile);clears the logfile

    (setvar "logfilemode" 1);begin logging

        (vlax-for blk (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))
            (vlax-for obj blk
                (setq lst (layercount:assoc++ (vla-get-layer obj) lst))
                (if
                    (and
                        (= "AcDbBlockReference" (vla-get-objectname obj))
                        (= :vlax-true (vla-get-hasattributes obj))
                    )
                    (foreach att (vlax-invoke obj 'getattributes)
                        (setq lst (layercount:assoc++ (vla-get-layer att) lst))
                    )
                )
            )
        )
    (princ (layercount:padbetween "\n\n" "" "-" 62))  
        (princ (layercount:padbetween "\nLayer" "Objects" " " 61))
        (princ (layercount:padbetween "\n" "" "-" 61))
        (foreach itm (vl-sort lst '(lambda ( a b ) (> (cdr a) (cdr b))))
            (princ (layercount:padbetween (strcat "\n" (car itm)) (itoa (cdr itm)) "." 61))
        )
        (princ (layercount:padbetween "\n" "" "-" 61))
        (princ (layercount:padbetween "\nTotal" (itoa (apply '+ (mapcar 'cdr lst))) "." 61))
        (princ (layercount:padbetween "\n" "" "-" 61))
        (textpage)
        (princ)
    (setvar "logfilemode" 0);end logging

    (startapp "Notepad" (getvar "LogFileName"));open it up in notepad
    )

    (defun layercount:assoc++ ( key lst / itm )
        (if (setq itm (assoc key lst))
            (subst (cons key (1+ (cdr itm))) itm lst)
            (cons  (cons key 1) lst)
        )
    )
    (defun layercount:padbetween ( s1 s2 ch ln )
        (
            (lambda ( a b c )
                (repeat (- ln (length b) (length c)) (setq c (cons a c)))
                (vl-list->string (append b c))
            )
            (ascii ch)
            (vl-string->list s1)
            (vl-string->list s2)
        )
    )       

    (vl-load-com) (princ)
    [/code]
    Interestingly the problem was only on one machine. We ended up deactivating the lisp in autoload.
  •  There is the VISRETAIN setting which determines if you can change the settings for a layer in an x-ref, and have BricsCAD remember it or not.  Set it to 1 to permit the current drawing to remember any changes you make to an Xref.  The Xref drawing files itself is not changed when you do that.

    -Joe
  • We had similiar issues before christmas.
    For us it was because of a lisp routine, that counts objects on layers.

    ;; Layer Count  -  Lee Mac;; Prints a report of the number of objects on each layer in a drawing(vl-load-com)(defun c:layercount ( / lst );clears the log file(defun clrlogfile ( / f)  (setq f (open (getvar "LogFileName") "w"))  (write-line "" f)  (close f)  )(clrlogfile);clears the logfile(setvar "logfilemode" 1);begin logging    (vlax-for blk (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))        (vlax-for obj blk            (setq lst (layercount:assoc++ (vla-get-layer obj) lst))            (if                (and                    (= "AcDbBlockReference" (vla-get-objectname obj))                    (= :vlax-true (vla-get-hasattributes obj))                )                (foreach att (vlax-invoke obj 'getattributes)                    (setq lst (layercount:assoc++ (vla-get-layer att) lst))                )            )        )    )(princ (layercount:padbetween "\n\n" "" "-" 62))      (princ (layercount:padbetween "\nLayer" "Objects" " " 61))    (princ (layercount:padbetween "\n" "" "-" 61))    (foreach itm (vl-sort lst '(lambda ( a b ) (> (cdr a) (cdr b))))        (princ (layercount:padbetween (strcat "\n" (car itm)) (itoa (cdr itm)) "." 61))    )    (princ (layercount:padbetween "\n" "" "-" 61))    (princ (layercount:padbetween "\nTotal" (itoa (apply '+ (mapcar 'cdr lst))) "." 61))    (princ (layercount:padbetween "\n" "" "-" 61))    (textpage)    (princ)(setvar "logfilemode" 0);end logging(startapp "Notepad" (getvar "LogFileName"));open it up in notepad)(defun layercount:assoc++ ( key lst / itm )    (if (setq itm (assoc key lst))        (subst (cons key (1+ (cdr itm))) itm lst)        (cons  (cons key 1) lst)    ))(defun layercount:padbetween ( s1 s2 ch ln )    (        (lambda ( a b c )            (repeat (- ln (length b) (length c)) (setq c (cons a c)))            (vl-list->string (append b c))        )        (ascii ch)        (vl-string->list s1)        (vl-string->list s2)    ))       (vl-load-com) (princ)  

    Interestingly the problem was only on one machine. We ended up deactivating the lisp in autoload.

    Thanks for the reply Benjamin, I assumed it was something we changed, but it's been a while since we changed anything.  I would have expected someone to point this out at least a month ago.  Turning off startup/on doc load routines one at a time without much success currently.  I'll keep digging.

  • This is the function that's breaking it:

    (defun HASD:R2D (nAngle / )
      (/ (* nAngle 180.0) pi))

    The routine it's in hasn't been modified since March...sigh.

    Just posting to consider this "closed".

This discussion has been closed.