Пожалуйста, не блокируйте рекламу!

0 Пользователей и 1 Гость просматривают эту тему.

*

Оффлайн MiFodiy

  • **
  • 30
  • Репутация: +0/-0
  • Пол: Мужской
  • MiFodiyHOMEStudio
Как задать объекту цвет по RGB
« : Ноября 27, 2012, 11:04:31 »

Test

Всем доброго! Собсно вопрос в названии темы.

Пример из руководства:
DEFINE MATERIAL "вода" 0,
0.5284, 0.5989, 0.6167,
! цвет покрытия RGB [0.0..1.0]

Здесь можно задать RGB от 0,0 до 1,0. А как задать, например, такой цвет:  R=230 G=178 B=200 ?

*

Оффлайн Int

  • *****
  • 3812
  • Репутация: +378/-5
  • Пол: Мужской
Re: Как задать объекту цвет по RGB
« Ответ #1 : Ноября 27, 2012, 11:25:31 »
Всё просто: цвет в RGB задается от 0 до 255, а в GDL - долями (считайте % от целого). Между ними обычная пропорциональная связь, т.е. 0,0 - 0 - 0% и  1,0 - 255 - 100%

Значения RGB легко перевести в понятный формат для GDL, разделив их на 255.

*

Оффлайн SABRUS

  • ***
  • 212
  • Репутация: +44/-1
  • лучше день потерять...
Re: Как задать объекту цвет по RGB
« Ответ #2 : Ноября 28, 2012, 07:42:40 »
Да, с покрытием это возможно, а задать свой цвет в команде pen - увы нет.

*

Оффлайн MiFodiy

  • **
  • 30
  • Репутация: +0/-0
  • Пол: Мужской
  • MiFodiyHOMEStudio
Re: Как задать объекту цвет по RGB
« Ответ #3 : Ноября 28, 2012, 08:45:55 »
Спасибо, Int. Я подозревал, что в долях, но удостовериться лишний раз не помешает :)

*

Оффлайн Valery W

  • *****
  • 5987
  • Репутация: +634/-14
  • Пол: Мужской
Re: Как задать объекту цвет по RGB
« Ответ #4 : Ноября 28, 2012, 08:50:21 »
Да, с покрытием это возможно, а задать свой цвет в команде pen - увы нет.
Тут вроде не про PEN, а про MATERIAL спрашивали.

*

Оффлайн MiFodiy

  • **
  • 30
  • Репутация: +0/-0
  • Пол: Мужской
  • MiFodiyHOMEStudio
Re: Как задать объекту цвет по RGB
« Ответ #5 : Марта 24, 2013, 13:06:03 »
Подскажите, что я делаю не так  Пишу в 3Д-скрипте:
DEFINE MATERIAL "1014" 2, 218/255, 199/255, 159/255

mat = 1014
   material mat
 
SPRISM_{2} mat, mat, mat, 23,
         0, 0, mhs_front_top, 0, mhs_length_original, mhs_cut_angle_bottom,
         0, 0, mhs_front_top, 0, 0, mhs_cut_angle_top,
0, 0, 15, mat,
mhs_front_top-rst, 0, 15, mat,
mhs_front_top-rst, -rst, 915, mat,
0, -180, 4015, mat,
mhs_front_top-rst, -2*rst, 15, mat,
mhs_front_top-sg-rst, -2*rst, 15, mat,.....
и т.д. 
Какой бы цвет не задавал - всегда получается голубой 

*

Оффлайн Сергейdraw

  • *
  • 5
  • Репутация: +0/-0
Re: Как задать объекту цвет по RGB
« Ответ #6 : Марта 25, 2013, 00:21:29 »
""Какой бы цвет не задавал - всегда получается голубой "" хм странно:). Если серьезно, может не втему но когда я просто задаю цвет объекту (например - Краска-01(белая)) он не становится таким как я ожидаю..подскажите в чем дело? 

*

Оффлайн Стоянов

  • **
  • 48
  • Репутация: +11/-0
Re: Как задать объекту цвет по RGB
« Ответ #7 : Марта 25, 2013, 02:47:56 »
Вы 1014 всё-таки в скобки приберите  - 
DEFINE MATERIAL "1014" 2, 218/255, 199/255, 159/255

mat = `1014`
   material mat
...
и т.д

*

Оффлайн Valery W

  • *****
  • 5987
  • Репутация: +634/-14
  • Пол: Мужской
