gmsh를 이용한 Meshing..

자.. 우선 gmsh 의 입력 geometry를 작성..

이건 cube 형태의 geometry..

//test.geo
Point(1) = {1, 0, 0, 1.0};
Point(2) = {1, 1, 0, 1.0};
Point(3) = {0, 1, 0, 1.0};
Point(4) = {0, 0, 1, 1.0};
Point(5) = {1, 0, 1, 1.0};
Point(6) = {1, 1, 1, 1.0};
Point(7) = {0, 1, 1, 1.0};
Point(8) = {0, 0, 0, 1.0};
Line(1) = {7, 6};
Line(2) = {6, 5};
Line(3) = {5, 1};
Line(4) = {1, 8};
Line(5) = {8, 3};
Line(6) = {3, 7};
Line(7) = {7, 4};
Line(8) = {4, 8};
Line(9) = {4, 5};
Line(10) = {2, 1};
Line(11) = {2, 6};
Line(12) = {2, 3};
Line Loop(1) = {6, 1, -11, 12};
Plane Surface(1) = {1};
Line Loop(2) = {11, 2, 3, -10};
Plane Surface(2) = {2};
Line Loop(3) = {2, -9, -7, 1};
Plane Surface(3) = {-3};
Line Loop(4) = {6, 7, 8, 5};
Plane Surface(4) = {-4};
Line Loop(5) = {8, -4, -3, -9};
Plane Surface(5) = {5};
Line Loop(6) = {10, 4, 5, -12};
Plane Surface(6) = {6};
Physical Surface(1) = {4, 3, 2, 6};
Physical Surface(2) = {1};
Physical Surface(3) = {5};
Surface Loop(1) = {6, 2, 1, 4, 3, 5};
Volume(1) = {1};

이제 gmsh 옵션으로.. 2d (-2), 알고리즘은 meshadapt를.. 아웃풋 포맷은 LsDyna의 key 포맷으로..
요소 최소/최대 사이즈를 지정하면..

gmsh.exe test.geo -2 -algo meshadapt -o test.key -format key -clmin 0.01 -clmax 0.05
...
Info    : Meshing 2D...
Info    : Meshing surface 1 (Plane, Frontal Quad)
Info    : Meshing surface 2 (Plane, Frontal Quad)
Info    : Meshing surface 3 (Plane, Frontal Quad)
Info    : Meshing surface 4 (Plane, Frontal Quad)
Info    : Meshing surface 5 (Plane, Frontal Quad)
Info    : Meshing surface 6 (Plane, Frontal Quad)
Info    : Done meshing 2D (0.109375 s)
Info    : 2402 nodes 5048 elements
Info    : Writing 'test.key'...
Info    : Done writing 'test.key'

짜잔~

요렇게 생성이 됨.

자.. 이제 quad 메싱은 맨 위의 입력 geom 파일 끝 줄에 아래를 추가..

Recombine Surface "*";

다음.. 아래와 같이..하고 algorithm은 delquad를 사용하여 매싱을 하면..

gmsh.exe test.geo -2 -algo delquad -o test.key -format key -clmin 0.01 -clmax 0.05
...
Info    : Meshing surface 6 (Plane, Frontal Quad)
Info    : Blossom: 1160 internal 76 closed
Info    : Blossom recombination completed (0 s): 400 quads, 0 triangles, 0 invalid quads, 0 quads with Q < 0.1, avg Q = 1, min Q = 1
Info    : Done meshing 2D (0.09375 s)
Info    : 2402 nodes 2648 elements
Info    : Writing 'test.key'...
Info    : Done writing 'test.key'

오… 꽤 쓸만함..

근데.. 문제는 gmsh의 경우 tria + quad 의 mixed 는 안된다고함..
단 한 surface는 tria를.. 다른 surface는 quad 는 가능함..

무슨 말이냐하면.. 아래와 같이 특정 1번 surface만 recombine을 적용하면..

//Recombine Surface "*";
Recombine Surface{1};

한면만 quad로 meshing이된다..

다음 tetra 는 직접 step 캐드 파일로부터 해봄..
다음과 같은 test.step 파일이 있을때..

