2015年11月5日 星期四

利用 sketchup 線段分割產生 grid 間距

1. 先選擇一段要分割的線段, 按滑鼠右鍵選 divide 功能, 輸入分割段數.

2. 此線段便會產生 n 等份的 grid ,  但平常無法看到此 grid 點, 故最好標示起點.以利辨識下筆時的相對位置.在此線段內移動滑鼠,便可看到 inference 的點(包含每一線段的中點端點)

3.應用在要畫精的數值時, 可以先刻意畫出一段線當輔助線,將它 10 等份, 因此每一等份便可精確到 1/10 ,以此類推, 如要精確到 1/100, 就將剛剛的 1/10 線段再分段到 1/10, 且最好將起點,事先標示十字點, 從此點開始默數之後要下筆的位置.

4. 如果要更精確顯示,可以透過修改顯示的單位 (windows -> model -> unit ) , 來瞭解目前的線段精確度

2015年11月3日 星期二

學習 google sketchup make

一套很方便容易使用的 3d 建模軟體, 可以到google sketchup 下載
http://www.sketchup.com/download/all
SketchUp Make 2015 個人使用免費, 但並非商業使用
SketchUp Pro 2015 要付費買版權
要熟練使用它先練好基本功,熟背下列快速功能鍵
-----------------------------------------------------------
快速按鍵 功能
===================
MS windows 常用按鍵:
ctrl-a 全選零件(selete all)
ctrl-t 取消全選(skip all)

ctrl-c 複製(copy)
ctrl-v 貼上(paste)
ctrl-x 剪下(cut)

ctrl-n新檔案(new)
ctrl-o 開舊檔案(open)
ctrl-s 儲存檔案 (save)
ctrl-p 列印 (print)

ctrl-z 復原 (undo)
ctrl-y 取消復原 (redo)

繪圖工具指令:
 space bar(空白鍵) 選取物件
 del key(刪除鍵) 刪除物件
a 繪製圓弧(arc)
b 彩繪油漆(boundary paint)
c 繪製圓形(circle)
e 塗抹橡皮擦(erase)
f 偏移複製(offset)
g 轉換成元件(generate component)
l 繪製直線(line)
m 移動零件(move)
p 推/壓平面(push pull)
q 旋轉零件(rotate) 
 r 繪製矩形(rectangle)
s 放大/縮小(scale)
t 捲尺輔助線(tape measure)

視線移動:
h 視線平移(pan view)
o線環繞  
 z 視線縮放(zoom view)

p.s.
1. 移動時, 當焦點鎖住時, 按住滑鼠 shift 鍵可以鎖住該焦點(inference)的參考伸延線, 通常叫它
inference lock, 當按住滑鼠中鍵 + shift , 可將顯顯示模式立刻切到 pan view. 方便將焦點移至到螢幕中央

2. 使用移動工具 ('m') 時, 當選擇零件時, 按住 ctrl, 等同複製該零件, 擺至定點後, 可以使用鍵盤輸入相對距離當參數來改變位置, 若之後又緊接著再加上 '*' 及'數字'鍵 , 等同複製等距離一定數量的零件之功能. linear array copy

3. 使用旋轉工具 ('q') 時, 當選擇零件時, 按住 ctrl, 等同複製該零件, 擺至定點後, 可以使用鍵盤輸入相對角度當參數來改變位置, 若之後又緊接著再加上 '*' 及'數字'鍵 , 等同複製等角度一定數量的零件之功能. polar array copy.

4. 當使用 scale 工具時, 當選擇放大縮小線後, 如果使用鍵盤輸入比率參數, 當參數= -1 時, 就如同 mirror 的功能

5. 使用 protrator (圓規工具)或旋轉工具時('q'), 可以輸入斜率(數字n1:數字n2), 其數值為 n1/n2當參數, 其旋轉的角度 = (180/pi) * tan-1(n1/n2)

6. 當物件(object) 連按 3 次, 將會選擇其內部所有元件, 或是全部的線段

