1. 처음 실행화면에서 메뉴 사이를 오른쪽 클릭하면, 아래와 같이 Split Area 란 메뉴가 나타난다.
2. 아래를 클릭해서 Split을 하면 세로로 잘라지게 되는데, 자를 선의 위치를 정해준다.
3. 쪼개진 화면, 자르는 화면의 동일한 View를 사용한다.
4. 이제는 아래가 아닌 우측에 오른쪽 클릭을 해본다. 아까와 마찬가지로 Split Area를 선택한다.
5. 아까와는 다르게 수평으로 선택선이 나타나고 자를 위치를 골라서 클릭한다.
6. 수평으로 잘려져서 총 3등분 된 화면이다.
6. 가장 큰 화면을 한번 카메라 시점으로 돌려보자.
원하는 분할된 윈도우의 메뉴에서 View를 선택하고 Camera - Camera(Active)를 누른다.
Python 없이 실행이 되는지 실험할 겸 설치한 Blender인데
환경설정 잡아보고 이것저것 누르다 보니 대충은 사용법을 익힌 듯 하다.
1. 기본 화면에서 Split을 해서 Top / Front / Side / Camera로 설정한 화면
2. 위에 설정대로 렌더링 한 화면
은근히 스플릿 하는 것도 영역이 좁아서 힘들고, 이렇다 할 offline 매뉴얼이 없어서
이것저것 누르다 보니 대충 만들어 진 영상이지만, 설치 프로그램 9MB에 이정도면 훌륭하다라는 느낌이 든다.
3dmax를 어둠의 경로로 구해서 배우고는 싶지만, 이걸 한번 파보고 싶기도 하고 ^^;
그 외에 시스템 요구 사항은 python을 요구 한다는 점이다.
설치를 완료하고 시작 직전까지 python에 대한 언급이 없다가 실행 직전에나 출력해주는 센스는 조금 부뤡하지만
interpreter 기반의 언어인 python에서 이런 툴이 나온다는 사실이 참으로 놀랍기도 하다.
2009/01/08 Blender 2.48a 버전기준으로 대략 9MB(인스톨러)
2009/01/08 python 3.0 버전이 최신이며 대략 13MB(인스톨러)
python을 필요로 하므로 python 자체용량이 추가 된다.
[python : http://python.org/]
[wxpyhon : http://www.wxpython.org/]
추가 사항
9MB 짜리 인스톨러 만있어도 실행하는데 지장은 없지만 스크립트에 있어서 문제가 생길 수 있다는 경고 메시지가 출력되었다.
테스트 한 pc에는 python 조차도 설치 되어 있지 않지만 실행되는데 아무런 이상이 없다.
물론 wxPython 역시 설치할 필요가 없다.
Blender 설치화면
인스톨 화면은 평범하다.
항상 그러하 듯, 다음 다음 다음 확인을 누르면 설치가 완료 된다.
문제의 메시지. Python이 필요 하다고 출력하고(이전에는 어떠한 메시지도 없더니)
확인을 누르면 무조건 python.org 홈페이지를 연다. 그리고는 설치 하지 않으면 실행도 안된다.
python이 설치 되어 있다면 바로 실행되지만, python이 없다면 아마 에러가 발생 할 것이다.
ctags는 말 그대로 c 언어 파일의 keyword, identifier를 출력해 주는 툴이다.
ctags -R
을 실행하면 tags라는 파일이 생성이 된다.
source code [test.c]
command [ctags test.c]
file [tags]
!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
!_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/
!_TAG_PROGRAM_NAME Exuberant Ctags //
!_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/
!_TAG_PROGRAM_VERSION 5.4 //
CHARLEY test.c /^ CHARLEY,$/;" e file:
FALSE test.c /^ FALSE$/;" e file:
LINDA test.c /^ LINDA$/;" e file:
TOM test.c /^ TOM,$/;" e file:
TRUE test.c /^ TRUE,$/;" e file:
WIN32_VERSION test.c 3;" d file:
boolean test.c /^} boolean;$/;" t file:
main test.c /^int main(int argc,char argv**)$/;" f
test_int test.c /^int test_int;$/;" v
test_int_static test.c /^static int test_int_static;$/;" v file:
command [ctags -n -u test.c]
file [tags]
!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED 0 /0=unsorted, 1=sorted, 2=foldcase/
!_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/
!_TAG_PROGRAM_NAME Exuberant Ctags //
!_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/
!_TAG_PROGRAM_VERSION 5.4 //
WIN32_VERSION test.c 3;" d file:
test_int_static test.c 5;" v file:
test_int test.c 6;" v
TRUE test.c 10;" e file:
FALSE test.c 11;" e file:
boolean test.c 12;" t file:
TOM test.c 16;" e file:
CHARLEY test.c 17;" e file:
LINDA test.c 18;" e file:
main test.c 21;" f
Wikipedia의 ctags file format 에 관련된 내용
Tags file formats
There are multiple tag file formats. Some of them are described below. In the
following, <\x##> represents the byte with hexadecimal representation
##.
Ctags and Exuberant Ctags
The original ctags and Exuberant Ctags have similar file
formats:[2]
Ctags
This is the format used by vi and various clones. The tags file is
normally named "tags".
The tags file is a list of lines, each line in the format:
{tagname}<Tab>{tagfile}<Tab>{tagaddress}
The fields are specified as follows:
{tagname} – Any identifier, not containing white space
<Tab> – Exactly one tab
character, although many versions of vi can handle any amount of white
space
{tagfile} – The name of the file where {tagname} is defined, relative to the
current directory
{tagaddress} – An ex mode command that will take the editor to the
location of the tag. For POSIX implementations of vi this may only be a
search or a line number.
The tags file is sorted on the {tagname} field which allows for fast
searching of the tags file.
Exuberant Ctags
This is the format used by Vim. It can generate an original ctags
file format or an extended format that attempts to retain backward
compatibility.
The fields up to and including {tagaddress} are the same as for ctags above.
Optional additional fields:
;" – semicolon + doublequote: Ends the {tagaddress} in way that looks like
the start of a comment to vi.
{tagfield}
Extended format extends the {tagaddress} field under certain circumstances to
include a set of extension fields embedded in an ex comment immediately appended
to the ex command, which leaves it backward-compatible with original vi
implementations. These extension fields are tab separated "key:value" pairs,
documented in the ctags
manual.
Etags
This is the format used by Emacs etags. The tags file is normally
named "TAGS".
The etags files consists of multiple sections—one section per input source
file. Sections are plain-text with several non-ascii characters used for special
purposes. These characters are represented as bracketed hexadecimal codes
below.
A section starts with a two line header, one line containing a single
<\x0c> character, followed by a line which consists of:
{src_file},{size_of_tag_definition_data_in_bytes}
The header is followed by tag definitions, one definition per line, with the
format:
-a Append the tags to an existing tag file.
-B Use backward searching patterns (?...?).
-e Output tag file for use with Emacs.
-f <name>
Write tags to specified file. Value of "-" writes tags to stdout
["tags"; or "TAGS" when -e supplied].
-F Use forward searching patterns (/.../) (default).
-h <list>
Specify list of file extensions to be treated as include files.
[".h.H.hh.hpp.hxx.h++"].
-I <list|@file>
A list of tokens to be specially handled is read from either the
command line or the specified file.
-L <file>
A list of source file names are read from the specified file.
If specified as "-", then standard input is read. -n Equivalent to --excmd=number.
-N Equivalent to --excmd=pattern.
-o Alternative for -f. -R Equivalent to --recurse. -u Equivalent to --sort=no.
-V Equivalent to --verbose.
-x Print a tabular cross reference file to standard output.
--append=[yes|no]
Should tags should be appended to existing tag file [no]?
--etags-include=file
Include reference to 'file' in Emacs-style tag file (requires -e).
--exclude=pattern
Exclude files and directories matching 'pattern'.
--excmd=number|pattern|mix
Uses the specified type of EX command to locate tags [mix].
--extra=[+|-]flags
Include extra tag entries for selected information (flags: "fq").
--fields=[+|-]flags
Include selected extension fields (flags: "afmikKlnsSz") [fks].
--file-scope=[yes|no]
Should tags scoped only for a single file (e.g. "static" tags
be included in the output [yes]?
--filter=[yes|no]
Behave as a filter, reading file names from standard input and
writing tags to standard output [no].
--filter-terminator=string
Specify string to print to stdout following the tags for each file
parsed when --filter is enabled.
--format=level
Force output of specified tag file format [2].
--help
Print this option summary.
--if0=[yes|no]
Should C code within #if 0 conditional branches be parsed [no]?
--langdef=name
Define a new language to be parsed with regular expressions.
--langmap=map(s)
Override default mapping of language to source file extension.
--language-force=language
Force all files to be interpreated with specified language.
--languages=[+|-]list
Restrict files scanned for tags to those mapped to langauges
specified in the comma-separated 'list'. The list can contain any
built-in or user-defined language [all].
--license
Print details of software license.
--line-directives=[yes|no]
Should #line directives be processed [no]?
--links=[yes|no]
Indicate whether symbolic links should be followed [yes].
--options=file
Specify file from which command line options should be read.
--recurse=[yes|no]
Recurse into directories supplied on command line [no].
--sort=[yes|no|foldcase]
Should tags be sorted (optionally ignoring case) [yes]?.
--tag-relative=[yes|no]
Should paths be relative to location of tag file [no; yes when -e]?
--totals=[yes|no]
Print statistics about source and tag files [no].
--verbose=[yes|no]
Enable verbose messages describing actions on each source file.
--version
Print version identifier to standard output.
The following options are used to specify which language-specific tag
types (or kinds) should be included in the tag file. "Kinds" is a group of
one-letter flags designating kinds of tags to either include or exclude from
the output. Each letter or group of letters may be preceded by either '+' to
add it to those already included, or '-' to exclude it from the output. In
the absence of any preceding '+' or '-' sign, only those kinds listed in
"kinds" will be included in the output. Below each option is a list of the
flags accepted. All kinds are enabled by default unless otherwise noted.
--asm-types=[+|-]kinds
d defines
l labels
m macros
t types
--asp-types=[+|-]kinds
f functions
s subroutines
--awk-types=[+|-]kinds
f functions
--beta-types=[+|-]kinds
f fragment definitions
p all patterns [off]
s slots (fragment uses)
v patterns (only virtual or rebound patterns are recorded)
--c-types=[+|-]kinds
c classes
d macro definitions
e enumerators (values inside an enumeration)
f function definitions
g enumeration names
m class, struct, and union members
n namespaces
p function prototypes [off]
s structure names
t typedefs
u union names
v variable definitions
x external variable declarations [off]
--c++-types=[+|-]kinds
c classes
d macro definitions
e enumerators (values inside an enumeration)
f function definitions
g enumeration names
m class, struct, and union members
n namespaces
p function prototypes [off]
s structure names
t typedefs
u union names
v variable definitions
x external variable declarations [off]
--eiffel-types=[+|-]kinds
c classes
f features
l local entities [off]
--fortran-types=[+|-]kinds
b block data
c common blocks
e entry points
f functions
i interfaces
k type components
l labels
L local and common block variables [off]
m modules
n namelists
p programs
s subroutines
t derived types
v module variables
--java-types=[+|-]kinds
c classes
f fields
i interfaces
m methods
p packages
--lisp-types=[+|-]kinds
f functions
--lua-types=[+|-]kinds
f functions
--make-types=[+|-]kinds
m macros
--pascal-types=[+|-]kinds
f functions
p procedures
--perl-types=[+|-]kinds
s subroutines
p packages
--php-types=[+|-]kinds
c classes
f functions
--python-types=[+|-]kinds
c classes
f functions
m class member
--ruby-types=[+|-]kinds
c classes
f methods
F singleton methods
m mixins
--scheme-types=[+|-]kinds
f functions
s sets
--sh-types=[+|-]kinds
f functions
--sql-types=[+|-]kinds
c cursors
d prototypes [off]
f functions
F record fields
l local variables [off]
P packages
p procedures
r records
s subtypes
t tables
T triggers
v variables
--tcl-types=[+|-]kinds
p procedures
c classes
f methods
--vera-types=[+|-]kinds
c classes
d macro definitions
e enumerators (values inside an enumeration)
f function definitions
g enumeration names
m class, struct, and union members
p programs
P function prototypes [off]
t tasks
T typedefs
v variable definitions
x external variable declarations [off]
--verilog-types=[+|-]kinds
f functions
m modules
P parameters, defines
p ports (input, output, inout)
r registers
t tasks
v variables (integer, real, time)
w wires (supply, tri, wire, wand, ...)
--vim-types=[+|-]kinds
f function definitions
v variable definitions