아래와 같이 geom 파일을 작성하고..

// stl2msh.geo
Merge "test.step";
Surface Loop(1) = 1;
Volume(1) = 1;
Physical Volume("obj") = {1};

//Mesh.Algorithm3D = 4; //(1=tetgen, 4=netgen, 7=MMG3D, 9=R-tree)
Mesh.Recombine3DAll=1;
Mesh.Smoothing=0;
Mesh.Optimize=1;
Mesh.OptimizeNetgen=1;

gmsh를 아래와 같이 돌리면..

gmsh.exe stl2msh.geo -3 -o test.key -format key -clmax 1.0 -clmin 0.1

짜잔.. 잘 된것 같은데.. 문제는 형상이 몇개 빠진듯.. -_-;;
암튼.. 메시 사이즈를 0.4 정도로 주고 다시 해보면..

잘되는듯하다..

gmsh의 경우 hexa가 안되는게 제일 문제..

종합해보면..

1. quad, tria 지원 (mixed 미지원)
2. tetra 지원
3. hexa 미지원

아래는 각 메시 라이브러리별 지원 항목..

크롬 확장 프로그램 설치된 폴더

%LOCALAPPDATA%\Google\Chrome\User Data\Default\Extensions\

가끔 크롬이 설치된 확장 프로그램으로 인하여..
부러우저 띄울때 “확장이 다운되었습니다?” 라는 문구를 내뱉으면서..
안되는 경우가 있는데.. 깔끔하게 저 폴더내의 모든 폴더들을 다 지워준다..
확장 프로그램이야 다시 깔면되고..

XMODEM, YMODEM, ZMODEM 프로토콜을 이용한 파일 전송 윈도우즈 프로그램

출처: http://www.extraputty.com/features/zmodem.html

sz_tz_zmodem.zip

1990년대 PC통신에 접속해서 파일 업/다운로드 시에 사용된 프로토콜인
XMODEM, YMODEM, ZMODEM 이용한 파일 송/수신 윈도우즈용 프로그램.

C:\Users\user>C:\Temp\rz.exe -help
C:\Temp\rz.exe version
Usage: C:\Temp\rz.exe [options] [filename.if.xmodem]
Receive files with ZMODEM/YMODEM/XMODEM protocol
    (X) = option applies to XMODEM only
    (Y) = option applies to YMODEM only
    (Z) = option applies to ZMODEM only
  -+, --append                append to existing files
  -a, --ascii                 ASCII transfer (change CR/LF to LF)
  -b, --binary                binary transfer
  -B, --bufsize N             buffer N bytes (N==auto: buffer whole file)
  -c, --with-crc              Use 16 bit CRC (X)
  -C, --allow-remote-commands allow execution of remote commands (Z)
  -D, --null                  write all received data to /dev/null
      --delay-startup N       sleep N seconds before doing anything
  -e, --escape                Escape control characters (Z)
  -E, --rename                rename any files already existing
      --errors N              generate CRC error every N bytes (debugging)
  -h, --help                  Help, print this usage message
  -m, --min-bps N             stop transmission if BPS below N
  -M, --min-bps-time N          for at least N seconds (default: 120)
  -O, --disable-timeouts      disable timeout code, wait forever for data
      --o-sync                open output file(s) in synchronous write mode
  -p, --protect               protect existing files
  -q, --quiet                 quiet, no progress reports
  -r, --resume                try to resume interrupted file transfer (Z)
  -R, --restricted            restricted, more secure mode
  -s, --stop-at {HH:MM|+N}    stop transmission at HH:MM or in N seconds
  -S, --timesync              request remote time (twice: set local time)
      --syslog[=off]          turn syslog on or off, if possible
  -t, --timeout N             set timeout to N tenths of a second
  -u, --keep-uppercase        keep upper case filenames
  -U, --unrestrict            disable restricted mode (if allowed to)
  -v, --verbose               be verbose, provide debugging information
  -w, --windowsize N          Window is N bytes (Z)
  -X  --xmodem                use XMODEM protocol
  -y, --overwrite             Yes, clobber existing file if any
      --ymodem                use YMODEM protocol
  -Z, --zmodem                use ZMODEM protocol