7. 當元件(component) 連按 2 次, 會進入元件編輯模式

8. 當不同 component 合併成令一個 component 時將在其內部會形成層級, 使用 doble click 來進入第 0 層修改不同曾及內的零件, 若再 double click 內部 component 時, 將進入其內部第1層修改元件,若再 double click, 就再深入至元件更內層去編輯. 以此類推.  需注意的是:當元件被指定唯一時, 僅影響該元件所在層級, 並不會遞傳到內部層級. 先剪下(cut)再使用 paste&play 在原處貼上, 可以運用在 component內的不同層級的零件修改.

9. 動態 component 若參數 value 使用 '=數字n' 等字眼時則該變數便被限制成常數, 不可變換

10. 按住 alt 時可以暫時解除 autolock, 再按一次 alt 鍵將會再次鎖住 autolock, 利用此功能, 配合 offset 功能可產生斜角面

11. offset 可以選擇指定某部分邊緣來 offset, 接連使用 double click, 可以去用前一次的 offset 距離當作參數

12. 當使用 pushpull 工具時, 使用 double click 也可以指定使用前一次的距離參數,因此如果使用 double click 兩次, 將會使得該平面拉回到原處.

13. 使用  x-ray mode 來選擇零件, 避免選到不該用的零件

14. 使用 translucent material(半透明) 可以產生 glass 效果,另外,選擇任何材料上色後, 也可透過 edit 方式修改 translucent 來修改其透明度

15. 當 move 移動指令('m')時, 按 'p' 鍵(push pull 功能鍵), 可快速停止,將元件返回到原位

16. 使用 rotate 旋轉矩形('q')工具, 可以繪製焦點線的交界面

17. 定義新層面(layer)時需將零件先變換成群後(group)才能將它放入該新的層面, 否則當零件之間有交叉面時,移動後將會產生問題

18. group 與 component 不同點
component 在模型內(skp 檔案)僅只有一個實體, 而置放在模型所看到的都是一個連結(將它們想像成一個 link , 以寫程式的觀點來看叫作 by reference), 而 group 則是個別獨立的群體.
因此若將 componet copy 出來, 則仍然是參考的連結, 若將他編輯修改, 則同時其它位置點相同 component 也被同時修改,因此修改 component 可以在任何相同的地點修改, 結果相同.
但若將 component 修改成唯一, 則sketchup 會自動在零件庫內生成另一個獨立實體, 此與原先個體並不相同, 如同產生了兩個相似的 components. 但若 此 componet 內部再有其它 component 時, 則形成 nesting (槽狀) 零件. 任何更動(editing)到 component, 也將會影響到其他位置的 component. 但 group 不同, 他是獨立群體. 編輯僅影響到該群體內. 但若 group 內有 component, 其仍會受其 component 的限制, 因 component 實際是一個 link 而已. 此外 group 複製時其產生獨立個體, 因此檔案勢必會加大. 但 component 複製並不會, 頂多增加一個連結資料而已.

19. 交界接面如有兩個面(face), 如不需要應將它刪除, 特別是當兩個 component 面連在一起時. 避免移動時有閃爍的情形

20. inference 推理, 舉一反三, 當抓取零件出來時, 其抓取點會背記憶住. 應用在下次的零件取出時將會被設成預設的抓取點

21. 在move ('m') 及 rotate ('q') 工具底下運作時, 可以按一下 'Ctrl' 按鍵產生複本, 原實體位置不會變動或影響. 直接鍵盤輸入數值當作偏移距離, 緊接著輸入  數量* 或 數量/ (例如 5* 或 5/ )
則會產生等距離數量的複本, 使用 * 時其總共距離等於 n 倍, 使用 / 時, 則將該距離等分 n 段, 每段的距離會被放置一個複本, 因此等同 linear array copy (使用'm'+'ctrl') 及 polar array copy(使用 'q'+'ctrl').

