기본 콘텐츠로 건너뛰기

6월, 2010의 게시물 표시

Docking DialogBar 생성하기

간단한 Docking가능한 DialogBar를 생성하는 예제입니다. mdl source , dialog box에 관련된 resource file , icon resource file로 구성되어 있습니다. icon은 icon editor를 통해서 만들었습니다. /*----------------------------------------------------------------------+ | | | PDSPickPal.r | | | +----------------------------------------------------------------------*/ /*----------------------------------------------------------------------+ | | | Include Files | | | +----------------------------------------------------------------------*/ #include #include #include "dtoolcmd.h" #include "aDraw_PDSPick.h&quo

Nozzle Data dump

이 글은 Microstation에 관련되기 보다는 PDS에 관련된 글입니다. 제가 참여한 PlantWAVE에서는 nozzle data를 database에서 구해와 도면에 뿌려주게 됩니다. 모델러들이 nozzle을 모델링을 하게 된다면 nozzle에 대한 정보가 파일에만 저장이 되고, database에는 저장이 되지 않습니다. 그래서 부득이하게 PlantWAVE에서 nozzle data를 뿌려주기 위해서는 PDSShell을 실행 한후에 Load Design Database를 실행해 주어야 합니다.

256 색상 Bitmap 파일 쓰기

가끔씩 그래픽 데이터를 파일로 저장할 필요가 있는데, 기존의 알려진 Graphic Library를 사용할려니 약간 부담이 될때 간단히 사용할수 있도록 256 색상의 BMP 파일로 저장하는 루틴입니다. typedef unsigned char pix_type; typedef struct { int x; int y; int width; /* Horizontal width of image in pixels */ int height; /* Vertical height of image in pixels (also number of rows) */ unsigned long bufsize,indexsize; pix_type *data; /* Image data, 1 byte per pixel, in large row-major block */ pix_type **image; /* Array of pointers to beginning of each data row */ }image_type; typedef struct { char rgbBlue; /* 파란색 성분 */ char rgbGreen; char rgbRed; char rgbReserved; }rgb_quad; int write_bmp_file(char *fname,image_type *pimg,rgb_quad* palette) { assert(palette && "palette is NULL"); if(palette) { bmp_file_header bmfHeader; bmp_info_header bmiHeader; rgb_quad bmpRGB; FILE *fp; if((fp = fopen

GetInputDataPoint

사용자 입력 데이터 포인터를 구해 파일로 저장하는 매크로 입니다. Sub main Dim point1 as MbePoint Dim stat as Integer Dim view as Integer Dim ass as String MbeState.messages = 0 Call MbeWritePrompt ("Select input data point") ' wait for data or reset Call MbeGetInput (MBE_DataPointInput, MBE_ResetInput) if MBE_Success = MbeState.getInputDataPoint (point1, view) then ass = Format$(point1.x , "#0.0#") & "," & Format$(point1.y , "#0.0#") & "," & Format$(point1.z , "#0.0#") Open "c:\inputdatapoint.dat" For Output Access Write Lock Write As #1 Write #1,ass Close end if Call MbeWritePrompt ("finished") End Sub

BrandingText

BrandingText란 인스톨시 아래의 그림과 같이 하단에 보이는 텍스트를 말합니다. BrandingText - 사람 중심의 기술을 지원하는..."

[Python] 이진 파일 읽고 쓰기

아래는 이진 파일을 쓰는 파이썬 코드와 실행하는 방법입니다. #! -*- Encoding: Latin-1 -*- import sys if __name__ == '__main__': if 4 == len(sys.argv): print 'file name = ' + str(sys.argv[1]) print 'offset = ' + str(sys.argv[2]) print 'string = ' + str(sys.argv[3]) f = open(sys.argv[1] , 'rb+') # 이진 파일 읽고 쓰기로 엽니다. f.seek(int(sys.argv[2]),1) # 파일의 현 위치에서 주어진 값 만큼 이동합니다.(양의 값이면 앞으로, 음의 값이면 뒤로) f.write(sys.argv[3]) # 파일에 문자열을 씁니다. f.close() # 파일을 닫습니다. 2011.02.23 : NULL값으로 패딩 주어진 문자열의 길이가 설정된 길이 보다 작을 때 그 나머지 값에 NULL을 채워 파일에 적기. str = sys.argv[3] if len(str) < 10: padding = '\0'*(10 - len(str)) # 정말 아름다운 코드입니다.^^ str = str + padding f.write(str) 또한  struct 모듈 을 이용하여 데이타를 팩킹하여 저장 혹은 언팩킹하여 읽을 수 있습니다. import struct try: file.write(struct.pack('I', idx)) # unsigned int 데이터 저장 data = struct.pack('ffff', self.color[0], self.color[1], self.color[2], 1) # 4개의 float 데이터 저장 file.wri

VC에서 VB DLL 호출하기

원본 따라가기 : http://alexk.springnote.com/pages/2954834 제일 밑의 <추가> 부분이 제가 VB를 사용하는 이유입니다. VB DLL은 액티브엑스 방식이어서 일반 VC에서 사용하는 DLL호출방법은 쓸 수가 없습니다. 여기 VB DLL을 불러서 사용하는 괜찮은 방법을 소개할 까 합니다. 제가 지금 사용중인데 매우 잘 돌아갑니 다. 1. VB으로 MurickCom이라는 프로젝트에 clsMurick라는 클래스를 만들어서 함수를 등록시킵니다. 2. 주의사항은 될 수 있는데로 함수에서 사용하는 리턴형과 아규먼트의 타입을 정확히 기재합니다.이것을 안해주게 되면 나중에 C에서 Variant라는 잡변수형태로 나타나게 됩니다. 이거 처리하는거 어렵습니다. 예를 들어 Public Function CountStringLength(ByVal strValue As String) As Long If strValue = vbNullString Then CountStringLength = 0 Else CountStringLength = Len(strValue) End If End Function 라고 합니다. 3. DLL을 만듭니다. 예를 들어 C:\Murick에 만들었다고 가정하지요. File -> Make MurickCom.dll 4. 그리고 Visual Studio 6.0 폴더에 Visual Studio 6.0 도구들이라고 있습니다. 여기에 OLEViewer라고 있습니다. 요놈을 클릭하면 어플리케이션이 나타나는데 좌측 트리에 Type Libraries를 더블클릭합니다. 그밑으로 현재 사용중인 OLE의 DLL파일들이 좌악 나타나지요. 제목으로 방금 만든 MurickCom.dll을 찾습니다. 만약 외부에서 만든 dll이면 시작 메뉴 -> 실행 -> regsvr32 경로\~.dll 엔터를 치시면 등록됩니다. 5