msys – tput 함수 구현

msys2에는.. tput이 있으나.. msys에는 없다..
아래와 같이.. /etc/proflile 파일에 넣어두고..

if ! which tput 2> /dev/null ; then
	tput () {
		case "$1" in
			bold)
				echo -ne "\033[1m" ;;
			setaf)
				echo -ne "\033[0;3$2m" ;;
			sgr0)
				echo -ne "\033(\033[m" ;;
		esac
	}
fi

아래와 같이 프롬프트를 셋팅해본다..

export PS1="\[\e]0;$(gcc -dumpmachine) $(gcc -dumpversion) : \w\a\]\n\[$(tput bold)\]\[$(tput setaf 1)\][\[$(tput setaf 3)\]\u\[$(tput setaf 2)\]@\[$(tput setaf 4)\]\h \[$(tput setaf 5)\]\W\[$(tput setaf 1)\]]\[$(tput setaf 7)\]\\$ \[$(tput sgr0)\]"

아래와 같이 나온다..

tput

Pydio 설치

설치형 오픈소스 웹하드 프로그램 Pydio 설치방법..
아파치/PHP/MySQL이 설치되어있어야함.

PHP 업로드 용량 변경

% vim /etc/php.ini
upload_max_filesize = 10G
post_max_size = 10G

MySQL 디비 생성

% mysql -u root -p
# in mode mysql>_
% create database pydio
% create user pydio@localhost identified by '패스워드'
% grant all privileges on pydio.* to pydio@localhost identified by '패스워드' with grant option

다운로드 및 설치

% wget http://jaist.dl.sourceforge.net/project/ajaxplorer/pydio/stable-channel/6.0.6/pydio-core-6.0.6.tar.gz
% su
% mv pydio-core-6.0.6.tar.gz /var/www/html
% tar xvfz pydio-core-6.0.6.tar.gz
% mv pydio-core-6.0.6 pydio
% cd pydio
% chmod -R 777 data

httpd.conf 수정

# 아래를 추가
% vim /etc/httpd/conf/httpd.conf
<Directory "/var/www/html/pydio">
       AllowOverride All
</Directory>

웹부라우저로 접속하여 설치

http://127.0.0.1/pydio/ 

데이타 저장소 변경하는 방법

% vim /var/www/html/pydio/conf/bootstrap_repositories.php
"PATH"                        =>      "AJXP_DATA_PATH/personal/AJXP_USER",
를 아래와 같이 변경 (AJXP_USER를 유지 해야함)
"PATH"                  =>      "/home/pydio/personal/AJXP_USER",

다음 사용자 저장소 폴더를 지정한 폴더로 이동

% cd /home
% mkdir pydio
% cd pydio
% cp -rp /var/www/html/pydio/data/personal .

pydio

SMTP 서버를 통해 메일 보내는 커맨드 라인 프로그램

SMTP 서버를 통해 메일을 보내는 커맨드 라인 기반 프로그램.
NSIS에 내장하면 좋을것 같음.

http://code.google.com/p/mailsend/

아래는 gmail 을 통한 메일 보내는 예제.

mailsend.exe -to %1 -from %2 -sub "test from windows" -starttls -port 587 -auth -smtp smtp.gmail.com -user "%2" -pass %SMTP_USER_PASS% -M "hello one liner" -log "c:\mailsend.log"

실제 테스트 해보니 아주~~ 잘간다.

다운로드: mailsend1.17b14.7z (소스/Win32 바이너리 포함)

PTPDrive

index09

The PTPdrive allows digital cameras operating in PTP mode to be mapped to a local drive letter in the Microsoft Windows.

그니까 카메라로 찍은 사진들을 받기 위해 PC에 USB로 연결하면..
USB 메모리처럼 드라이브로 매핑시켜 접근이 가능케하는 프로그램.
단.. 돈이 든다. 트라이얼 버전은 30장만 전송 가능. 더 많은 사진을 전송하려면 컴퓨터를 껏다켜야함.

http://ptpdrive.com/