﻿<?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-06-22T22:38:45Z</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 '''fixed''' 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 '''unfix''' 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 '''equally''' 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 '''object mode''' must be active, '''3d window''' must be active, and an '''object must be selected'''. 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 '''very''' 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 '''equally''' 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>