Visual LISP, AutoLISP and General Customization
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Need to assign lineweights to layers

28 REPLIES 28
Reply
Message 1 of 29
Anonymous
1442 Views, 28 Replies

Need to assign lineweights to layers

I need to change the layer lineweights in many files to match that found in our CAD standards. Typically, we assign lineweight in the CTB file. We now have a client who's standards and CTB file require lineweight to be in the layer setup and not in the CBT. Anyone have a method or lisp to make this adjustment?

So, here's how someone in this forum can help me. I need a program file that will allow me to change only the layer's lineweight based on the assigned color to match my company's CAD standards.

Example:
Layercolor 1 to lineweight 0.35
Layercolor 2 to lineweight 0.25
Layercolor 3 to lineweight 0.50
etc.

Depending on how the program is created, I can add additional text lines for all 255 layercolors. I just need someone to start it for me.

So, can anyone offer out a few keystrokes?
28 REPLIES 28
Message 2 of 29
Anonymous
in reply to: Anonymous

Get the Layer Collection of the drawing, then use (vlax-for... to seach all the layers within the collection, then grab the color of the layer, and use a (cond... statement to set the new lineweight per your standard.

(vlax-for Lay LayCol
(setq LayColor (vla-get-Color Lay))
(cond
((= LayColor 1)
(vla-set-Lineweight Lay acLnWt035)
)
.. and so on

)
)

For all the lineweight settings, see the help files under line weight property ActiveX.

Tim
Message 3 of 29
Anonymous
in reply to: Anonymous

Your reply is a over my head. I'm not a programmer. But, I need the program to include have all layer colors. That way, it will change any layer color it finds as it processes through the drawing file. I ran across one program on the internet that came close, but it didn't work. It seemed to have the structure I needed, but wouldn't load properly.

Example of some of the text:
((= LAYERCOLOR 1)(SET_LINEWEIGHT_PLOTSTYLE LAYERNAME 0.35 "100%"))
((= LAYERCOLOR 2)(SET_LINEWEIGHT_PLOTSTYLE LAYERNAME 0.6 "100%"))
((= LAYERCOLOR 3)(SET_LINEWEIGHT_PLOTSTYLE LAYERNAME 0.5 "100%"))
Message 4 of 29
Anonymous
in reply to: Anonymous

Modify this one with all the colors you want. It didn't seem to work when I put in the number, so I had to use the Acad codes. Here is a list of the codes, so that you can add them in.

Lineweight

acLineWeight enum; read-write

acLnWtByLayer

acLnWtByBlock

acLnWtByLwDefault

acLnWt000

acLnWt005

acLnWt009

acLnWt013

acLnWt015

acLnWt018

acLnWt020

acLnWt025

acLnWt030

acLnWt035

acLnWt040

acLnWt050

acLnWt053

acLnWt060

acLnWt070

acLnWt080

acLnWt090

acLnWt100

acLnWt106

acLnWt120

acLnWt140

acLnWt158

acLnWt200

acLnWt211


Hope this helps.
Tim
ps. I labeled the three lines you need to copy. Copy it right after the last one labeled copy. Change the numbers as you go along, and then change the lineweight call out.

(defun c:ChangeLayerLineweight (/ ActDoc LayCol LayColor)

(vl-load-com)
(setq ActDoc (vla-get-ActiveDocument (vlax-get-Acad-Object)))
(setq LayCol (vla-get-Layers ActDoc))
(vlax-for Lay LayCol
(setq LayColor (vla-get-Color Lay))
(cond
((= LayColor 1) ;<- copy
(vla-put-Lineweight Lay acLnWt035) ;<- copy
) ;<- copy
)
)
(princ)
)
Message 5 of 29
Anonymous
in reply to: Anonymous

If you only use a few linewights then it might be easier. Let me know. I will help if I can.

Tim
Message 6 of 29
Anonymous
in reply to: Anonymous

Tim,
FWIW you can use the Integer for the lineweight....
acLnWtByLwDefault = -3
acLnWt000 = 0
acLnWt005 = 5
acLnWt009 = 9
acLnWt013 = 13

etc....

Jeff



wrote in message news:4949450@discussion.autodesk.com...
Modify this one with all the colors you want. It didn't seem to work when I
put in the number, so I had to use the Acad codes. Here is a list of the
codes, so that you can add them in.

Lineweight

acLineWeight enum; read-write

acLnWtByLayer

acLnWtByBlock

acLnWtByLwDefault

acLnWt000

acLnWt005

acLnWt009

acLnWt013

acLnWt015

acLnWt018

acLnWt020

acLnWt025

acLnWt030

acLnWt035

acLnWt040

acLnWt050

acLnWt053

acLnWt060

acLnWt070

acLnWt080

acLnWt090

acLnWt100

acLnWt106

acLnWt120

acLnWt140

acLnWt158

acLnWt200

acLnWt211


Hope this helps.
Tim
ps. I labeled the three lines you need to copy. Copy it right after the
last one labeled copy. Change the numbers as you go along, and then change
the lineweight call out.

(defun c:ChangeLayerLineweight (/ ActDoc LayCol LayColor)

(vl-load-com)
(setq ActDoc (vla-get-ActiveDocument (vlax-get-Acad-Object)))
(setq LayCol (vla-get-Layers ActDoc))
(vlax-for Lay LayCol
(setq LayColor (vla-get-Color Lay))
(cond
((= LayColor 1) ;<- copy
(vla-put-Lineweight Lay acLnWt035) ;<- copy
) ;<- copy
)
)
(princ)
)
Message 7 of 29
Anonymous
in reply to: Anonymous

Cool. Thanks Jeff. I was trying to use the value, so 0.35 wouldn't work.

Learn something new everyday.
Tim
Message 8 of 29
Anonymous
in reply to: Anonymous

Tim, I need clarification. Where do you want me to change the color? Your sample shows a list of lineweights, not colors.

Oops, I see the location where you want the colors. Message was edited by: Brockster
Message 9 of 29
Anonymous
in reply to: Anonymous

Here is the original code.

(defun c:ChangeLayerLineweight (/ ActDoc LayCol LayColor)

(vl-load-com)
(setq ActDoc (vla-get-ActiveDocument (vlax-get-Acad-Object)))
(setq LayCol (vla-get-Layers ActDoc))
(vlax-for Lay LayCol
(setq LayColor (vla-get-Color Lay))
(cond
((= LayColor 1) ;<- copy
(vla-put-Lineweight Lay acLnWt035) ;<- copy
) ;<- copy
)
)
(princ)
)

Add all the other colors like

(defun c:ChangeLayerLineweight (/ ActDoc LayCol LayColor)

(vl-load-com)
(setq ActDoc (vla-get-ActiveDocument (vlax-get-Acad-Object)))
(setq LayCol (vla-get-Layers ActDoc))
(vlax-for Lay LayCol
(setq LayColor (vla-get-Color Lay))
(cond
((= LayColor 1) ;<- copy
(vla-put-Lineweight Lay 35) ;<- copy
) ;<- copy
((= LayColor 2) ;<- copy
(vla-put-Lineweight Lay 25) ;<- copy
) ;<- copy
((= LayColor 3) ;<- copy
(vla-put-Lineweight Lay 50) ;<- copy
) ;<- copy
)
)
(princ)
)


Hope that makes sense.
Tim
Message 10 of 29
Anonymous
in reply to: Anonymous

Here's a file of the lineweights.
Message 11 of 29
Anonymous
in reply to: Anonymous

You did all the hard work. Now you would just need to add them to the routine, in the (cond... statement.

Tim

(defun c:ChangeLayerLineweight (/ ActDoc LayCol LayColor)

(vl-load-com)
(setq ActDoc (vla-get-ActiveDocument (vlax-get-Acad-Object)))
(setq LayCol (vla-get-Layers ActDoc))
(vlax-for Lay LayCol
(setq LayColor (vla-get-Color Lay))
(cond
((= LayColor 1)
(vla-put-Lineweight Lay acLnWt025)
)
((= LayColor 2)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 3)
(vla-put-Lineweight Lay acLnWt050)
)
((= LayColor 4)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 5)
(vla-put-Line5eight Lay acLnWt1000)
)
((= LayColor 6)
(vla-put-Lineweight Lay acLnWt010)
)
((= LayColor 7)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 😎
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 9)
(vla-put-Lineweight Lay acLnWt024)
)
((= LayColor 10)
(vla-put-Lineweight Lay acLnWt018)
)
((= LayColor 11)
(vla-put-Lineweight Lay acLnWt025)
)
((= LayColor 12)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 13)
(vla-put-Lineweight Lay acLnWt050)
)
((= LayColor 14)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 15)
(vla-put-Line5eight Lay acLnWt1000)
)
((= LayColor 16)
(vla-put-Lineweight Lay acLnWt010)
)
((= LayColor 17)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 18)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 19)
(vla-put-Lineweight Lay acLnWt024)
)
((= LayColor 20)
(vla-put-Lineweight Lay acLnWt018)
)
((= LayColor 21)
(vla-put-Lineweight Lay acLnWt025)
)
((= LayColor 22)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 23)
(vla-put-Lineweight Lay acLnWt050)
)
((= LayColor 24)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 25)
(vla-put-Line5eight Lay acLnWt1000)
)
((= LayColor 26)
(vla-put-Lineweight Lay acLnWt010)
)
((= LayColor 27)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 28)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 29)
(vla-put-Lineweight Lay acLnWt024)
)
((= LayColor 30)
(vla-put-Lineweight Lay acLnWt018)
)
((= LayColor 31)
(vla-put-Lineweight Lay acLnWt025)
)
((= LayColor 32)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 33)
(vla-put-Lineweight Lay acLnWt050)
)
((= LayColor 34)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 35)
(vla-put-Line5eight Lay acLnWt1000)
)
((= LayColor 36)
(vla-put-Lineweight Lay acLnWt010)
)
((= LayColor 37)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 38)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 39)
(vla-put-Lineweight Lay acLnWt024)
)
((= LayColor 40)
(vla-put-Lineweight Lay acLnWt018)
)
((= LayColor 41)
(vla-put-Lineweight Lay acLnWt025)
)
((= LayColor 42)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 43)
(vla-put-Lineweight Lay acLnWt050)
)
((= LayColor 44)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 45)
(vla-put-Line5eight Lay acLnWt1000)
)
((= LayColor 46)
(vla-put-Lineweight Lay acLnWt010)
)
((= LayColor 47)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 48)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 49)
(vla-put-Lineweight Lay acLnWt024)
)
((= LayColor 50)
(vla-put-Lineweight Lay acLnWt018)
)
((= LayColor 51)
(vla-put-Lineweight Lay acLnWt025)
)
((= LayColor 52)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 53)
(vla-put-Lineweight Lay acLnWt050)
)
((= LayColor 54)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 55)
(vla-put-Line5eight Lay acLnWt1000)
)
((= LayColor 56)
(vla-put-Lineweight Lay acLnWt010)
)
((= LayColor 57)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 58)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 59)
(vla-put-Lineweight Lay acLnWt024)
)
((= LayColor 60)
(vla-put-Lineweight Lay acLnWt018)
)
((= LayColor 61)
(vla-put-Lineweight Lay acLnWt025)
)
((= LayColor 62)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 63)
(vla-put-Lineweight Lay acLnWt050)
)
((= LayColor 64)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 65)
(vla-put-Line5eight Lay acLnWt1000)
)
((= LayColor 66)
(vla-put-Lineweight Lay acLnWt010)
)
((= LayColor 67)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 68)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 69)
(vla-put-Lineweight Lay acLnWt024)
)
((= LayColor 70)
(vla-put-Lineweight Lay acLnWt018)
)
((= LayColor 71)
(vla-put-Lineweight Lay acLnWt025)
)
((= LayColor 72)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 73)
(vla-put-Lineweight Lay acLnWt050)
)
((= LayColor 74)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 75)
(vla-put-Line5eight Lay acLnWt1000)
)
((= LayColor 76)
(vla-put-Lineweight Lay acLnWt010)
)
((= LayColor 77)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 78)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 79)
(vla-put-Lineweight Lay acLnWt024)
)
((= LayColor 80)
(vla-put-Lineweight Lay acLnWt018)
)
((= LayColor 81)
(vla-put-Lineweight Lay acLnWt025)
)
((= LayColor 82)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 83)
(vla-put-Lineweight Lay acLnWt050)
)
((= LayColor 84)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 85)
(vla-put-Line5eight Lay acLnWt1000)
)
((= LayColor 86)
(vla-put-Lineweight Lay acLnWt010)
)
((= LayColor 87)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 88)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 89)
(vla-put-Lineweight Lay acLnWt024)
)
((= LayColor 90)
(vla-put-Lineweight Lay acLnWt018)
)
((= LayColor 91)
(vla-put-Lineweight Lay acLnWt025)
)
((= LayColor 92)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 93)
(vla-put-Lineweight Lay acLnWt050)
)
((= LayColor 94)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 95)
(vla-put-Line5eight Lay acLnWt1000)
)
((= LayColor 96)
(vla-put-Lineweight Lay acLnWt010)
)
((= LayColor 97)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 98)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 99)
(vla-put-Lineweight Lay acLnWt024)
)
((= LayColor 100)
(vla-put-Lineweight Lay acLnWt018)
)
((= LayColor 101)
(vla-put-Lineweight Lay acLnWt025)
)
((= LayColor 102)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 103)
(vla-put-Lineweight Lay acLnWt050)
)
((= LayColor 104)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 105)
(vla-put-Line5eight Lay acLnWt1000)
)
((= LayColor 106)
(vla-put-Lineweight Lay acLnWt010)
)
((= LayColor 107)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 108)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 109)
(vla-put-Lineweight Lay acLnWt024)
)
((= LayColor 110)
(vla-put-Lineweight Lay acLnWt018)
)
((= LayColor 111)
(vla-put-Lineweight Lay acLnWt025)
)
((= LayColor 112)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 113)
(vla-put-Lineweight Lay acLnWt050)
)
((= LayColor 114)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 115)
(vla-put-Line5eight Lay acLnWt1000)
)
((= LayColor 116)
(vla-put-Lineweight Lay acLnWt010)
)
((= LayColor 117)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 118)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 119)
(vla-put-Lineweight Lay acLnWt024)
)
((= LayColor 120)
(vla-put-Lineweight Lay acLnWt018)
)
((= LayColor 121)
(vla-put-Lineweight Lay acLnWt025)
)
((= LayColor 122)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 123)
(vla-put-Lineweight Lay acLnWt050)
)
((= LayColor 124)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 125)
(vla-put-Line5eight Lay acLnWt1000)
)
((= LayColor 126)
(vla-put-Lineweight Lay acLnWt010)
)
((= LayColor 127)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 128)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 129)
(vla-put-Lineweight Lay acLnWt024)
)
((= LayColor 130)
(vla-put-Lineweight Lay acLnWt018)
)
((= LayColor 131)
(vla-put-Lineweight Lay acLnWt025)
)
((= LayColor 132)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 133)
(vla-put-Lineweight Lay acLnWt050)
)
((= LayColor 134)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 135)
(vla-put-Line5eight Lay acLnWt1000)
)
((= LayColor 136)
(vla-put-Lineweight Lay acLnWt010)
)
((= LayColor 137)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 138)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 139)
(vla-put-Lineweight Lay acLnWt024)
)
((= LayColor 140)
(vla-put-Lineweight Lay acLnWt018)
)
((= LayColor 141)
(vla-put-Lineweight Lay acLnWt025)
)
((= LayColor 142)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 143)
(vla-put-Lineweight Lay acLnWt050)
)
((= LayColor 144)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 145)
(vla-put-Line5eight Lay acLnWt1000)
)
((= LayColor 146)
(vla-put-Lineweight Lay acLnWt010)
)
((= LayColor 147)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 148)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 149)
(vla-put-Lineweight Lay acLnWt024)
)
((= LayColor 150)
(vla-put-Lineweight Lay acLnWt018)
)
((= LayColor 151)
(vla-put-Lineweight Lay acLnWt025)
)
((= LayColor 152)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 153)
(vla-put-Lineweight Lay acLnWt050)
)
((= LayColor 154)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 155)
(vla-put-Line5eight Lay acLnWt1000)
)
((= LayColor 156)
(vla-put-Lineweight Lay acLnWt010)
)
((= LayColor 157)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 158)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 159)
(vla-put-Lineweight Lay acLnWt024)
)
((= LayColor 160)
(vla-put-Lineweight Lay acLnWt018)
)
((= LayColor 161)
(vla-put-Lineweight Lay acLnWt025)
)
((= LayColor 162)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 163)
(vla-put-Lineweight Lay acLnWt050)
)
((= LayColor 164)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 165)
(vla-put-Line5eight Lay acLnWt1000)
)
((= LayColor 166)
(vla-put-Lineweight Lay acLnWt010)
)
((= LayColor 167)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 168)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 169)
(vla-put-Lineweight Lay acLnWt024)
)
((= LayColor 170)
(vla-put-Lineweight Lay acLnWt018)
)
((= LayColor 171)
(vla-put-Lineweight Lay acLnWt025)
)
((= LayColor 172)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 173)
(vla-put-Lineweight Lay acLnWt050)
)
((= LayColor 174)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 175)
(vla-put-Line5eight Lay acLnWt1000)
)
((= LayColor 176)
(vla-put-Lineweight Lay acLnWt010)
)
((= LayColor 177)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 178)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 179)
(vla-put-Lineweight Lay acLnWt024)
)
((= LayColor 180)
(vla-put-Lineweight Lay acLnWt018)
)
((= LayColor 181)
(vla-put-Lineweight Lay acLnWt025)
)
((= LayColor 182)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 183)
(vla-put-Lineweight Lay acLnWt050)
)
((= LayColor 184)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 185)
(vla-put-Line5eight Lay acLnWt1000)
)
((= LayColor 186)
(vla-put-Lineweight Lay acLnWt010)
)
((= LayColor 187)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 188)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 189)
(vla-put-Lineweight Lay acLnWt024)
)
((= LayColor 190)
(vla-put-Lineweight Lay acLnWt018)
)
((= LayColor 191)
(vla-put-Lineweight Lay acLnWt025)
)
((= LayColor 192)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 193)
(vla-put-Lineweight Lay acLnWt050)
)
((= LayColor 194)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 195)
(vla-put-Line5eight Lay acLnWt1000)
)
((= LayColor 196)
(vla-put-Lineweight Lay acLnWt010)
)
((= LayColor 197)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 198)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 199)
(vla-put-Lineweight Lay acLnWt024)
)
((= LayColor 200)
(vla-put-Lineweight Lay acLnWt018)
)
((= LayColor 201)
(vla-put-Lineweight Lay acLnWt025)
)
((= LayColor 202)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 203)
(vla-put-Lineweight Lay acLnWt050)
)
((= LayColor 204)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 205)
(vla-put-Line5eight Lay acLnWt1000)
)
((= LayColor 206)
(vla-put-Lineweight Lay acLnWt010)
)
((= LayColor 207)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 208)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 209)
(vla-put-Lineweight Lay acLnWt024)
)
((= LayColor 210)
(vla-put-Lineweight Lay acLnWt018)
)
((= LayColor 211)
(vla-put-Lineweight Lay acLnWt025)
)
((= LayColor 212)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 213)
(vla-put-Lineweight Lay acLnWt050)
)
((= LayColor 214)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 215)
(vla-put-Line5eight Lay acLnWt1000)
)
((= LayColor 216)
(vla-put-Lineweight Lay acLnWt010)
)
((= LayColor 217)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 218)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 219)
(vla-put-Lineweight Lay acLnWt024)
)
((= LayColor 220)
(vla-put-Lineweight Lay acLnWt018)
)
((= LayColor 221)
(vla-put-Lineweight Lay acLnWt025)
)
((= LayColor 222)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 223)
(vla-put-Lineweight Lay acLnWt050)
)
((= LayColor 224)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 225)
(vla-put-Line5eight Lay acLnWt1000)
)
((= LayColor 226)
(vla-put-Lineweight Lay acLnWt010)
)
((= LayColor 227)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 228)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 229)
(vla-put-Lineweight Lay acLnWt024)
)
((= LayColor 230)
(vla-put-Lineweight Lay acLnWt018)
)
((= LayColor 231)
(vla-put-Lineweight Lay acLnWt025)
)
((= LayColor 232)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 233)
(vla-put-Lineweight Lay acLnWt050)
)
((= LayColor 234)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 235)
(vla-put-Line5eight Lay acLnWt1000)
)
((= LayColor 236)
(vla-put-Lineweight Lay acLnWt010)
)
((= LayColor 237)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 238)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 239)
(vla-put-Lineweight Lay acLnWt024)
)
((= LayColor 240)
(vla-put-Lineweight Lay acLnWt018)
)
((= LayColor 241)
(vla-put-Lineweight Lay acLnWt025)
)
((= LayColor 242)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 243)
(vla-put-Lineweight Lay acLnWt050)
)
((= LayColor 244)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 245)
(vla-put-Line5eight Lay acLnWt1000)
)
((= LayColor 246)
(vla-put-Lineweight Lay acLnWt010)
)
((= LayColor 247)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 248)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 249)
(vla-put-Lineweight Lay acLnWt024)
)
((= LayColor 250)
(vla-put-Lineweight Lay acLnWt018)
)
((= LayColor 251)
(vla-put-Lineweight Lay acLnWt025)
)
((= LayColor 252)
(vla-put-Lineweight Lay acLnWt035)
)
((= LayColor 253)
(vla-put-Lineweight Lay acLnWt050)
)
((= LayColor 254)
(vla-put-Lineweight Lay acLnWt070)
)
((= LayColor 255)
(vla-put-Line5eight Lay acLnWt1000)
)
)
)
(princ)
)
Message 12 of 29
Anonymous
in reply to: Anonymous

