How to convert RGB value to ACI

How to convert RGB value to ACI

Anonymous
Not applicable
3,670 Views
9 Replies
Message 1 of 10

How to convert RGB value to ACI

Anonymous
Not applicable
Hello all,

I need code in VBA to convert RGB value to ACI

I need not want to use dos_rgbtoaci, becuase I do not want to come out from VBA to convert value to ACI using Dos Lib.

Thanks in advance for your kind help in above problem.

Regards,

Rajesh
0 Likes
3,671 Views
9 Replies
Replies (9)
Message 2 of 10

fxcastil
Advocate
Advocate
Rajesh,

Here are two functions RGB to ACI and
ACI to RGB. Unfortunately no way other than
brute force

Fred C





Function getAcadColor(intColor As Integer) As Integer
' this function converts an RGB color to Autocad Color

Select Case intColor
Case 1
getAcadColor = 7
Case 2
getAcadColor = 7
Case 3
getAcadColor = 1
Case 4
getAcadColor = 3
Case 5
getAcadColor = 5
Case 6
getAcadColor = 2
Case 7
getAcadColor = 6
Case 8
getAcadColor = 4
Case 9
getAcadColor = 26
Case 10
getAcadColor = 86
Case 11
getAcadColor = 194
Case 12
getAcadColor = 46
Case 13
getAcadColor = 192
Case 14
getAcadColor = 112
Case 15
getAcadColor = 254
Case 16
getAcadColor = 253
Case 17
getAcadColor = 171
Case 18
getAcadColor = 15
Case 19
getAcadColor = 41
Case 20
getAcadColor = 131
Case 21
getAcadColor = 208
Case 22
getAcadColor = 11
Case 23
getAcadColor = 150
Case 24
getAcadColor = 141
Case 25
getAcadColor = 188
Case 26
getAcadColor = 6
Case 27
getAcadColor = 2
Case 28
getAcadColor = 4
Case 29
getAcadColor = 192
Case 30
getAcadColor = 26
Case 31
getAcadColor = 112
Case 32
getAcadColor = 5
Case 33
getAcadColor = 140
Case 34
getAcadColor = 121
Case 35
getAcadColor = 71
Case 36
getAcadColor = 41
Case 37
getAcadColor = 141
Case 38
getAcadColor = 211
Case 39
getAcadColor = 181
Case 40
getAcadColor = 31
Case 41
getAcadColor = 142
Case 42
getAcadColor = 132
Case 43
getAcadColor = 52
Case 44
getAcadColor = 40
Case 45
getAcadColor = 30
Case 46
getAcadColor = 30
Case 47
getAcadColor = 47
Case 48
getAcadColor = 252
Case 49
getAcadColor = 188
Case 50
getAcadColor = 95
Case 51
getAcadColor = 29
Case 52
getAcadColor = 17
Case 53
getAcadColor = 34
Case 54
getAcadColor = 197
Case 55
getAcadColor = 182
Case 56
getAcadColor = 29
End Select

End Function




Public Function AcadToRGB(CadColor As Integer) As Long

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

End If

End Function
0 Likes
Message 3 of 10

Anonymous
Not applicable
Hi Fred C

Thanks a lot for providing useful code, That will help a lot.

Best regards,

Rajesh
0 Likes
Message 4 of 10

Anonymous
Not applicable
What's wrong with using the .colorindex property?

Dim col As New AcadAcCmColor
Call col.SetRGB(125, 173, 35)
MsgBox "RGB:" & col.Red & "," & col.Green & "," & col.Blue & " = " & vbCrLf & _
"ACAD Color Index=" & col.ColorIndex & vbCrLf
0 Likes
Message 5 of 10

fxcastil
Advocate
Advocate
Allen,

AcadAcCmColor doesn't exist in Acad 2002

Fred C
0 Likes
Message 6 of 10

GTVic
Advisor
Advisor
Don't the RGB values vary depending on whether your graphics card is set to 16 or 32 bit color?
0 Likes
Message 7 of 10

Anonymous
Not applicable
fxcastil wrote:

> AcadAcCmColor doesn't exist in Acad 2002

How about taking the given random RGB values and stepping through the
known values. Calculate the differences in R,G,B then add them
together. The smallest difference is the closest ACI color? I'm no
color expert, are there any better approaches to determine the closest
match?

I also need to do this in a version independent mode.

Terry
0 Likes
Message 8 of 10

fxcastil
Advocate
Advocate
Terry,

I tried what you said but not don't get exact match, if a close enough color is all you need then your approach is ok.

I don't see the problem with using a look up method all the typing has already been done. I know techies always want to get the math solution.

Fred C.
0 Likes
Message 9 of 10

Anonymous
Not applicable
Yeah, tried it too,but if you have it print out a color wheel, youll see that the RGB convertion that you are talking about will reverse any "between even RGB values (1 value and the other 2 are 0)", and thus dont match the ColorIndex value of that color. As mentionned earlyer, without AcCmColor, it is impossible to do a mathematical conversion. And keep in mind that even with AcCmColor, IT DOES NOT GIVE YOU THE CLOSEST ACI MATCH, BUT THE SMALLEST ACI NUMBER UNDER THAT CALCULATED ONE! (close, but no cigar; Pale yellow cannot be pure yellow when dealing with AutoCAD and doing space annalysis according to color.... 🙂 To do it right,it must be "brutly done"... 😉
0 Likes
Message 10 of 10

Anonymous
Not applicable
nyme wrote:

> Yeah, tried it too,but if you have it print out a color wheel, youll
> see that the RGB convertion that you are talking about will reverse
> any "between even RGB values (1 value and the other 2 are 0)", and
> thus dont match the ColorIndex value of that color. As mentionned
> earlyer, without AcCmColor, it is impossible to do a mathematical
> conversion. And keep in mind that even with AcCmColor, IT DOES NOT
> GIVE YOU THE CLOSEST ACI MATCH, BUT THE SMALLEST ACI NUMBER UNDER
> THAT CALCULATED ONE! (close, but no cigar; Pale yellow cannot be pure
> yellow when dealing with AutoCAD and doing space annalysis according
> to color.... 🙂 To do it right,it must be "brutly done"... 😉

What has always surprised me is that the AutoCAD Colour Index table
where they state the values for all 256 colours, that they use
fractional values. Visual C++ and most other languages only allow you
to specify the RGB components at whole values. So I wonder how they
manage to do it.

Concerning an earlier comment about 16 and 32 bit. I know that a
computer on 256 colours must utilise pallettes in their program so that
the correct colours will be mapped and displayed in their program. But
these days everyone is using full colour so it is not so much a problem.

Andrew

--
0 Likes