canvas
canvas 개체는 캔버스 도면을 조작할때 사용할수 있습니다. 도면에서 제공하는 기능은 canvas개체를 이용해 수행 할 수 있습니다. 주요기능은 도면에 있는 그래픽 아이템 얻기, 타이머 실행, 애니메이션 실행, 캔버스 화면에 맞추기, 캔버스 최대화/최소화 등이 있습니다.
Methods
리턴 값 |
함수 |
설명 |
clearMark( shape ) |
캔버스에 해당 개체(shape)의 setMark를 해제합니다. |
|
캔버스를 닫습니다. |
||
connectValueChange( func, pointNames ) |
포인트값 변경시 변경된 값을 수신할 이벤트 핸들러를 등록합니다. |
|
캔버스 화면배율 변경시 화면 배율 변경 이벤트를 수신 합니다. |
||
PowerShape |
createObject( objType, layerName ) |
그래픽 개체를 만들어 특정 레이어에 추가합니다 |
str |
fileName() |
스크립트가 실행된 캔버스 도면의 파일경로를 얻어옵니다. |
캔버스를 창 크기에 맞춥니다. |
||
list[str] |
캔버스 내에 있는 모든 그래픽 개체의 이름을 얻어옵니다. |
|
PowerShape |
getObject( targetObj ) |
선택한 그래픽 개체(targetObj)를 얻어옵니다. |
list[str] |
getObjectNamesInLayer( layer ) |
특정 레이어에 속한 그래픽 개체의 이름을 얻어옵니다. |
PowerShape |
현재 마우스 위에 있는 그래픽 개체를 얻어옵니다. |
|
boolean |
isLayerVisible( layer ) |
layer의 보이기/안보이기 상태를 얻어옵니다. |
maximize() |
캔버스 창을 최대화합니다. |
|
minimize() |
캔버스 창을 최소화합니다. |
|
moveAnimation( targetObj, xLength, yLength, msec, repeat ) |
선택한 그래픽 개체(targetObj)를 지정한 거리 및 방향으로 지정한 시간(msec)동안 이동합니다. |
|
moveOnCurveAnimation( moveObj, targetObj, dir, msec, repeat ) |
움직일 그래픽 개체(moveObj)가 선택한 그래픽 개체(targetObj)의 지정 지점(dir)에서 지정 시간(msec)동안 이동합니다. |
|
opacityAnimation( targetObj, start, end, msec, repeat, curve ) |
선택한 그래픽 개체(targetObj)의 투명도를 변경합니다. |
|
replacePointName( texts ) |
해당 도면의 포인트명을 바꿉니다. |
|
replacePointName2( objs, texts ) |
특정 그래픽 개체들를 지정해 포인트명을 바꿉니다. |
|
rotateAnimation( targetObj, angle, x, y, duration, repeat ) |
선택한 그래픽 개체(targetObj)를 x, y 크기로 지정한 시간(msec)만큼 확대/축소합니다. |
|
rotateAnimation2( targetObj, angle, x, y, duration, repeat ) |
선택한 그래픽 개체(targetObj)를 회전합니다. |
|
saveScreen( loaction ) |
현재 화면을 캡쳐하여 지정된 폴더에 저장합니다. |
|
scaleAnimation( targetObj, x, y, msec, repeat, ankor ) |
선택한 그래픽 개체(targetObj)를 지정한 각 만큼 회전합니다. |
|
scrollAnimation( name, dir, msec ) |
선택한 그래픽 개체의 문자를 스크롤합니다. |
|
pyShape |
사용자가 선택한 그래픽 개체를 얻어옵니다. |
|
setCurrentLogDate( name/nameList, year, month, day, hour ) |
그래픽 개체에 링크된 이력 날짜의 기준 시간을 설정합니다. |
|
setInterval( functionName, msec ) |
함수를 특정 시간(msec) 간격으로 반복 실행합니다. |
|
setLayerVisible( layer, visible ) |
레이어를 보이기/안보이기 설정합니다. |
|
setMark( shape ) |
캔버스에 해당 개체(shape)를 표시합니다. |
|
setZoomLevel( level ) |
캔버스의 zoomLevel을 설정합니다. |
|
캔버스를 최상위로 표시합니다 |
||
singleShot( functionName, msec ) |
함수를 특정 시간(msec) 후에 한번 실행합니다. |
|
startBlink( targetObj, msec ) |
선택한 그래픽개체(targetObj)의 깜빡임 효과를 줍니다. |
|
stopBlink( targetObj ) |
선택한 개체(targetObj)의 startBlink를 중지합니다. |
|
stopBlink2( name ) |
선택한 개체(name)의 startBlink를 중지합니다. |
|
stopInterval( functionName ) |
setInterval로 실행한 함수를 중지합니다. |
|
stopMoveAnimation( targetObj ) |
선택한 개체(targetObj)의 moveAnimation을 중지합니다. |
|
stopMoveAnimation2( name ) |
선택한 개체(name)의 moveAnimation을 중지합니다. |
|
stopOpacityAnimation( targetObj ) |
선택한 개체(targetObj)의 opacityAnimation을 중지합니다. |
|
stopOpacityAnimation2( name ) |
선택한 개체(name)의 opacityAnimation을 중지합니다. |
|
stopRotateAnimation( targetObj ) |
선택한 개체(targetObj)의 rotateAnimation을 중지합니다. |
|
stopRotateAnimation2( name ) |
선택한 개체(name)의 rotateAnimation를 중지합니다. |
|
stopScaleAnimation( targetObj ) |
선택한 개체(targetObj)의 scaleAnimation을 중지합니다. |
|
stopScaleAnimation2( name ) |
선택한 개체(name)의 scaleAnimation을 중지합니다. |
|
캔버스가 닫힐 때까지 대기합니다. |
||
float |
캔버스의 확대/축소 비율을 읽어옵니다. |
clearMark( shape:해제할 개체 ) |
|
캔버스에서 shape 개체의 setMark를 해제합니다.
예)
|
|
clearMark 동작 예입니다. |
|
|
|
|
|
포인트 값 변경시 변경된 값을 수신받을 이벤트 핸들러를 등록 합니다. 포인트 값이 변경된 경우 등록한 함수를 통해 포인트 이름과 포인트 값을 받을수 있습니다.
def handleChange(name: 변경된 포인트명, value: 변경된 포인트값)
예)
|
|
'COM.1 충전상태', 'COM.2 충전상태' 포인트값의 변경에 따라 그래픽 개체의 보이기/감추기 속성이 변경됩니다.
|
캔버스 화면배율 변경시 화면 배율 변경 이벤트를 수신 합니다. 수신 받을 핸들러의 이름과 형식은 아래와 같으며 함수 이름은 고정되어 있습니다. 이벤트 수신 함수의 형식은 다음과 같습니다. def onZoomChanged ( canvasObject: 이벤트가 발생한 캔버스, zoom :변경된 화면 배율) 예) |
|
|
PowerShape getObject( targetObj:그래픽 개체 ) |
|
그래픽 개체(targetObj)를 얻어옵니다.
예) 'Group_1.Arc_1'
getObject 통해 얻은 그래픽 개체의 자세한 활용법은 그래픽 오브젝트 - 속성 에서 설명합니다.
예) 단일 그래픽 개체의 채우기 색을 변경할 경우
|
|
|
|
예) 그룹화된 그래픽 개체의 채우기 색을 변경할 경우
|
|
|
|
setInterval( exp:표현식, msec:실행 주기 ) |
|
사용자가 설정한 식(exp)를 msec(1000=1초) 간격으로 실행합니다.
예)
|
|
setInterval을 이용한 시간표시 결과입니다. |
|
결과) |
|
|
|
stopInterval( exp:표현식 ) |
|
사용자가 설정한 식(exp)를 중지합니다.
예) stopInterval을 이용하여 setInterval에 등록된 setCurrentTime()을 중지합니다.
|
|
결과) 화면상의 시계가 동작을 멈춥니다. |
|
|
|
singleShot( exp:표현식, msec:실행 주기 ) |
|
사용자가 설정한 식(exp)를 설정시간(msec 1000=1초) 후에 실행합니다.
예)
|
|
singleShot은 다음과 같이 동작합니다. |
|
|
|
setMark( shape:표시할 개체 ) |
|
캔버스에서 shape 개체를 표시합니다.
예)
|
|
setMark 동작 예입니다. |
|
|
|
moveAnimation( targetObj:그래픽 개체, xLength:이동할 x축 거리, yLength:이동할 y축 거리, msec:애니메이션 시간, repeat:반복 횟수 ) |
|
그래픽 개체를 이동합니다.
예)
|
|
moveAnimation 동작 예입니다. |
|
|
|
|
|
stopMoveAnimation( targetObj:그래픽 개체 ) |
|
그래픽개체(targetObj)의 moveAnimation을 중지합니다. 예)
|
|
stopMoveAnimation2( name:그래픽 개체 이름 ) |
|
그래픽개체(name)의 moveAnimation을 중지합니다. 예)
|
|
rotateAnimation( targetObj:그래픽 개체, angle:회전각, x:화면 기준 x축, y:화면 기준 y축, duration:회전 시간, repeat:반복횟수 ) |
|
그래픽 개체를 회전합니다.
예)
|
|
rotateAnimation 동작 예입니다. |
|
|
|
rotateAnimation2( targetObj:그래픽 개체, angle:회전각, x:그래픽 개체 기준 x축, y:그래픽 개체 기준 y축, duration:회전 시간, repeat:반복횟수 ) |
|
그래픽 개체를 회전합니다.
예)
|
|
rotateAnimation2 동작 예입니다. |
|
|
|
stopRotateAnimation( targetObj:그래픽 개체 ) |
|
그래픽개체(targetObj)의 rotateAnimation을 중지합니다. 예)
|
|
stopRotateAnimation2( name:그래픽 개체 이름 ) |
|
그래픽개체(name)의 rotateAnimation를 중지합니다. 예)
|
|
scaleAnimation( targetObj:그래픽 개체, x:x축 scale 크기, y:y축 scale 크기, msec:scale 시간, repeat:반복횟수, ankor:중심축 ) |
|
그래픽 개체를 확대/축소합니다.
예)
|
|
scaleAnimation 동작 예입니다. |
|
|
|
stopScaleAnimation( targetObj:그래픽 개체 ) |
|
그래픽개체(targetObj)의 scaleAnimation을 중지합니다. 예)
|
|
stopScaleAnimation2( name:그래픽 개체 이름 ) |
|
그래픽개체(name)의 scaleAnimation을 중지합니다. 예)
|
|
opacityAnimation( targetObj:그래픽 개체, start:시작 투명도, end:끝 투명도, msec:투명도 변경 시간, repeat:반복횟수, curve:투명화 방법 ) |
|
그래픽 개체의 투명도를 변경합니다.
예)
|
|
opacityAnimation 동작 예입니다. |
|
|
|
stopOpacityAnimation( targetObj:그래픽 개체 ) |
|
그래픽개체(targetObj)의 opacityAnimation을 중지합니다. 예)
|
|
|
|
그래픽개체(name)의 opacityAnimation을 중지합니다. 예)
|
|
startBlink( targetObj:그래픽 개체, msec:깜빡임 간격 ) |
|
그래픽 개체(targetObj)를 지정한 간격(msec)으로 깜빡입니다. 예)
|
|
startBlink 동작 예입니다. |
|
|
|
stopBlink( targetObj:그래픽 개체 ) |
|
그래픽 개체(targetObj)의 깜빡임을 중지합니다. 예)
|
|
stopBlink2( name:그래픽 개체 이름 ) |
|
그래픽개체(name)의 깜빡임을 중지합니다. 예)
|
|
replacePointName( texts:문자열 또는 문자열 리스트 ) |
|
사용자가 데이터 링크 시 임의로 설정한 포인트 명을 변경할 수 있습니다.
예) '임의로 설정한 포인트 명:스테이션 명.포인트 명'
예) ['임의로 설정한 포인트 명1:스테이션 명1.포인트 명1', '임의로 설정한 포인트 명2:스테이션 명2.포인트 명2'] 예) 변경할 포인트 명이 1개인 경우
|
|
[ 사용자가 임의로 설정한 포인트 명으로 데이터 링크 시 ] |
|
[ 실제 포인트 명으로 데이터 링크 시] 예) 변경할 포인트 명이 2개 이상인 경우
|
|
[ 사용자가 임의로 설정한 포인트 명으로 데이터 링크 시 ] [ 실제 포인트 명으로 데이터 링크 시 ] |
replacePointName2( objs:그래픽 개체 명, texts:문자열 또는 문자열 리스트 ) |
|
사용자가 특정 그래픽 개체에 데이터 링크 시 임의로 설정한 포인트 명을 변경할 수 있습니다.
예) '그래픽 개체 명'
예) ['그래픽 개체 명1', '그래픽 개체 명2']
예) '임의로 설정한 포인트 명:스테이션 명.포인트 명'
예) ['임의로 설정한 포인트 명1:스테이션 명1.포인트 명1', '임의로 설정한 포인트 명2:스테이션 명2.포인트 명2'] 예) 특정 그래픽 개체 1개에 변경할 포인트 명이 1개인 경우
|
|
|
|
예) 특정 그래픽 개체 2개에 변경할 포인트 명이 2개인 경우
|
|
setLayerVisible( layer:레이어 이름, visible:보이기 또는 안보이기) |
||
레이어의 보이기/안보이기를 설정합니다.
예)
|
||
①
②
|
||
boolean isLayerVisible( layer:레이어 이름 ) |
|
레이어의 보이기/안보이기 상태를 얻어옵니다.
예)
|
|
isLayerVisible 동작 예입니다. |
|
|
|
str fileName() |
|
스크립트가 실행된 도면(canvas)의 경로를 읽어옵니다. 반환값은 문자열입니다. 예)
|
|
fileName을 통해 얻은 경로를 messageBox를 이용한 출력 예입니다. |
|
|
|
float zoomLevel() |
|
캔버스의 확대/축소 비율을 읽어옵니다. 결과값 줌 배율은 숫자로 반환됩니다.
예)
|
|
zoomLevel 출력 예입니다. |
|
|
|
setZoomLevel( level:줌 배율 ) |
|
캔버스의 확대/축소 줌배율을 설정합니다. level(줌 배율)은 숫자로 입력합니다.
예)
|
|
버튼에 스크립트 setZoomLevel 기능 사용 예입니다. |
|
|
|
fitInScreen() |
|
캔버스창을 도면 전체 화면이 보일 수 있도록 PowerScene 창 크기에 맞춥니다. 예)
|
|
fitInScreen 기능 사용 예입니다. |
|
|
|
pyShape selectedObject() |
|
사용자가 선택한 그래픽 개체를 얻어옵니다. 예)
|
|
사용자가 선택한 개체의 Text 정보 출력 화면입니다. |
|
|
|
saveScreen( location:스크린샷을 저장할 폴더 경로 ) |
|
현재 캔버스 화면을 캡쳐하여 지정된 경로에 저장합니다.
예)
|
|
'c:\'경로에 캔버스 현재 화면을 저장한 결과입니다. |
|
저장된 이미지를 불러온 결과입니다. |
|
list[str] getAllObjectNames() |
|
캔버스 내에 있는 모든 그래픽 개체 명을 취득합니다. 예)
|
|
getAllObjectNames 호출 결과입니다. |
|
|
|
|
|
특정 layer에 속한 모든 그래픽 개체 명을 취득합니다. 예)
|
|
getObjectNamesInLayer(‘사용량 분석’) 호출 결과입니다. |
|
|
showTopLevel() |
|
캔버스를 최상위로 표시합니다. 캔버스가 여러개 겹쳐져 있을 때 showTopLevel 기능을 이용하면 다른 캔버스 위에 표시합니다. 예)
|
|
PowerShape hoveredObject() |
|
현재 마우스가 올려진 개체를 읽어옵니다. 예)
|
|
PowerShape createObject( objectType:생성할 도형 타입 , layerName: 생성된 도형이 추가될 레이어 ) |
|||||||||||||||||||||||||||||||||||||||||||
그래픽 개체를 새로 만들어 입력한 레이어에 추가 합니다.
예)
|
|||||||||||||||||||||||||||||||||||||||||||
moveOnCurveAnimation( moveObj:움직일 그래픽 개체, targetObj:그래픽 개체, dir:지점, msec:시간, repeat:반복 횟수 ) |
|
moveOnCurveAnimation은 moveObj가 targetObj를 따라 이동하는 애니메이션입니다.
아래는 arrow 개체가 Line_1개체의 시작시점에서 끝지점으로 3초동안 움직이는 예시입니다. 예)
|
|
|
|
|
캔버스 표시모드가 '윈도우 창 띄우기', '팝업' 인 캔버스가 닫힐 때까지 대기합니다. 아래는 추가버튼을 눌러 띄운 사용자 팝업에서 사용자를 추가한 후 사용자 목록을 갱신하는 예시입니다. 예)
|
|
추가 버튼을 눌러 사용자 추가 팝업을 띄우면 waitForClose() 에서 팝업 종료까지 대기합니다. 사용자 정보 입력 후 확인을 눌러 팝업이 닫히면 다음 스크립트인 updateUserList() 가 실행됩니다. |
scrollAnimation( name:그래픽 개체 이름, dir:방향, msec:애니메이션 시간 ) |
|
문자 그래픽 개체의 문자를 스크롤합니다. (문자 그래픽 개체에만 동작합니다.)
예)
|
|
문자 그래픽 개체의 문자가 오른쪽에서 왼쪽으로 스크롤됩니다.
|
setCurrentLogDate( name/nameList:그래픽 개체 이름, year:년, month:월, day:일, hour:시간 ) |
|
그래픽 개체에 이력 데이터 표시가 링크되어 있는 경우 사용하실 수 있으며 그래픽 개체에 링크된 이력 날짜의 기준 시간을 설정합니다.
예) 그래픽 개체의 이력 날짜 기준 시간을 2022년 3월 5일 0시로 설정합니다.
|
|
그래픽 개체에 2022년 3월 5일 0시부터 2022년 3월 6일 0시까지의 데이터가 합산되어 표시됩니다. |