Cond.... statement? What/how/where do I do this?

Also, since the main guts of this lisp is pretty small, could you give me a line description?

Brock

(defun c:ChangeLayerLineweight (/ ActDoc LayCol LayColor)

(vl-load-com)
(setq ActDoc (vla-get-ActiveDocument (vlax-get-Acad-Object)))
(setq LayCol (vla-get-Layers ActDoc))
(vlax-for Lay LayCol
(setq LayColor (vla-get-Color Lay))
(cond
((= LayColor 1)
(vla-put-Lineweight Lay acLnWt025)
) Message was edited by: Brockster
Message 13 of 29
Anonymous
in reply to: Anonymous

(defun c:ChangeLayerLineweight (/ ActDoc LayCol LayColor)

(vl-load-com)
(setq ActDoc (vla-get-ActiveDocument (vlax-get-Acad-Object)))
^ Gets the currecnt drawing (document)
(setq LayCol (vla-get-Layers ActDoc))
^ Gets the layer collection, all the layers in the drawing
(vlax-for Lay LayCol
^ This is like foreach, but for collections
(setq LayColor (vla-get-Color Lay))
^ Gets the color of the layer
(cond
((= LayColor 1)
^ If the color of the layer (variable LayColor) equals 1 (red)
then do what is below.
(vla-put-Lineweight Lay acLnWt025)
^ Puts the lineweight 0.25 to the layer
)

With the cond statement, the first items that is returned true gets done, then it exits the cond statement. So here we are testing to find what color the layer is, assign a lineweight per that color, then moving on to the next layer.

Hope that makes it a little clearer.
Tim
Message 14 of 29
Anonymous
in reply to: Anonymous

Totally clear! Your explanation was extremely helpful.

But, there is a problem. I opened a file and ran the program and it ran fine. Then I added a few new layers and ran the program again. I received this error:



Command:
Command: ActiveX Server returned an error: Parameter not optional




Do you have any ideas what the problem may be? I tried closing the file, even restarting ADT, but the error still persist.
Message 15 of 29
Anonymous
in reply to: Anonymous

I'm not sure. I don't use lineweights per layer. The only thing I can think of is that maybe it doesn't like you changing the lineweights while it is a ctb printed file. Save the drawing as a test file, and then convert it to stb, and then run the command and see what happens. The command to do this is, converpstyles.

Sorry couldn't be more helpful.
Tim
Message 16 of 29
Anonymous
in reply to: Anonymous

I tried your suggestion of changing the file to SBT and that didn't work. But what I did find out is that the error does not occur in an AutoCAD 2000 format, only in 2004 format. The file that your program worked fine in was a 2000 format file that I had opened in 2005. While in ver 2005. I then put a couple of layers in the file and bluey, the error message.

I did run across a program that didn't work. It had lines in such as;

(setq LAYERDATA (tblnext "LAYER" "T"))
(while (/= LAYERDATA nil)
(setq LAYERNAME (cdr (assoc 2 LAYERDATA)))
(setq LAYERCOLOR (cdr (assoc 62 LAYERDATA)))
(cond
((= LAYERCOLOR 1)(SET_LINEWEIGHT_PLOTSTYLE LAYERNAME 0.35 "100%"))
((= LAYERCOLOR 2)(SET_LINEWEIGHT_PLOTSTYLE LAYERNAME 0.6 "100%"))
((= LAYERCOLOR 3)(SET_LINEWEIGHT_PLOTSTYLE LAYERNAME 0.5 "100%"))

Maybe there's a hint in there? Could it be that AutoCAD 2005 needs a parameter for the plotstyle?

Brock
Message 17 of 29
Anonymous
in reply to: Anonymous

I'm not sure. I only have 2004, and it worked here. Maybe look at the help files for 2005, and see what you can find. Maybe someone with 2005 will read this, and have an idea of what is happening.

For the portion of code that you posted, you would need to find the rest of it. There is a sub function called "SET_LINEWEIGHT_PLOTSTYLE LAYERNAME" that is doing the work.

Tim
Message 18 of 29
Anonymous
in reply to: Anonymous

Interesting.....I just started playing with R2006 and thought I'd look into
this. Coming from 2002 I have no idea if 2004 was this way or not.....but
the Layer object no longer has a Color property. It does have a TrueColor
property, but it references another Object:

_1_$ (vlax-dump-object lay n)
; IAcadLayer2: A logical grouping of data, similar to transparent acetate
overlays on a drawing
; Property values:
; Application (RO) = #
; Description = ""
; Document (RO) = #
; Freeze = 0
; Handle (RO) = "10"
; HasExtensionDictionary (RO) = 0
; LayerOn = -1
; Linetype = "Continuous"
; Lineweight = -3
; Lock = 0
; Name = "0"
; ObjectID (RO) = 2127883392
; ObjectName (RO) = "AcDbLayerTableRecord"
; OwnerID (RO) = 2127883280
; PlotStyleName = "Color_7"
; Plottable = -1
; TrueColor = #
; Used (RO) = -1
; ViewportDefault = 0
T

and since I have only just begun this adventure into R2006 I have no clue
about how to address this.....

Off to do some reading.

Jeff

wrote in message news:4950683@discussion.autodesk.com...
I'm not sure. I only have 2004, and it worked here. Maybe look at the help
files for 2005, and see what you can find. Maybe someone with 2005 will
read this, and have an idea of what is happening.

For the portion of code that you posted, you would need to find the rest of
it. There is a sub function called "SET_LINEWEIGHT_PLOTSTYLE LAYERNAME"
that is doing the work.

Tim
Message 19 of 29
Anonymous
in reply to: Anonymous

Here's the lisp file I found on the web. Tim, if you've gone as far as you can let me say thanks for your help. I really appreciate your attemp to assist.

Brock
Message 20 of 29
Anonymous
in reply to: Anonymous

OK, so even though Color is not listed as a property it still
works......

Brockster, the routine Tim posted with all 256 colors doesn't work because
there are a bunch of typos in the list you provided.
(vla-put-Line5eight Lay acLnWt1000)
Note the 5 where a W should be, this occurs a number of times. Also, you
have included a number of invalid LineWeight values, such as this one
acLnWt1000.

Go through and fix those and it will work.


"Jeff Mishler" wrote in message
news:4950734@discussion.autodesk.com...
Interesting.....I just started playing with R2006 and thought I'd look into
this. Coming from 2002 I have no idea if 2004 was this way or not.....but
the Layer object no longer has a Color property. It does have a TrueColor
property, but it references another Object:

_

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report

”Boost