본문으로 건너뛰기

모델의 색상 및 투명도 설정

모델의 색상(Color)과 투명도(Alpha)를 API를 통해 설정하는 방법을 설명합니다.


모델 색상 설정

모델의 고유 색상을 변경할 수 있습니다.

// 모델 열린 상태 확인
if (!Connector.IsOpenDocument()) return;

// 화면 갱신 차단
Connector.EnableRender(false);

// PIPE 모델 검색
List<NodeVO> items = Connector.FindObject(
"PIPE", // 검색어
true, // 대소문자 구분 안 함
true, // 어셈블리 노드만 검색
false, // 보이는 모델만 검색 안 함
false, // 속성 포함 검색 안 함
false, // 선택된 모델 이하 검색 안 함
false // 부분 일치 검색
);

// 검색된 모델 인덱스 수집
List<int> INDEX = new List<int>();
foreach (NodeVO item in items)
{
INDEX.Add(item.Index);
}

// 색상 변경
Connector.SetObjectsColor(INDEX.ToArray(), Color.Yellow);

// 화면 갱신 차단 해제
Connector.EnableRender(true);

색상 초기화 방법

변경된 색상은 아래 세 가지 방법으로 초기화할 수 있습니다.

// 지정된 항목 색상 초기화
Connector.RestoreObjectsColor(INDEX.ToArray());

// 현재 선택된 모델 색상 초기화
Connector.RestoreSelectedObjectColor();

// 전체 모델 색상 초기화
Connector.RestoreAllObjectColor();

색상 팔레트(Color Palette) 활용 예제

SHConnector 라이브러리에 정의된 색상 팔레트를 이용해 모델 색상을 설정할 수 있습니다.

// 모델 열린 상태 확인
if (!Connector.IsOpenDocument()) return;

// 화면 갱신 차단
Connector.EnableRender(false);

// PIPE 모델 검색
List<NodeVO> items = Connector.FindObject(
"PIPE",
true,
true,
false,
false,
false,
false
);

// 색상 팔레트 헬퍼 생성
SHConnector.Utility.Color.ColorPaletteHelper colorHelper =
new SHConnector.Utility.Color.ColorPaletteHelper();

// 팔레트 선택
colorHelper.PalettesName = colorHelper.GetPalettesNames()[0];

// 팔레트 색상 목록
List<SHConnector.Utility.Color.PaletteColorVO> colorList = colorHelper.Colors;

// 모델별 색상 적용
for (int i = 0; i < items.Count; i++)
{
Connector.SetObjectsColor(
new int[] { items[i].Index },
colorList[i % colorList.Count].Color1
);
}

// 화면 갱신 차단 해제
Connector.EnableRender(true);

모델 색상 변경 결과

모델 색상 변경


모델 투명도 설정

모델의 고유 투명도를 설정할 수 있습니다.

// 모델 열린 상태 확인
if (!Connector.IsOpenDocument()) return;

// 화면 갱신 차단
Connector.EnableRender(false);

// PIPE 모델 검색
List<NodeVO> items = Connector.FindObject(
"PIPE",
true,
true,
false,
false,
false,
false
);

// 검색된 모델 인덱스 수집
List<int> INDEX = new List<int>();
foreach (NodeVO item in items)
{
INDEX.Add(item.Index);
}

// 투명도 변경 (0 ~ 100)
Connector.SetObjectsAlpha(INDEX.ToArray(), 50);

// 화면 갱신 차단 해제
Connector.EnableRender(true);

모델 투명도 변경 결과

모델 투명도 변경


투명도 초기화 방법

변경된 투명도는 아래 세 가지 방법으로 초기화할 수 있습니다.

// 지정된 항목 투명도 초기화
Connector.RestoreObjectsAlpha(INDEX.ToArray());

// 현재 선택된 모델 투명도 초기화
Connector.RestoreSelectedObjectAlpha();

// 전체 모델 투명도 초기화
Connector.RestoreObjectsAlpha();