﻿<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://wiki.blender.jp/index.php?action=history&amp;feed=atom&amp;title=Dev%3ASource%2FUI%2FCommand_Line</id>
	<title>Dev:Source/UI/Command Line - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.blender.jp/index.php?action=history&amp;feed=atom&amp;title=Dev%3ASource%2FUI%2FCommand_Line"/>
	<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=Dev:Source/UI/Command_Line&amp;action=history"/>
	<updated>2026-11-03T01:31:29Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://wiki.blender.jp/index.php?title=Dev:Source/UI/Command_Line&amp;diff=42348&amp;oldid=prev</id>
		<title>Yamyam: 1版 をインポートしました</title>
		<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=Dev:Source/UI/Command_Line&amp;diff=42348&amp;oldid=prev"/>
		<updated>2018-06-28T17:45:30Z</updated>

		<summary type="html">&lt;p&gt;1版 をインポートしました&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ja&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← 古い版&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;2018年6月28日 (木) 17:45時点における版&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;ja&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(相違点なし)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Yamyam</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.blender.jp/index.php?title=Dev:Source/UI/Command_Line&amp;diff=42347&amp;oldid=prev</id>
		<title>wiki&gt;Mindrones bot: Bot: Fixing redirects</title>
		<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=Dev:Source/UI/Command_Line&amp;diff=42347&amp;oldid=prev"/>
		<updated>2010-05-27T08:51:18Z</updated>

		<summary type="html">&lt;p&gt;Bot: Fixing redirects&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=CommandLine=&lt;br /&gt;
The purpose of this project is to add a whole new power to blender without removing anything which blender currently has. Old blender users will not notice any difference in blender interface, unless they wish to do so. &lt;br /&gt;
&lt;br /&gt;
==1. Introduction==&lt;br /&gt;
First thing to notice is that blender uses &amp;#039;&amp;#039;&amp;#039;fixed&amp;#039;&amp;#039;&amp;#039; keyboard mappings. Every _blender action_ is internally mapped in blender to some keyboard combination.&lt;br /&gt;
&lt;br /&gt;
Now, what will happen if we try to &amp;#039;&amp;#039;&amp;#039;unfix&amp;#039;&amp;#039;&amp;#039; keyboard mapping? First of all we should create a keyboard mapping file. By default it will contain default blender mappings.&lt;br /&gt;
&lt;br /&gt;
===1.1. Keyboard mappings===&lt;br /&gt;
Change the way that keyboard mappings are handled _internally_ by blender. Every _blender action_ must be given a descriptive name (this name becomes a _blender command_), then a key binding is defined in a way: [conditions] [key] [name_of_the_command], for example:&lt;br /&gt;
&lt;br /&gt;
 object_mode   g    grab_selection=&lt;br /&gt;
&lt;br /&gt;
Default key bindings will be the ones that blender currently has. Adding any new command to blender will require extending keybindigs.&lt;br /&gt;
&lt;br /&gt;
Commands added by writing user python scripts will be treated &amp;#039;&amp;#039;&amp;#039;equally&amp;#039;&amp;#039;&amp;#039; with _blender commands_. Thus can be assigned a keybinding.&lt;br /&gt;
&lt;br /&gt;
===1.2. Introduce a command line===&lt;br /&gt;
Upon user request a command line will appear and the user will be able to write commands there. Those commands will be just =[name_of_the_command]=. Also a shorter alias could be defined: =[alias] [name_of_the_command]=, for example:&lt;br /&gt;
&lt;br /&gt;
 alias         sn     popup_snap_menu&lt;br /&gt;
 alias         mov    grab_selection&lt;br /&gt;
&lt;br /&gt;
Because every _internal blender action_ can be invoked from command line (by typing _blender command_), it will be possible to write command scripts then feed them to command line. (two possible uses spark to my mind: 1. blender demos - a user launches demo script and watches blender doing everything step by step, 2. automated drawing of models without a GUI)&lt;br /&gt;
&lt;br /&gt;
==2. More details - rules for keyboard mapping==&lt;br /&gt;
===2.1. How =.Bkeymap= should look like?===&lt;br /&gt;
Here should be a full [[Dev:Source/UI/Default .Bkeymap file|DefaultBkeymap]] file (still under construction ;). Some excerpts are below:&lt;br /&gt;
&lt;br /&gt;
 mode             omod         object_mode&lt;br /&gt;
 mode             3win         3d_window&lt;br /&gt;
 mode             osel         object_is_selected&lt;br /&gt;
 mode             twin         text_edit_window&lt;br /&gt;
&lt;br /&gt;
 true             F1           load_file&lt;br /&gt;
 true             shift-S      popup_snap_menu&lt;br /&gt;
 omod,3win,osel   f            toggle_face_display&lt;br /&gt;
 twin             alt-shift-s  select_text_menu&lt;br /&gt;
&lt;br /&gt;
 alias            sn           popup_snap_menu&lt;br /&gt;