22. 在 scale ('s) 工具底下, 按住'Ctrl' 是將中心點當基準點來使用. 當拉生軸線後輸入 -1, 將會產生鏡射的作用. 要將物體複製並產生鏡射需, 需先利用 move 指令按住 Ctrl 製作一份複本, 再切到 scale 命令拉伸物體輸入 -1, 才能完成複製與鏡射的功能.

23. 使用 x-ray mode 可以將物體產生透視效果, 方便選取或避免誤選物件的動作.

24. 點選一個面: 滑鼠左鍵 1 click
      點選一個面及週邊線: 滑鼠左鍵 double click
      點選依整個零件: 滑鼠左鍵 triple click

25. 使用滑鼠拉選時, 如果侍從右上角往下拉, 其方形選擇區邊線會形成虛線狀, 稱做 across select, 任何經過的零件都會被選到, 一般從左上到右下的是實線, 兩種選擇零件的方式是不同的

26. 使用 follow me tool 時應該事前先選好路徑(也可以點選用面的邊界線當作路徑), 再點選目標面, 讓它自動完成該 revolve(開放路徑時) 或 sweep(封閉路徑時) 的動作

27. 原型的線段可以透過輸入數字s來修改形成 n 邊形, 若一個圓形的邊愈少, 當 extrude 該圓所形成圓柱體時所產生的面便可有效降低. 從而加速電腦運算速度, 例如 5s 則是將圓變成 5 邊形


28. 選擇一條線, 按滑鼠右鍵再選擇 divide, 可以將線分段

參考 youbube 影片: 
--1. https://www.youtube.com/watch?v=Au5VhCoLVE8
-- 2. https://www.youtube.com/watch?v=YKB5sHDdAOs
sketchupbasecamp 所有影片: 
https://www.youtube.com/user/sketchupbasecamp/videos?shelf_id=1&view=0&sort=dd

https://www.youtube.com/watch?v=x0u-6kDbNBg
https://www.youtube.com/watch?v=c0qpmk5gRyc
https://www.youtube.com/watch?v=KL0wYHS1HuQ
https://www.youtube.com/watch?v=cO2KKD5rJTo
https://www.youtube.com/watch?v=NHCEXlEZlo4
https://www.youtube.com/watch?v=EqV2YzaRrXI
https://www.youtube.com/watch?v=9aLVCn5nLZw
https://www.youtube.com/watch?v=nF2U4UzR02s
https://www.youtube.com/watch?v=jAeVp67Wnwc
https://www.youtube.com/watch?v=hnhkei2dSrY
https://www.youtube.com/watch?v=ZB5N5I7moF0
https://www.youtube.com/watch?v=Au5VhCoLVE8
https://www.youtube.com/watch?v=r9_F-bSGrKs
https://www.youtube.com/watch?v=YKB5sHDdAOs
https://www.youtube.com/watch?v=WUJSepWhu_Y
https://www.youtube.com/watch?v=Yvzypn2Lm-E
https://www.youtube.com/watch?v=0NltIqq58hY
https://www.youtube.com/watch?v=MezTkLTp3vA
https://www.youtube.com/watch?v=QmyzPNuckCA
https://www.youtube.com/watch?v=c1D4idcXC2Y
https://www.youtube.com/watch?v=yl6wTSoeVMg
https://www.youtube.com/watch?v=oIqeSh6OiF8


2015年10月13日 星期二

試用3D建模軟體 freecad

A. sketch 繪圖工具列, 需開啟工作檔並選擇 sketch 才可以使用
point: 畫點
line: 畫線
arc: 畫弧線
circle: 畫圓
ellipse: 畫橢圓
polyline: 畫多邊形, (配合'm' 鍵, 轉換不同角度或弧度)
rectangle: 畫四邊形
polygon: 畫等角多邊形(等邊三角形,正方形,正5邊形,正6邊形,正7邊形,正8邊形)
slot: 畫橢圓孔槽
fillet: 兩線之間形成弧線連接
trim: 去除外線
edge link to an external geometry: 定義與外部幾何之連接邊緣線
construct line: 定義輔助線, 將會被隱藏起來

B. 拘束條件與設定工具列, 需選擇物件後(點或線)才可以使用
coincident constrain on the selected item: 將選用的點放到同一位置
fixed a point onto an object: 將點固定在某一物體上(線, 弧線)
vertical constrain: 垂直線拘束
horizontal constrain: 水平線拘束
parallel constrain: 平行線拘束
perpendicular: 垂直線拘束
equility: 相等拘束
symmetry: 對稱拘束
lock: 鎖定拘束
horizontal distance: 設定水平距離
vertical distance:設定垂直距離
distance: 設定兩點距離或線與點之間距離
radius of a circle or an arc: 設定圓或弧的半徑
angle of a line or angle between two lines: 設定線的角度,或兩條線之間的角度
refraction law: 設定折射率 n2/n1

C. 草圖檔案工具列
Create a new sketch: 新增草圖
Edit the selected sketch: 編輯草圖
Close the editing of the sketch: 關閉草圖
View perpendicular to the sketch plane: 垂直平面檢視草圖

D. 平面擠壓(Extrusion)工具列, 需關閉草圖(Sketch Task Close)才可使用.
Map a sketch to a face: 映射平面
Pad a selected sketch: 墊高製造立體物
poket with a selected sketch: 立體挖空面
revolve a selected sketch:環繞製造立體物
groove a selected sketch: 環繞刮除槽, 必須先定義好繪圖平面, 在該平面上繪製刮除面的圖形,
fillet: 圓角
chamfer:斜角
draft
mirror: 鏡射複製
linear pattern: 線性矩陣複製
polar pattern: 環形矩陣複製
multitransform:

E. 視角檢視及測量工具:可自由選擇 6 面視角來檢視繪圖

2015年9月21日 星期一

簡單使用 LibreCAD

1. 修改預設的尺寸單位
Edit -> Application Preferences -> Defaults
若選擇 meter, 則未來開啟檔案時將以'公尺'為單位

2. 修改畫紙上 grid (網點)呈現方式
Edit -> Application Preferences -> Appearance
如果要每 5 個相素距離的網點來呈現畫紙, 可修改成
Minimal Grid Spacing (px): 5
Number of preview entities: 50

3. 修改目前繪圖喜好網點的設定:
Edit-> Current Drawing Preferences -> Grid
修改 X軸及 Y 軸 Grid , 我習慣用 0.1 就好, 比較容易操作

4. 修改尺寸標註呈現方式
Edit-> Current Drawing Preferences -> Dimensions
a.Text Height:文字高度 (插入unicode到繪圖區時,有時中文字會有亂碼出現)
b.Extension line extension:標註線端兩邊之延伸線長
c.extension line offset:從圖形與標註線保留間距,避免圖形與標註線重疊
d.extension line gap:標註線與文字間保留間距,避免文字與標註線重疊
e.arrow size:箭頭符號大小

5. 幾種常用標註線
平面對齊線: Dimension -> Aligned
水平標註線: Dimension -> Horizontal
垂直標註線: Dimension -> Vertical
輻射標註線: Dimension -> Radial
直徑標註線: Dimension -> Diametric
角度標註線: Dimension -> Angular
指示線:Dimension -> Leader

6. 一些繪圖常用指令
a. point : 畫點
b. line   : 畫線
c. arc : 畫弧線
d. polyline: 畫折線
e. rectangle : 畫方形
f. circle  : 畫圓形
上述 line, arc, circle 指令搭配 offset 指令並稍微移動滑鼠便可以繪出平行線或同心弧與同心圓出來

7. 視野放大與平移
za: 繪圖區全視野
zv: 回到上一次視野
zp: 移動滑鼠來平移視野
zw: 拖拉滑鼠指定視野

8. 移動及複製指令之操作:
    a. 預先選好要移動的標的物
    b. 鍵入 mv 指令後按 enter
    c. 指定參考點(點擊按滑鼠右鍵並放開)
    d. 移動到指定點
    e. 選擇是要刪除原始標的物還是要複製一份或多份副本後,再點擊ok並離開
    p.s. 有時須多按幾次ESC鍵,以便跳脫之前預設的命令


2015年8月24日 星期一

利用 overlayfs 將 filesystem.squafs 與 casper-rw 合併成新的 filesystem.squasfs

參考文章:
http://davstott.me.uk/index.php/2013/09/05/ubuntu-13-04-on-a-usb-flash-drive-and-merging-its-persistent-storage.


太實用了! 改天來玩玩,
這樣就無需將 filesystem.squashfs 解壓縮再重裝, 那麼麻煩, 直接用 iso 檔開機, 刪刪減減, 再將他合併, 改成符合自己所適用的作業系統

重點節錄:
假設 persistent storage 放在 /dev/sdb2
sudo su
cd /mnt
mkdir  ro.dir  rw.dir  new.dir
mount /dev/sdb2  rw.dir
mount  -o  loop  filesystem.squashfs  ro.dir
mount  -o  lowerdir=ro.dir,upperdir=rw.dir  -t  overlayfs  none  new.dir
mksquashfs new.dir filesystem.squashfs

chroot new.dir dpkg-query -W --showformat='${Package} ${Version}\n' > filesystem.manifest
printf $(du -sx --block-size=1 new.dir | cut -f1) > filesystem.size

p.s. Linux mint 17.2 已經內建 overlayfs, 可以利用它來運作

2015年8月23日 星期日

Linux mint 無需安裝, 直接使用 LiveCD iso 檔開機, 並讓它擁有永久存放檔案的能力

1. 先規劃好一塊硬碟分區, 因為我的 DRAM 有 8G 空間, 原先 /dev/sdb2 預備當成 swap 分區, 我想 Livecd 應該不需要, 於是我直接將此分區約 2G bytes 空間廢棄, 直接將他改成 ext3 分區來使用, 於是用先 fdisk 將 partition type 0x82 改成 0x83, 接著將他 format 成 ext3 檔案系統(mkfs.ext3 /dev/sdb2). 最後重要的是將他 label 命名成 casper-rw  
tune2fs -L casper-rw /dev/sdb2
或者
e2label /dev/sdb2 casper-rw  
2. 我將整個 cdrom 直接複製到 /dev/sda2/boot/ 目錄內
mount /dev/sda2 /mnt  
dd if=/dev/sr0      of=/mnt/boot/linuxmint172.iso
3. 我使用 Grub 2 的 boot loader, 在 boot option 增加 persistent 字眼
menuentry "Linux Mint 17.2" {  
set root=(hd0,2)  
loopback loop (hd0,2)/boot/linuxmint172.iso
linux        (loop)/casper/vmlinuz boot=casper persistent iso-scan/filename=/boot/linuxmint172.iso ro quiet splash locale=zh_TW.UTF-8    
initrd        (loop)/casper/initrd.lz    
}
4. 大功告成, Linux mint 無需安裝到硬碟中, 只要將 cdrom 的轉成 iso 檔, 複製到 /boot/ 目錄內就好, 且以後任何 linux 系統內任何修改過的資料, 全部都會更新到 /dev/sdb2 中了

2015年8月16日 星期日

試用 linux mint 17.2

重裝 Linux Mint 的方式大致上與重裝 Ubuntu 一樣,
可參考:How to customize Linux Mint live cd/dvd:
http://community.linuxmint.com/tutorial/view/1784
感覺還不錯用, 但是在 zh.TW-UTF8 中文介面, 開啟 terminal, 有些英文字(m 或 w)會與旁邊的字擠成一起, 造成辨識困難.
後來上 google 終於解決了, 只要直接下兩條命令來更改字型便可(特別注意: 千萬不要使用 root 來執行):
gconftool-2 --set /apps/gnome-terminal/profiles/Default/use_system_font --type=boolean false
gconftool-2 --set /apps/gnome-terminal/profiles/Default/font --type string "Liberation Mono 11"
整個操作很像在使用 Windows XP 的感覺, 但無內建中文輸入法, 只好自行再重新封裝加入 gcin:
apt-get install gcin
之後變可以很順利的使用了. 免錢的 OS, 值得推荐.
另外找到 Monaco 字型也可以直接套用, 需先將字型放入 ~/.fonts 或 /usr/share/fonts/truetype 目錄內,並執行 fc-cache -vf 後, 再套用上述兩條命令
gconftool-2 --set /apps/gnome-terminal/profiles/Default/use_system_font --type=boolean false
gconftool-2 --set /apps/gnome-terminal/profiles/Default/font --type=string "Monaco 11"
最後我用 isolinux 製作開機光碟, 將所有檔案放入 isodir 目錄裡, 之後執行 mkisofs:
sudo mkisofs -r -V "Linux Mint 17.2" -cache-inodes -J -l -o linux172.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table isodir
附註1. isolinux 網址: http://www.syslinux.org/wiki/index.php/The_Syslinux_Project
使用 ISOLINUX 時的目錄及檔案結構:
isodir
isodir/isolinux
isodir/isolinux/isolinux.bin
isodir/isolinux/ldlinux.c32
isodir/isolinux/isolinux.cfg
casper
casper/vmlinuz
casper/initrd.lz
casper/filesystem.squashfs
casper/filesystem.manifest
.disk
.disk/casper-uuid-generic
如果是用 GRUB 2 來製作開機光碟, 將所有檔案放入 isodir 目錄裡, 之後再執行 grub-mkrescue
sudo grub-mkrescue -o linux172.iso isodir
附註2. apt-get install xorriso 安裝後, 才可以使用 grub-mkrescue
參考 grub-mkrescue 網址 https://www.gnu.org/software/grub/manual/html_node/Invoking-grub_002dmkrescue.html
使用 GRUB 2 時的目錄及檔案結構:
isodir
isodir/boot
isodir/boot/grub
isodir/boot/grub/grub.cfg
casper
casper/vmlinuz
casper/initrd.lz
casper/filesystem.squashfs
casper/filesystem.manifest
.disk
.disk/casper-uuid-generic

附註3. 如要移除桌面上的 "安裝" 按鈕需要執行在重新封裝(remaster)時將 ubituity 移除
apt-get remove ubiquity

改裝的 Linux mint 17.2 iso 檔案

附註4. 如果要 compile grub-2.0 時出現 stdio.in.h 錯誤訊息, 使用 sed 修改檔案內容變可解決:
sed -i -e ‘/gets is a security/d’ grub-core/gnulib/stdio.in.h








































(initramfs) Uable to find a medium containing a live file system

重裝 Ubuntu 時使用 GRUB 2或 ISOLINUX 當 boot loader 時, CDROM 根目錄 忘記將 .disk 目錄從原公版內複製過來時, 裏面有一個重要的檔案叫作 casper-uuid-generic, 內含當初 build 此公版時所創建的 uuid,如缺乏此檔將造成casper無法從此 CDROM 啟動 Ubuntu linux, 解決的方式是在 boot option 增加 ignore_uuid 便 可, 修改 grub.cfg 如下:

menuentry "Ubuntu Linux from CDROM" {

kernel /casper/vmlinuz.efi boot=casper ignore_uuid

initrd /casper/initrd.lz

}

如果是用 isolinux 則直接在 boot: 下命令

boot: kernel /casper/vmlinuz.efi initrd=/casper/initrd.lz boot=casper ignore_uuid

或修改 isolinux.cfg 內容如下:

label ubuntu

kernel /casper/vmlinuz.efi

append initrd=/casper/initrd.lz boot=casper ignore_uuid

應該可以解決