Re: Как задать объекту цвет по RGB
« Ответ #8 : Марта 25, 2013, 08:14:10 »
Цитировать
 Если серьезно, может не втему но когда я просто задаю цвет объекту (например - Краска-01(белая)) он не становится таким как я ожидаю..подскажите в чем дело? 
Дело в Ваших ожиданиях. Они не верные. Белого цвета не существует.
А если серьезно, то больше не пишите не в тему. Тема для Вашего вопроса находится в разделе "Рендер в ArchiCAD" и называется "Почему в 3D у стен серый цвет вместо белого?"


*

Оффлайн MiFodiy

  • **
  • 30
  • Репутация: +0/-0
  • Пол: Мужской
  • MiFodiyHOMEStudio
Re: Как задать объекту цвет по RGB
« Ответ #9 : Марта 30, 2013, 15:49:25 »
Вы 1014 всё-таки в скобки приберите
С кавычками вообще выдает ошибку.  :(    "Необходимо выражение числового типа"

Поэксперементировал... Вроде разобрался...
Вот так работает:
DEFINE MATERIAL "1014" 2, 218/255, 199/255, 159/255
 
SPRISM_{2} IND (material, '1014'), IND (material, '1014'), IND (material, '1014'), 23,
         0, 0, mhs_front_top, 0, mhs_length_original, mhs_cut_angle_bottom,
         0, 0, mhs_front_top, 0, 0, mhs_cut_angle_top,
0, 0, 15, IND (material, '1014'),
mhs_front_top-rst, 0, 15, IND (material, '1014'),
mhs_front_top-rst, -rst, 915, IND (material, '1014'),
0, -180, 4015, IND (material, '1014'),
mhs_front_top-rst, -2*rst, 15, IND (material, '1014'),
mhs_front_top-sg-rst, -2*rst, 15, IND (material, '1014'),.....
и т.д.
Не совсем, правда, понял суть функции IND, но главное работает 
« Последнее редактирование: Марта 30, 2013, 16:54:46 от MiFodiy »

*

Оффлайн Стоянов

  • **
  • 48
  • Репутация: +11/-0
Re: Как задать объекту цвет по RGB
« Ответ #10 : Марта 30, 2013, 17:02:53 »
« Последнее редактирование: Марта 30, 2013, 20:01:44 от Int »

*

Оффлайн MiFodiy

  • **
  • 30
  • Репутация: +0/-0
  • Пол: Мужской
  • MiFodiyHOMEStudio
Re: Как задать объекту цвет по RGB
« Ответ #11 : Апреля 01, 2013, 21:43:21 »
Стоянов, как ни странно, но у меня ваш пример с кавычками тоже работает, а вот мой нет. Порылся в руководстве и вот что нашел:
"[SET] MATERIAL
[SET] MATERIAL name_string
[SET] MATERIAL index
Все последующие поверхности будут иметь указанное покрытие до поступления нового предложения MATERIAL. Поверхности тел BPRISM_, CPRISM_, FPRISM_, HPRISM_, SPRISM_, CSLAB_, CWALL_, BWALL_, XWALL_, CROOF_, MASS являются исключением из этого правила."


Видимо в этом и кроется причина.
Но теперь вопрос решен, спасибо всем откликнувшимся. Тему можно считать законсервированной до возникновения новых вопросов 

*

Оффлайн MiFodiy

  • **
  • 30
  • Репутация: +0/-0
  • Пол: Мужской
  • MiFodiyHOMEStudio
Re: Как задать объекту цвет по RGB
« Ответ #12 : Июля 29, 2013, 18:21:21 »
Всем доброго! И снова я с глупыми вопросами. С цветом вроде разобрался, но... Теперь возникла другая беда.  :(  Когда использую один DEFINE MATERIAL - все работает,  а когда вот такого вида
!!! определяем покрытия

DEFINE MATERIAL "3003_g" 2, 138/255, 56/255, 61/255
DEFINE MATERIAL "3005" 3, 102/255, 61/255, 65/255

!!! определяем реквизиты покрытия и пера

IF mhs_material = "Рубиновый (RAL 3003)" Then
mat = IND(material,'3003_g')
ENDIF
IF mhs_material = "Красное вино (RAL 3005)" Then
mat = IND(material,'3005')
ENDIF
то при выборе цвета из списка выскакивает ошибка (скрин во вложении). Кто-нибудь сталкивался? Я себе уже всю голову сломал, но так и не смог понять, при чем тут индекс изображения  :(

 

Похожие темы

  Тема / Автор