วันอาทิตย์ที่ 31 มกราคม พ.ศ. 2553

AutoCAD Tips: Visual LISP เปลี่ยนขนาดโดนัทแบบระบายทึบ

วันนี้เข้าเว็บ Support ของ Autodesk ห้อง Visual LISP ที่เคยเข้าไปตอบอยู่
มีท่านหนึ่งตั้งโจทย์ จะเปลี่ยนขนาดเส้นผ่านศูนย์กลางของโดนัทแบบระบายทึบ
ที่วาดเอาไว้แล้วได้อย่างไร โดยยังคงตำแหน่งไว้อย่างเดิม

เลยลองนำมาเขียนโค้ดและนำไปโพสต์ตอบเอาไว้

หลักๆ ก็คือเลือกรูปวาด LWPOLINE
เช็ค Group code 90 จำนวน vertices เท่ากับ 2
เช็ค Group code 70 ค่า 1 หมายถึง Closed Polyline
แล้วคำนวณหาจุดศูนย์กลางจาก Group code 10
ที่เป็นจุดยอดทั้งสอง นำมาค่าเฉลี่ย

ใช้คำสั่ง SCALE เพื่อปรับขนาดด้วยค่าขนาดใหม่หารด้วยขนาดเส้นผ่านศูนย์กลางเดิม

เส้นผ่านศูนย์กลางเดิมมีค่าเท่ากับ
Group code 40, 41 นำมาคูณสองเท่า

