모델의 색상 및 투명도 설정
모델의 색상 및 투명도 설정
모델 색상 설정
모델이 고유 색상을 변경할 수 있습니다.
// 모델 열린 상태 확인
if (Connector.IsOpenDocument() == false) return;
// 화면 갱신 차단
Connector.EnableRender(false);
// PIPE 모델 검색
List<NodeVO>
items = Connector.FindObject(
"PIPE" /* 검색어 */
, true /* 대소문자 구분 : True(구분하지않음), False(구분) */
, true /* True(어셈블리노드만 검색), False(전체노드 검색) */
, false /* True(보이는 모델만), False(전체 모델) */
, false /* True(속성포함 검색), False(속성미포함 검색) */
, false /* True(선택된 모델 이하 검색), False(전체노드 검색) */
, false /* True(검색어 일치), 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);
변경된 색상을 초기화 하는 방법은 아래 3가지 형태가 있습니다.
// 지정된 항목 색상 초기화
Connector.RestoreObjectsColor(INDEX.ToArray());
// 현재 선택된 모델애 대해서 색상 초기화
Connector.RestoreSelectedObjectColor();
// 전체 모델의 색상을 초기화
Connector.RestoreAllObjectColor();
SHConnector Library에 사전에 정의된 색상 팔레트 정보를 활용한 예제
// 모델 열린 상태 확인
if (Connector.IsOpenDocument() == false) return;
// 화면 갱신 차단
Connector.EnableRender(false);
// PIPE 모델 검색
List<NodeVO> items = Connector.FindObject(
"PIPE" /* 검색어 */
, true /* 대소문자 구분 : True(구분하지않음), False(구분) */
, true /* True(어셈블리노드만 검색), False(전체노드 검색) */
, false /* True(보이는 모델만), False(전체 모델) */
, false /* True(속성포함 검색), False(속성미포함 검색) */
, false /* True(선택된 모델 이하 검색), False(전체노드 검색) */
, false /* True(검색어 일치), 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);
Figure 1 : 모델 색상 변경
모델 투명도 설정
모델의 고유 투명도를 변경할 수 있습니다.
// 모델 열린 상태 확인
if (Connector.IsOpenDocument() == false) return;
// 화면 갱신 차단
Connector.EnableRender(false);
// PIPE 모델 검색
List<NodeVO> items = Connector.FindObject(
"PIPE" /* 검색어 */
, true /* 대소문자 구분 : True(구분하지않음), False(구분) */
, true /* True(어셈블리노드만 검색), False(전체노드 검색) */
, false /* True(보이는 모델만), False(전체 모델) */
, false /* True(속성포함 검색), False(속성미포함 검색) */
, false /* True(선택된 모델 이하 검색), False(전체노드 검색) */
, false /* True(검색어 일치), False(검색어 포함 - 부분 일치) */
);
// 검색된 모델
List<int> INDEX = new List<int>();
foreach (NodeVO item in items)
{
INDEX.Add(item.Index);
}
// 투명도 변경
Connector.SetObjectsAlpha(INDEX.ToArray(), 50);
// 화면 갱신 차단 해제
Connector.EnableRender(true);
Figure 2 : 모델 투명도 변경
변경된 투명도를 초기화 하는 방법은 아래 3가지 형태가 있습니다.
// 지정된 항목 투명도 초기화
Connector.RestoreObjectsAlpha(INDEX.ToArray());
// 현재 선택된 모델애 대해서 투명도 초기화
Connector.RestoreSelectedObjectAlpha();
// 전체 모델의 투명도를 초기화
Connector.RestoreObjectsAlpha();
Last modified: 04 3월 2024