Тема: Создание слоя в Автокаде

Добрый день хочу создать слой с "дробным" цветом.

<code>
        Dim sloy As Object
        sloy = Activdoc.Layers.Add("Слой")
        sloy.truecolor = RGB(255,15,15) ----> не получется
        sloy.Linetype = "Continuous"
        sloy.Lineweight = 70
</code>

Re: Создание слоя в Автокаде

Попробуй создать объект AcadAcCmColor, задать RGB (SetRGB), и присвоить его свойству TrueColor слоя.

А почему вопрос в разделе NET, когда это больше похоже на VBA?
А если ты работаешь в NET через COM, тогда ответь плиз почему?

Re: Создание слоя в Автокаде

Тогда я просто поменяю цвет объекта, а не цвет слоя. А работаю я в Net, просто мне показалось удобнее)

Re: Создание слоя в Автокаде

Роман Соколов пишет:

Тогда я просто поменяю цвет объекта, а не цвет слоя.

Не понял!
Сейчас ты, что делаешь:

Роман Соколов пишет:

sloy.truecolor = RGB(255,15,15)

Пытаешься объекту AcadCmColor назначить значение Long (функция RGB возвращает Long).
Это не верно.

Я тебе предлагаю создать объект AcadCmColor, задать ему свойства, и назначить его слою.

Dim color As New AcadCmColor
color.SetRGB 255,15,15
sloy.TrueColor = color 
Роман Соколов пишет:

А работаю я в Net, просто мне показалось удобнее)

Попробуй в NET работать с объектами ObjectARX. Если нет других причин использования COM, то это удобнее .

Re: Создание слоя в Автокаде

что-то вылетает на..
<code>
Dim color As New AcadAcCmColor
</code>

Re: Создание слоя в Автокаде

Сори! Пробовал на VBA. Видимо в COM будет немного по-другому. :(

Re: Создание слоя в Автокаде

<code>
sloy.color=3
</code>
так работает без проблем, а вот с дробным не получается!

(изменено: Вильдар, 9 декабря 2011г. 09:40:19)

Re: Создание слоя в Автокаде

Роман Соколов пишет:

так работает без проблем

Это нормально. Так индекс из палитры 255 цветов задается.

Больше не встреваю. Что-то не соображу, как еще можно задать цвет.

Re: Создание слоя в Автокаде

Всё-равно спасибо!

Re: Создание слоя в Автокаде

----> не получется

Посмотри класс Autodesk.AutoCAD.Colors.ColorConverter, и будет тебе счастье. В блоге KEAN WALMSLEY имеются примеры использования этого класса. Как вариант, ты можешь получить цвет так:

using AcClr = Autodesk.AutoCAD.Colors;
...
AcClr.ColorConverter colconv = new AcClr.ColorConverter();
AcClr.Color myColor = (AcClr.Color) colconv.ConvertFromString("255,15,15");
...

Re: Создание слоя в Автокаде

А можно на VB.., что-то не могу найти(

Re: Создание слоя в Автокаде

Можно так, аргуметы имеют тип Byte:

ltr.Color = Color.FromRgb(255, 0, 0)