วันนี้เข้าเว็บ 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)
)
วันอาทิตย์ที่ 31 มกราคม พ.ศ. 2553
วันเสาร์ที่ 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}
จริงๆ แล้วก็คือการทำงานของ 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}
ที่กำหนดให้เราสร้างโฟลเดอร์ใหม่ โดยตั้งชื่อเป็น
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

คอมพิวเตอร์ของคุณกำลังทำอะไรอยู่บ้าง
ต่อเน็ตเวิร์กไปที่ใดบ้าง
ไฟฮาร์ดดิสก์ที่กำลังกะพริบอยู่นั้น
จริงๆ แล้วเป็นการทำงานของโปรแกรมตัวไหน
หรือเป็น Malware ?
ลำพัง Windows Task Manager ที่แสดงผล
เมื่อเรากด Ctrl+Alt+Esc (ไม่ใช่ Ctrl+Alt+Del)
ไม่ได้บอกเราในรายละเอียดเลย

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

สมัครสมาชิก:
ความคิดเห็น (Atom)