Autocad 开发人员:如何使用 C# 获取 RGB 模式下的对象颜色
Autocad Developer: how to get Object Color in RGB mode by using C#
大家好,我想在 RGB 模式下获取属性中的对象颜色。我尝试了 string cecolor = acDocComObj.GetVariable("CECOLOR");
之类的代码,但这在 TrueColor 中没有 return。有人知道怎么做吗?
对于 AutoCAD 中的任何实体(例如线、圆、块等),您可以使用 .Color 属性(对于 .NET 进程中 API):
Entity ent = // get the entity here;
Autodesk.AutoCAD.Colors.Color c = ent.Color;
int[] rgb = new int[] { c.Red, c.Green, c.Blue };
正如您提到的进程外 COM/ActiveX,您可以尝试类似的操作:
AcadEntity ent = // get the entity here;
int[] rgb = new int[] { ent.TrueColor.Red, ent.TrueColor.Green, ent.TrueColor.Blue };
我在Autodesk讨论组的回复
AcadAcCmColor color = new AcadAcCmColor();
int index = 0;
if (colorName.ToUpper() == "BYBLOCK")
{
color.ColorIndex = AcColor.acByBlock;
}
else if (colorName.ToUpper() == "BYLAYER")
{
color.ColorIndex = AcColor.acByLayer;
}
else if (int.TryParse(colorName, out index))
{
color.ColorIndex = (AcColor)index;
}
else if (colorName.ToUpper().StartsWith("RGB:"))
{
string[] rgb = colorName.Substring(4).Split(',');
color.SetRGB(int.Parse(rgb[0]), int.Parse(rgb[1]), int.Parse(rgb[2]));
}
else
{
string[] bookColor = colorName.Split('$');
color.SetColorBookColor(bookColor[0], bookColor[1]);
}
大家好,我想在 RGB 模式下获取属性中的对象颜色。我尝试了 string cecolor = acDocComObj.GetVariable("CECOLOR");
之类的代码,但这在 TrueColor 中没有 return。有人知道怎么做吗?
对于 AutoCAD 中的任何实体(例如线、圆、块等),您可以使用 .Color 属性(对于 .NET 进程中 API):
Entity ent = // get the entity here;
Autodesk.AutoCAD.Colors.Color c = ent.Color;
int[] rgb = new int[] { c.Red, c.Green, c.Blue };
正如您提到的进程外 COM/ActiveX,您可以尝试类似的操作:
AcadEntity ent = // get the entity here;
int[] rgb = new int[] { ent.TrueColor.Red, ent.TrueColor.Green, ent.TrueColor.Blue };
我在Autodesk讨论组的回复
AcadAcCmColor color = new AcadAcCmColor();
int index = 0;
if (colorName.ToUpper() == "BYBLOCK")
{
color.ColorIndex = AcColor.acByBlock;
}
else if (colorName.ToUpper() == "BYLAYER")
{
color.ColorIndex = AcColor.acByLayer;
}
else if (int.TryParse(colorName, out index))
{
color.ColorIndex = (AcColor)index;
}
else if (colorName.ToUpper().StartsWith("RGB:"))
{
string[] rgb = colorName.Substring(4).Split(',');
color.SetRGB(int.Parse(rgb[0]), int.Parse(rgb[1]), int.Parse(rgb[2]));
}
else
{
string[] bookColor = colorName.Split('$');
color.SetColorBookColor(bookColor[0], bookColor[1]);
}