&lt;br /&gt;
(compare with [http://www.blender.org/modules/documentation/htmlII/x9650.html], &lt;br /&gt;
and with [http://www.blender.org/modules/documentation/htmlII/x10711.html])&lt;br /&gt;
 If a user accidentally destroys this file he would restore it by invoking a command eg. &amp;lt;pre&amp;gt;blender -k &amp;gt; .Bkeymap&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===2.2. Mapping _blender commands_===&lt;br /&gt;
Every mapping is in the form: [conditions] [key] [name_of_the_command], where [conditions] is a comma separated list of conditions. All of the conditions must be true for the mapping to take effect.&lt;br /&gt;
&lt;br /&gt;
===2.3. Declare =mode= for shorter mapping rules===&lt;br /&gt;
Writing:&lt;br /&gt;
&lt;br /&gt;
 text_edit_window  alt-shift-s  select_text_menu&lt;br /&gt;
&lt;br /&gt;
is a little too long, we will use =mode= command to add more modes:&lt;br /&gt;
&lt;br /&gt;
 mode              twin         text_edit_window&lt;br /&gt;
&lt;br /&gt;
now writing twin will be equal to writing text_edit_window, note that this is different than alias. The mode mapping has a scope of .Bkeymap file, while alias has a scope of command line. In fact alias is:&lt;br /&gt;
&lt;br /&gt;
 mode              alias        command_line_active&lt;br /&gt;
&lt;br /&gt;
Any _blender command_ that takes no parameters and returns a value can be mapped to mode and then can be used in [condition] rule.&lt;br /&gt;
&lt;br /&gt;
===2.3. Example mapping===&lt;br /&gt;
&lt;br /&gt;
 [conditions]     [key]        [name of command]&lt;br /&gt;
 omod,3win,osel   f            toggle_face_display&lt;br /&gt;
&lt;br /&gt;
means that &amp;#039;&amp;#039;&amp;#039;object mode&amp;#039;&amp;#039;&amp;#039; must be active, &amp;#039;&amp;#039;&amp;#039;3d window&amp;#039;&amp;#039;&amp;#039; must be active, and an &amp;#039;&amp;#039;&amp;#039;object must be selected&amp;#039;&amp;#039;&amp;#039;. This is exactly what is written in [http://www.blender.org/modules/documentation/htmlII/x9650.html]&lt;br /&gt;
&lt;br /&gt;
===2.4. Adding aliases===&lt;br /&gt;
For faster invocation of _blender commands_ (including invocation of python script commands written by users), we can use an =alias= mapping rule:&lt;br /&gt;
&lt;br /&gt;
 alias            mov            grab_selection&lt;br /&gt;
&lt;br /&gt;
This alias means, that everytime we write into command line =mov= and press =enter= the selection will be moved. In fact most users would prefer here =m= or =g=. Another example:&lt;br /&gt;
&lt;br /&gt;
 alias            space          enter&lt;br /&gt;
 alias            mouse_button_2 enter&lt;br /&gt;
&lt;br /&gt;
Now, those two seem a little confusing. For sure this is not the default blender behaviour. But this is the default behaviour for AutoCAD, and users of that program will be &amp;#039;&amp;#039;&amp;#039;very&amp;#039;&amp;#039;&amp;#039; happy to use those two aliases. It does following: if the command line is active  you could write a _blender command_ then press space or right mouse button to invoke it (note that this is an =alias= rule, and =alias= rules only take effect when command line is active).&lt;br /&gt;
&lt;br /&gt;
I hope this explanation is clear and you get the idea.&lt;br /&gt;
&lt;br /&gt;
==3. Overall benefits of Command Line==&lt;br /&gt;
&lt;br /&gt;
=====3.1. Old blender functionality kept=====&lt;br /&gt;
By introducing file =.Bkeymap= describing current blender behaviour the users will not notice any difference. They will work with blender the same way they did before. By pressing keyboard shortcuts.&lt;br /&gt;
=====3.2. Custom keyboard bindings=====&lt;br /&gt;
Users will be able to define custom keyboard mappings (like mapping =m= to =grab=)&lt;br /&gt;
=====3.3. Command Line=====&lt;br /&gt;
Now every command will have a name within blender. For example declare:&lt;br /&gt;
&lt;br /&gt;
 alias        sn                 popup_snap_menu&lt;br /&gt;
&lt;br /&gt;
and the user types a command: sn, and voila, snap menu appears! :)&lt;br /&gt;
&lt;br /&gt;
=====3.4. Easily mappable python scripts=====&lt;br /&gt;
All python scripts written for blender will have a name too. A name which will be treated &amp;#039;&amp;#039;&amp;#039;equally&amp;#039;&amp;#039;&amp;#039; the same way that _blender commands_ are treated. One writes a cool python script which introduces a command called do_this_funny_thing_to_the_texture, then maps this command:&lt;br /&gt;
&lt;br /&gt;
 true         ctrl-alt-shift-F12 do_this_funny_thing_to_the_texture&lt;br /&gt;
 alias        dt                 do_this_funny_thing_to_the_texture&lt;br /&gt;
&lt;br /&gt;
And voila - now this command feels and works like it was an internal command of blender!&lt;br /&gt;
=====3.5. Blender demos=====&lt;br /&gt;
Launch a blender with an input file that will be feed to command line. Now the user watches as blender does everything step by step.&lt;br /&gt;
&lt;br /&gt;
=====3.6. Automated blender work=====&lt;br /&gt;
You could work on models without even invoking a GUI, just feed blender with _blender commands_ and enjoy the output! (like thumbnail of  a .blend file, or a mandelbrot fractal drawn to the very detail)&lt;br /&gt;
&lt;br /&gt;
==4. Current Progress==&lt;br /&gt;
&lt;br /&gt;
To see the progress see [[BlenderDev/MailArchive|MailArchive]]&lt;br /&gt;
&lt;br /&gt;
-- [[BlenderDev/DeveloperWikiJanekKozicki|DeveloperWikiJanekKozicki]] - 29 May 2004&lt;/div&gt;</summary>
		<author><name>wiki&gt;Mindrones bot</name></author>
		
	</entry>
</feed>