;; Donut center
(defun donutcenter (a / pts p q)
(foreach l a
(if (= (car l) 10)
(setq pts (append pts (list (cdr l))))
)
)
(setq p (car pts)
q (cadr pts)
)
(mapcar '/ (mapcar '+ p q) (list 2.0 2.0 2.0))
)
;; Donut diameter
(defun donutdiameter (a)
(* 2.0 (cdr (assoc 40 a)))
)
;; Change donut diameter
(defun changedonutsize (a newdia)
(command ".scale"
(cdr (assoc -1 a))
""
(donutcenter a)
(/ newdia (donutdiameter a))
)
)
;;; Main
(defun c:redonut (/ s e a j oldosmode *error*)
(if (not #newdia)
(setq #newdia 2.0)
)
(setq oldosmode (getvar "osmode"))
(setvar "cmdecho" 0)
(command ".undo" "begin")
(defun *error* (msg)
(if (not (member msg (list "Function cancelled")))
(princ (strcat "REDONUT Error: " msg))
)
(command ".undo" "end")
(setvar "osmode" oldosmode)
(setvar "cmdecho" 1)
(princ)
)
(foreach msg (list "\nEnter new diamter of donut:<" #newdia "> ")
(princ msg)
)
(if (setq tmp (getdist))
(setq #newdia tmp)
)
(if (setq
s (ssget (list (cons 0 "LWPOLYLINE") (cons 90 2) (cons 70 1)))
)
(progn
(setvar "osmode" 0)
(setq j -1)
(repeat (sslength s)
(setq e (ssname s (setq j (1+ j)))
a (entget e)
)
(changedonutsize a #newdia)
)
(command ".undo" "end")
(setvar "osmode" oldosmode)
(setvar "cmdecho" 1)
)
(princ "\nNo object found!!!")
)
(princ)
)

วันเสาร์ที่ 9 มกราคม พ.ศ. 2553

Windows 7 Tips เคล็ดลับ เพิ่มเติมจาก GodMode

ข้อมูลเพิ่มเติมจากกรณี GodModes
จริงๆ แล้วก็คือการทำงานของ shell

ยังมีส่วนเรียก shell อื่นๆ อีกมากมาย ได้แก่

Default Location - {00C6D95F-329C-409a-81D7-C46C66EA7F33}
Biometrics - {0142e4d0-fb7a-11dc-ba4a-000ffe7ab428}
Power Settings - {025A5937-A6BE-4686-A844-36FE4BEC8B6D}
Notification Area - {05d7b0f4-2121-4eff-bf6b-ed3f69b894d9}
Manage Credentials - {1206F5F1-0569-412C-8FEC-3204630DFB70}
Get New Programs - {15eae92e-f17a-4431-9f28-805e482dafd4}
Default Programs - {17cd9488-1228-4b2f-88ce-4298e93e0966}
NET Framework Assemblies - {1D2680C9-0E2A-469d-B787-065558BC7D43}
Wireless Networks - {1FA9085F-25A2-489B-85D4-86326EEDCD87}
Network Neighborhood - {208D2C60-3AEA-1069-A2D7-08002B30309D}
My Computer - {20D04FE0-3AEA-1069-A2D8-08002B30309D}
Printers - {2227A280-3AEA-1069-A2DE-08002B30309D}
RemoteApp and Desktop - {241D7C96-F8BF-4F85-B01F-E2B043341A4B}
Windows Firewall - {4026492F-2F69-46B8-B9BF-5654FC07E423}
Performance - {78F3955E-3B90-4184-BD14-5397C15F1EFC}
GodMode - {ED7BA470-8E54-465E-825C-99712043E01C}

สรุปวิธีใช้งาน

1.พิมพ์ในแอดเดรสบาร์บน Explorer เช่น

shell:::{ED7BA470-8E54-465E-825C-99712043E01C}

2.สร้างเป็นชอร์ตคัตของ explorer.exe ในรูป

explorer.exe shell:::{ED7BA470-8E54-465E-825C-99712043E01C}

3.สร้างโฟลเดอร์ใหม่ในรูป ชื่อใดๆ.{Key} เช่น

SuperMan.{ED7BA470-8E54-465E-825C-99712043E01C}

วันอังคารที่ 5 มกราคม พ.ศ. 2553

Windows 7 Tip เคล็ดลับ ศูนย์รวมคำสั่งปรับแต่ง

เคล็ดลับนี้ Search พบจากเว็บต่างๆ มากมาย
ที่กำหนดให้เราสร้างโฟลเดอร์ใหม่ โดยตั้งชื่อเป็น

GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}

และเมื่อดับเบิลคลิกบนไอคอนนี้ จะให้ผลแสดงรายการที่เป็นชุดคำสั่งปรับแต่งต่างๆ มากมาย
บางรายการใกล้เคียงกับที่มีใน Control Panel แต่ข้อดีคือลดจำนวนคลิกที่จะเข้าถึงคำสั่งนั้นๆ ได้
อีกทั้งยังนำมารวมไว้ในจุดเดียว ทำให้สะดวกกับการเรียกใช้งานได้อย่างดีทีเดียว

ตรงชื่อ GodMode จะใส่ชื่ออะไรก็ได้
ในรูปข้างล่างได้ใส่ชื่อ chatchawal ก็ยังพบว่าทำงานได้เช่นเดียวกัน

chatchawal.{ED7BA470-8E54-465E-825C-99712043E01C}





หรือจะเข้าใช้จากบน Explorer ก็ได้ โดยให้พิมพ์ข้อความต่อไปนี้บนแอดเดรสบาร์แล้วกด Enter

shell:::{ED7BA470-8E54-465E-825C-99712043E01C}

วันอาทิตย์ที่ 3 มกราคม พ.ศ. 2553

Windows 7 Tips เคล็ดลับ Resource monitor บอกคุณได้

เคยสงสัยบ้างไหมว่า
คอมพิวเตอร์ของคุณกำลังทำอะไรอยู่บ้าง

ต่อเน็ตเวิร์กไปที่ใดบ้าง
ไฟฮาร์ดดิสก์ที่กำลังกะพริบอยู่นั้น
จริงๆ แล้วเป็นการทำงานของโปรแกรมตัวไหน
หรือเป็น Malware ?

ลำพัง Windows Task Manager ที่แสดงผล
เมื่อเรากด Ctrl+Alt+Esc (ไม่ใช่ Ctrl+Alt+Del)
ไม่ได้บอกเราในรายละเอียดเลย



หากเราต้องการทราบรายละเอียดของสิ่งเหล่านี้
ใน Windows 7 ให้เข้าดูได้ด้วย Resource Monitor
โดยคลิก Resoucre monitor ในแท็บ Performance ของ Windows Task Manager