Remove ltscale overrides on lines

Remove ltscale overrides on lines

benjolin4X5KG
Explorer Explorer
706 Views
9 Replies
Message 1 of 10

Remove ltscale overrides on lines

benjolin4X5KG
Explorer
Explorer

I am receiving drawings from customers. These are exports of the layout space from various 3D CAD softwares. I find that the hidden lines, center lines, and phantom lines have the ltscale overwritten to various values.

 

I am really struggling to really understand all these ltscale, psltscale, msltscale, celtscale, and ltscale overrides in the properties windows and how they all work together. 

 

Is there a way to remove this override from these lines?

0 Likes
707 Views
9 Replies
Replies (9)
Message 2 of 10

Patchy
Mentor
Mentor

Try the command: SETBYLAYER

0 Likes
Message 3 of 10

bwb
Participant
Participant

ltscale sets the lintype scale globally (unless a particular polyline has an override), ideally you want all lines to have a ltscale of 1 (use the setbylayer command to set everything to 1) so all your text based linetypes will display uniformly, graphic linetypes might need an override to look "right". 

 

psltscale controls the linteype of objects in paperspace

 

msltscale is a variable that is either off "0" or on "1". If you set this to 1 and set your model space annotation scale to your desired scale (whatever scale you're going to plot in) your linetypes will display in model space.

 

celtscale applies a linetype scale override for FUTURE objects. (I would recommend leaving this at 1 at all times unless you want to draw a bunch of lines with an override, I prefer to draw and then select similar and change after the fact so I don't need to constantly adjust celtscale)

 

ltscale overrides apply to one line only.

 

Using a lot of overrides is bad practice. In almost all cases you should have everything set to byLayer/ ltscale=1 and control color and linetypes by layers. It will make everything much much easier to modify in the future.

 

I would recommend using the setbylayer command (it has an options subcommand so you can specify what you want to reset) and setting everything to ltscale 1. Set your ltscale global variable to 1. Now everything will be controlled by the scale of your viewport. If you're working in modelspace, set msltscale to 1 and your model space annotation scale to something that makes sense, now you can see the different linetypes in modelspace. (don't forget to regen)

 

Hope that helps!

 

 

 

Message 4 of 10

Kent1Cooper
Consultant
Consultant

@benjolin4X5KG wrote:

I am receiving drawings .... I find that the hidden lines, center lines, and phantom lines have the ltscale overwritten to various values.

....

Is there a way to remove this override from these lines?


CHPROP command, ALL selection [and Enter to complete selection], ltScale option, 1 value, Enter to finish.

Kent Cooper, AIA
0 Likes
Message 5 of 10

benjolin4X5KG
Explorer
Explorer

This worked to change the line type scale. However, it does not reset them to the default value because if I change ltscale these items will not change along. So the overrides were not removed.

0 Likes
Message 6 of 10

Kent1Cooper
Consultant
Consultant

Works for me.  Can you post a [small] drawing file in which this occurs?

Kent Cooper, AIA
0 Likes
Message 7 of 10

benjolin4X5KG
Explorer
Explorer

Here are the steps I tried to reproduce effect.

 

Create new file using acad.dwt template.

Set ltscale to 0.5 (what i usually use)

Copied in some customer geometry (ltscales are overridden to 1.90 & 1.10 & .42)

 

Save drawing as Geometry.dwg. Make a copy AfterChanges.dwg. Close autocad and open AfterChanges.dwg.

 

command chprop "all" scale 1.0 "" ""

This has set ltscale overrides on these items to 1.0 (note ltscale is 0.5).

 

Try changing ltscale to 1, regenall, and then back to 0.5.

chprop did not remove the override as these items still have a 1.0 ltscale.

 

I am looking for ways to remove overrides on ltscale. Not change the override value.

 

Let me know if I am doing something wrong.

Thank you.

 

 

 

 

 

 

 

0 Likes
Message 8 of 10

bwb
Participant
Participant

It's working fine. The linetype scale setting for individual lines should be at 1. That's not an override, that's just default. So now your linetype scales are controlled globally by the ltscale variable.

 

The ltscale variable won't change the linetype scale setting for individual objects.

0 Likes
Message 9 of 10

pbejse
Mentor
Mentor
(defun c:llt  ()
      (vl-load-com)
      (setq ddwg       (vla-get-activedocument (vlax-get-acad-object))
            ltyps      (vla-get-linetypes ddwg))

      (setq lts_var '("MSLTSCALE" "PSLTSCALE" "CELTSCALE" "PLINEGEN"))
      (foreach
             var_lt  lts_var            
            (setvar var_lt 1))
      (cond (
             (setq evthng
                        (ssget "x"
                               '((0 . "LINE,LWPOLYLINE,CIRCLE,ARC"))))
             (repeat (setq i (sslength evthng))
                   (vla-put-linetype
                         (vlax-ename->vla-object
                               (ssname evthng (setq i (1- i))))
                         "Bylayer")
                   (vla-put-linetypescale
                         (vlax-ename->vla-object (ssname evthng i))
                         1)
                   )
             (command "_.-linetype" "_load" "*" "acad.lin")
             (while (eq 1 (logand 1 (getvar 'cmdactive))) (command ""))
             )
            )
      )

0 Likes
Message 10 of 10

Moshe-A
Mentor
Mentor

@benjolin4X5KG hi,

 

You should take this slowly cause the story of ltscale is complicated.

when you create a new drawing base on template like acad.dwt the ltscale=1.0 and celtscale = 1.0 (object ltscale override)

for non continuous linetypes lines, AutoCAD multiples ltscale x celtscale.

 

example

say a line has object ltscale of 2.0

LTSCALE (global) = 3.0

the actual line type scale is 6.0

 

if your ltscale is 0.5 and you want all other non continuous objects to have 0.5 then you have to reset all ltscale objects to 1.0

(that's why other experts recommended you to use setbylayer)

 

if you use LIST command to check with object properties, if the object does not have celtscale, you won't see any record of it, this mean the celtscale of that object is 1.0 and it's overall line type scale comes from LTSCALE. it is the same with other properties like layer, color, ltype if they are BYLAYER, no record for them is seen from list window. only when an override exist.

 

Moshe

 

 

 

 

 

 

0 Likes