- 방음벽을 횡단에서 추가하는 경우
- 사용자가 drag&drop으로 방음벽을 추가한다.
- 방음벽 객체를 생성한다.
- CAlignSubsidiaryMng::AddNoiseBarrierOnCrossSection
- 방음벽 설치 위치를 결정한다.
- CHgAlignStructurePosData 를 생성한다.
- 방음벽 객체를 생성한다.
- 방음벽을 횡단에 표시한다.
- 좌표 계산
- parameter 설정
- 좌표 계산
- 방음벽을 그린다.
2018년 1월 21일 일요일
부대시설물 입력과 출력
설계기준 적용 방법
- 설계기준과 관련된 파일 목록
- Alignment_Symbol.dwg
- HgAlignmentEntityConfig.xml
- RoadEquipmentStandard2013.hdb
- SuperelevationByRadiusCurvature.hdb
- 디렉토리 구조
- 설계기준 종류
- DesignStandard 에 있는 폴더명들이 설계기준리스트가 됨
Grid 입출력을 Station 옵션에 맞춰서 하기
- m_Grid에 station 옵션을 설정
- m_Grid.SetStationFormatText(HgAlignmentEntity_GetStationFormatText(m_pHg3DData))
- 해당 cell을 station 타입으로 설정
- m_Grid.AddCell(row, col++, pVip->GetStationRef(), nFormat, nLineRealForSta, NOTRANS(""), CELL_TYPE_STATION);
- 끝!
Object style 추가 방법
- 심볼 추가
- style이 심볼을 포함하는 경우에 해당 심볼파일 추가한다.
- 예) HgAlignmentEntity 는 HgAlignmentSymbol.dwg
- System style 추가
- 환경설정파일에 system style을 추가한다.
- 예) HgAlignmentEntityConfig.xml
- Object style 추가
- object style은 객체별로 등록해야 한다.
- 추가된 Object style이 연관되어 있는 객체에 style의 path명을 등록한다.
- 예) CAlignEttHorizontalAlignment::SetHorStylePath
BimRoad 패치 절차
- Update List 작성
- BimRoad/Patch/AS내용관리시스템(BimRoad).xls 파일 수정
- 버전 정보 수정
- BimRoad/Include/versionNumber.inc 파일 수정
- 베타 패치 실행
- 베타 패치 테스트
- 정식 패치 실행
- Setup 파일을 구글 드라이브에 업로드
- Setup 파일
- Win32 : \\192.168.0.5\BimRoad_v2_Install\WIN32
- Win64 : \\192.168.0.5\BimRoad_v2_Install\WIN64
- BimRoad 블로그에 Update list 작성
- http://bimroad.blogspot.kr/
두 선형의 교점 찾기
- GetStationMatchAlignment
- parameter
- const HGBOOL &bFast : TRUE - 빠른 검색을 한다.(모호한 상황에서 안 찾아 질 수 있다)
xy좌표로 Sta을 찾을 때 dRefSta에 가장 가까운 Sta을 찾기
- GetStaByXyAndRefSta()
- parameter
- const CDPoint &xyPos - 찾고자 하는 sta의 좌표
- const HGDOUBLE &dRefSta - 기준이 되는 sta
- HGDOUBLE &dStaRet - 결과 리턴값
- 램프일 경우 선형이 겹치기 때문에 좌표로 sta을 찾으면 가장가까운 좌표로 찾기 때문에 제대로 안가져오는 경우가 있음
치수를 마우스 클릭으로 입력하기
- Hg3DCad_PreviewInputDim
- 마우스 좌표에 걸리는 input dim을 highlight한다.
- Hg3DCad_CheckInputDim
- 마우스 좌표에 input dim이 있는지 검사해서 사용자에게 치수를 입력받고, 입력받은 값을 리턴한다.
- 일반 치수를 Input dim으로 만드는 방법
- CAlignEttGutterSection::DrawDim 함수 참조
- // 치수에 InputTag를 넣자.
- {
- pDim->CreateBimProperty();
- CHgBimProperty *pBimProp = pDim->GetBimProperty();
- if(pBimProp)
- {
- CHgValueBase value;
- value.SetValueString(strValue);
- pBimProp->AddItem(value, DIM_INPUT_TAG, TRUE);
- value.SetValueString(NOTRANS("MM"));;
- pBimProp->AddItem(value, DIM_INPUT_UNIT, TRUE);
- }
- }
객체를 다시 그리기
- CEttBase::Create()
- 객체를 다시 그린다.
- CHg3DData:Regen()
- 최적화 되지 않은 객체만 다시 그린다.
- CEttBase::Create() 그린 객체는 최적화 되지 않은 객체로 등록된다.
- 결국 동일한 객체를 2번 그린다.
- CHg3DData::AddUnOptimizedEtt()
- 객체를 최적화 되지 않은 객체로 등록한다.
CallBackManager
- 특정 동작후에 호출되어야 하는 함수를 Engine이 아닌 application 수준에서 정해줄 경우 사용한다.
- 현재 지원중인 callback
- SetCallBack_BeforeMoveEtt
- 객체가 Move되기 전에 호출되는 callback을 지정한다.
- SetCallBack_BeforeDeleteEtt
- 객체가 Delete되기 전에 호출되는 callback을 지정한다.
- SetCallBack_AfterCreateEtt
- 객체가 create된 후에 호출되는 callback을 지정한다.
- 사용예
- 특정 객체가 create된 후에 UI를 변경해야 하는 경우
- application 에서 UI를 변경하는 전역 함수를 만들고 SetCallBack_AfterCreateEtt에 해당 전역 함수를 등록한다.
- 필요한 동작에 대한 CallBack함수가 필요하면 CallBackManager에 직접 개발가능합니다.
반복문 안에서 hggettext 사용하지 말기
- hggettext 호출 비용이 큽니다.
- 반복문안에서는 호출하지 않도록 합니다.
- 반복문 밖에서 문자열을 미리 변수에 담아서 변수를 직접 사용하도록 합시다.
2018년 1월 19일 금요일
피드 구독하기:
글 (Atom)
부대시설물 입력과 출력
방음벽을 횡단에서 추가하는 경우 사용자가 drag&drop으로 방음벽을 추가한다. 방음벽 객체를 생성한다. CAlignSubsidiaryMng::AddNoiseBarrierOnCrossSection 방음벽 설치 ...
-
Hg3DCad_PreviewInputDim 마우스 좌표에 걸리는 input dim을 highlight한다. Hg3DCad_CheckInputDim 마우스 좌표에 input dim이 있는지 검사해서 사용자에게 치수를 입력받고,...
-
특정 동작후에 호출되어야 하는 함수를 Engine이 아닌 application 수준에서 정해줄 경우 사용한다. 현재 지원중인 callback SetCallBack_BeforeMoveEtt 객체가 Move되기 전에 호출되는 ca...
-
GetStationMatchAlignment parameter const HGBOOL &bFast : TRUE - 빠른 검색을 한다.(모호한 상황에서 안 찾아 질 수 있다)