'AIDLINE'에 해당되는 글 1건

  1. 2021.02.17 AM, PDMS LINE OBJECT

AM, PDMS LINE OBJECT

AM, PDMS PML 2021. 2. 17. 21:21

LINE OBJECT

 

!pos = array()
!line = object line()
!dir = object direction()

var sctnlist collect all sctn for ce

do !s index !sctnlist
	-- 시작점과 끝점을 저장
	!poss = poss of $!sctnlist[$!s] wrt /*
	!pose = pose of $!sctnlist[$!s] wrt /*
	!pos.append(!poss)
	!pos.append(!pose)
	
	!linetemp = object line(!poss, !pose)
	!linedir = !linetemp.direction()
    
	-- aid number, line type ( 1:solid, 2:dashed, 3:dotted ), color 지정
	!linetemp.draw(101,1,7)
    
	-- DIR 비교
	if !dir.unset() then
		!dir = !linedir
	else
		-- 두개의 방향이 같으면 1, 직각이면 0, 반대면 -1
		!dirchk = !dir.dot(!linedir)
		handle any
		endhandle
		-- 다음 sctn 방향과 비교하기 위해 저장
		!dir = !linedir
	endif
    
	-- LINE 합치기
	if !line.unset() then
		!line = !linetemp
	else
		!line = !line.union(!linetemp)
		handle any
		endhandle
	endif
    
	-- 연장선상에 있는지 확인
	if !s.gt(1) then
		-- LINE 선상에서 POS와 가장 가까운 위치
		!nearposs = !line.near(!poss)
		if !poss.eq(!nearposs) then
			$p >>> poss ok
		endif
		
		!nearpose= !line.near(!pose)
		if !pose.eq(!nearpose) then
			$p >>> pose ok
		endif
	endif
enddo

-- POS 중 큰값과 작은값 사이의 거리
!posmax = !pos[!pos.sortedindices().last()]
!posmin = !pos[!pos.sortedindices().first()]
!dist = !posmax.distance(!posmin)

참고 : https://section.cafe.naver.com/

'AM, PDMS PML' 카테고리의 다른 글

AM, PDMS CE VOLUME CHECK  (0) 2021.05.10
AM, PDMS SESSION으로 HISTORY 보기  (0) 2021.02.25
AM, PDMS MARINE DRAFTING에서 DWG OPEN  (0) 2021.02.02
AM, PDMS REPORT  (0) 2021.01.06
AM, PDMS 명령어  (1) 2021.01.05
Posted by agape93
,