วันอาทิตย์ที่ 6 มิถุนายน พ.ศ. 2553

Visual LISP: AutoCAD Tips แบ่งพื้นที่จัดสรร




สัปดาห์ที่ผ่านมามีอีเมลจากสองท่านมาถามไถ่ถึง LISP สำหรับแบ่งพื้นที่จัดสรร ที่ปกติมักเป็น Irregular shape หรือรูปทรงอิสระ และต้องการจะแบ่งออกเป็นแปลงย่อยที่ขนาดหนึ่งๆ เช่น 2 ไร่ ซึ่งเท่ากับ 2x1,600=3,200 ตารางเมตร เป็นต้น

แนวคิดคือเราต้องสร้างขอบเขต (boundary) รูปปิด (Closed) ขึ้น และใช้ LISP หาพื้นที่ของรูปปิดนี้ และเพื่อให้ได้ขนาดตรงกับที่ต้องการจะแบ่งให้แต่ละแปลง จึงต้องมีการสุ่มค่าวาดเส้นและค่อยเลื่อนตำแหน่งจนกว่าจะได้ตามที่ต้องการ

ในการนี้จึงได้สรุปและพัฒนาขึ้นเป็นชุดคำสั่งขึ้น คือ

1. Diva - สำหรับตีเส้นแบ่ง
2. Txx - สำหรับตัดเส้นที่เลยออกนอกขอบเขต
3. AA - เขียนพื้นที่จากที่วาดไว้ในหน่วยเมตร เป็นข้อความในหน่วย ไร่-งาน-ตารางวา

โดยรวมอยู่ในไฟล์ Diva.VLX
การทำงานของคำสั่ง Diva

Command: diva
Developed by schatchawal@gmail.com
Specify Desired area:< 24000.0> พิมพ์ขนาดพื้นที่ที่ต้องการในหน่วยตารางเมตร
Specify first point of boundary: กำหนดแนวของเส้นแบ่งเริ่มต้น ที่จุดแรก
Specify second point of boundary: กำหนดแนวของเส้นแบ่งเริ่มต้น ที่จุดสอง
Specify point in Desired boundary: คลิกจุดด้านที่จะหาพื้นที่

Different: Desired(24000.0) - Current area(27867.8) = -3867.83

Specify New boundary? [Yes/No]
ถ้าต้องการวาดเส้นเริ่มต้นใหม่ ให้ใช้ตัวเลือก Yes
แต่ถ้าจะให้คำสั่งเริ่มทำงานค้นหาตำแหน่งที่ถูกต้องของเส้นแบ่งให้เลย ให้คลิก No
แล้วคำสั่งจะเริ่มทำงาน โดยแสดงเป็นรายการดังนี้

1.Inc=0.4 Diff: Desired(24000.0) - Current Area(27768.0) = -3767.98
2.Inc=0.4 Diff: Desired(24000.0) - Current Area(27668.0) = -3668.0
3.Inc=0.4 Diff: Desired(24000.0) - Current Area(27567.9) = -3567.92

..................................................................

66.Inc=0.00015625 Diff: Desired(24000.0) - Current Area(24000.0) = -0.0104122
67.Inc=7.8125e-005 Diff: Desired(24000.0) - Current Area(24000.0) = 0.0099243

คำสั่งจะดำเนินการจนค้นพบตำแหน่งที่ให้ค่าพื้นที่ตรงตามค่ากำหนด
จำนวนครั้งสูงสุดที่ตั้งไว้คือ มากที่สุดที่ 500 ครั้ง
และให้ค่าละเอียดถึง 0.01 ตารางเมตร ตามนัยสำคัญของการวาดแปลนในหน่วยเมตร

เส้นเริ่มต้นจะถูกวาดบนเลเยอร์ชื่อ NewBoundary ด้วยเส้น XLine สีแดง

การทำงานของคำสั่ง TXX
เพื่อที่จะขลิบหรือตัดเส้นที่เลยออกนอกขอบเขต ปกติจะใช้คำสั่ง Trim ใน AutoCAD
แต่ในที่นี้เพิ่มให้อีกคำสั่งหนึ่งคือ TXX ให้คลิกที่ขอบเขตพื้นที่
จะให้ผลตัดเส้นที่เลยนอกขอบเขตนี้ออกไปทั้งหมด
หากยังหลงเหลือเส้นอื่นอีก ให้ใช้คำสั่ง Trim หรือ Erase ตัดเส้นที่ไม่เหลือออกไป

การทำงานของคำสั่ง AA
ก่อนใช้เราจะต้องสร้าง Text Style ที่ใช้ฟอนต์ภาษาไทยเอาไว้ก่อน
และกำหนดเป็นตัวปัจจุบัน (Current style) เอาไว้ก่อนแล้ว

Command: aa
Specify Text Height: <5.0> กำหนดขนาดความสูงอักษร
Specify Text Rotation: <45.0> กำหนดมุมหมุนในหน่วยองศา
Specify point in closed boundary: คลิกหนึ่งจุดในแปลงที่จะเขียนขนาด

Area=15 ไร่ 0 งาน 0 ตารางวา ผลลัพธ์ขนาดในหน่วน ไร่ งาน ตารางวา ที่คำนวณได้

Specify point in closed boundary: เลือกจุดในแปลงอื่นได้อีก จนครบแล้วกด Enter เพื่อจบคำสั่ง

64 ความคิดเห็น:

  1. สนใจมาก แบ่งพื้นที่จัดสรร รบกวนส่งทางอีเมสด้วย mongeen@gmail.com

    ตอบลบ
  2. สนใจเช่นกันครับกำลังห่lispแนวนี้อยู่เลยครับ รบกวนด้วยคนครับ ช่วยส่งมาทางเมล์ aekkanek@gmail.com

    ตอบลบ
  3. ส่งให้คุณ AEK เมื่อวันที่ 17/3/2554 แล้ว

    ตอบลบ
  4. ดีมากเลยครับ....สนใจ
    ส่งให้ด้วยนะครับ koratsurvey@gmail.com

    ตอบลบ
    คำตอบ
    1. ความคิดเห็นนี้ถูกผู้เขียนลบ

      ลบ
    2. รบกวนขอ Diva ด้วยครับ - ขอบคุณครับ topamarit@gmail.com

      ลบ
  5. ส่งให้คุณ pk koratsurvey แล้ว พร้อมแก้
    AA เป็น AX ใหม่
    ให้เขียนในรูป ?? - ?? - ?? แทนหน่วย

    และหมุดที่ตัดเส้นอัตโนมัติ ตามที่แจ้งมา

    ด้วยความยินดีครับ

    ตอบลบ
    คำตอบ
    1. lisp แบ่งแปลงยังพอส่งต่อได้หรือเปล่าครับ ขอไว้ใช้งานครับ mail conmin61@gmail.com

      ลบ
  6. รบกวนขอด้วยครับ sut2519@gmail.com
    ขอบคุณครับ

    ตอบลบ
  7. รบกวนขอตัวเต็มด้วยครับของเดิมหมดอายุการใช้แล้วครับ ผมลองใช้แล้วสามารถใช้ให้เกิดประโยนช์กับงานผมมากครับ แต่หมดอายุแล้วต้องใช้งานอย่างต่อเนื่องครับ ขอความกรุณาขอตัวเต็มอีกครั้ง
    aekkanek@gmail.com

    AEK

    ตอบลบ
  8. รบกวนขอ IDP และ Diva ด้วยครับ suveykorat@gmail.com

    ตอบลบ
  9. nikakak@gmail.com
    ขอบคุณคร๊าบ

    ตอบลบ
  10. ขอด้วยครับ IDP และ Diva รบกวนขอที่ไม่หมดอายุน่ะครับ kanthahong@gmail.com

    ตอบลบ
  11. ขอตัว IDP และ Diva ที่ไม่หมดอายุด้วยครับผมจำดป็นต้องใช้งานจริงๆครับอาจาร์ย aekkanek@gmail.com

    ตอบลบ
    คำตอบ
    1. ขอด้วยคนครับทั้งสองตัว ขอบคุณลว่งหน้าครับ prayong1962@gmail.com

      ลบ
  12. สนใจมากคับ ขอด้วยคน teerachai.t2526@hotmail.com

    ขอบคุณมากครับ

    ตอบลบ
  13. สนใจมากครับ ขอด้วยอีกคนครับ พอดีอยากแบ่งพื้นที่รูปทรงอิสระ ให้เป้น 2 ส่วนเท่ากันอยู่พอดีครับผม ncu96542_sam@hotmail.com

    ขอบคุรครับ

    ตอบลบ
  14. ผมสนใจตัวนี้มากๆเลยครับ เหมาะกับงานผมมากเลยรบกวนขอด้วยคนนะครับ
    ขอบคุณมากๆครับ
    artsur16@hotmail.com

    ตอบลบ
  15. สนใจครับ
    Parinya.cscec@gmail.com

    ตอบลบ
  16. สนใจตัวนี้มากเลยคะ รบกวนอาจารย์ด้วยนะคะ chotikan406@gmail.com ค่ะ

    ตอบลบ
  17. ความคิดเห็นนี้ถูกผู้เขียนลบ

    ตอบลบ
  18. สนใจมาก มากครับ
    Jwplan1234@gmail.com

    ตอบลบ
  19. อันนี้เป็นประโยชน์มากๆเลยครับ รบกวนอาจารย์ช่วยส่งตัว Diva กับ Txx ให้ผมด้วยครับ
    เมล์ ch.piboon.20@gmail.com ต้องขอขอบคุณมากๆเลยครับ

    ตอบลบ
  20. เป็นประโยชน์มากเลย คะเพราะตอนนี้ต้องการใช่ทำงานให้คล่อง และศึกษาเพิ่มเติม ขอความกรุณา รบกวน อาจารย์หนน่อยนะคะ ขอบคุณคะ phaweekam@gmail.com

    ตอบลบ
  21. สนใจ มากครับ
    warindesigns@gmail.com

    ตอบลบ
  22. ความคิดเห็นนี้ถูกผู้เขียนลบ

    ตอบลบ
  23. สนใจมากๆค่ะ รบกวนด้วยนะคะอาจารย์ manutsanun.joe@gmail.com

    ตอบลบ
  24. ผมกำลังศึกษาการเป็นช่างสำรวจเอกชนอยู่ครับ

    รบกวนขอ lisp ของอาจารย์ด้วยครับ น่าใช้มากครับเพราะผมถนัด AutoCAD แต่ไม่ถนัด
    โปรแกรมของที่ดินเลย (Dolcad หรือ AutoLand )

    ตอบลบ
  25. สนใจมากครับรบกวนอาจารย์ด้วยครีบ siamdist89@gmail.com

    ขอบคุณครับ

    ตอบลบ
  26. ไม่ระบุชื่อ1 ธันวาคม 2558 เวลา 17:13

    ผมซื้อหนังสือแล้วและอยากได้ด้วยครับ adisak525@hotmail.com

    ตอบลบ
  27. รบกวนอาจารย์ด้วยครับ m.kampanat@gmail.com

    ตอบลบ
  28. ขอความอนุเคราะห์ด้วยครับทั้งสองตัว ขอบพระคุณลว่งหน้าครับ paponsan@mrta.co.th

    ตอบลบ
  29. รบกวนอาจารย์ด้วยครับ poramin_cha@hotmail.com

    ตอบลบ
  30. ขอด้วยครับไว้ศึกษา

    ตอบลบ
  31. wichien_pwa@outlook.co.th
    ขอด้วยคับๆ

    ตอบลบ
  32. ผมขอด้วย ท่านอาจทารย์

    ตอบลบ
  33. อาจารย์ยังแจกอยู่ไหมครับ ผมหามานานมาก ขอความอนุเคราห์ด้วยครับ
    saraworn.y@gmailcom
    ของคุณครับ

    ตอบลบ
  34. ดีมากเลยครับ....สนใจมาก
    ส่งให้ด้วยนะครับ design1605@gmail.com
    ขอบคุณครับ

    ตอบลบ
  35. รบกวนด้วยครับ a_somlert@hotmail.com

    ตอบลบ
  36. อยากได้มากครับกำลังเริ่มต้นทำงานด้านนี้อยู่ รบกวนอาจารย์ด้วยนะครับขอบคุณครับ warut.mukhura@gmail.com

    ตอบลบ
  37. ขอด้วยครับ ขอบพระคุณครับ.
    Kochaiyasong@gmail.com

    ตอบลบ
  38. ขอด้วยครับ ขอบพระคุณครับ.
    Kochaiyasong@gmail.com

    ตอบลบ
  39. สนใจเรื่องนี้มากเลยครับ และต้องขอบพระคุณมา ณ ที่นี้ด้วยครับ golf_7763@hotmail.com

    ตอบลบ
  40. มีงานต้องใช้พอดีเรยครับ รบกวนขอด้วยคนครับผม draf_t@msn.com

    ตอบลบ
  41. รบกวนด้วยครับกำลังต้องทำงานประเภทนี้เลยครับ งานช่วยชาวบ้าน ขอเป็นแนวทางทำงานครับ conmin61@gmail.com

    ตอบลบ
  42. ไม่ทราบว่ายังมีท่านไหนที่มีอยู่ไหมครับ รบกวนด้วยครับ bz.lamustudio@gmail.com

    ตอบลบ
  43. ขอความอนุเคราะห์ด้วยน่ะครับกำลังศึกษาด้านนี้อยู่ครับ vwtong1981@gmail.com

    ตอบลบ
  44. ไม่ทราบว่ายังมีท่านไหนที่มีอยู่ไหมครับ รบกวนด้วยครับ numpadung39@gmail.com

    ตอบลบ
  45. สนใจครับรบกวนด้วยครับ son_suangka@hotmail.com

    ตอบลบ
  46. สนใจครับ ขอด้วยคนครับ Rotbenz2014@gmail.com

    ตอบลบ
  47. สนใจคับ apandee01@gmail.com ขอบคุณคับ

    ตอบลบ
  48. สนใจครับ รบกวนส่งให้ผมด้วยนะครับ apichon_pi@rtaf.mi.th

    ตอบลบ
  49. รบกวนขอด้วยนะครับ ken6462@gmail.com

    ขอบคุณครับ

    ตอบลบ
  50. ตอนนี้ยังทันไหมครับ nrtd07@gmail.com

    ขอบคุณล่วงหน้าครับ

    ตอบลบ
  51. รบกวนด้วยนะครับอาจารย์ หามานานมากเลยครับ thaweesak.chu@gmail.com
    ขอบคุณล่วงหน้าครับ

    ตอบลบ
  52. รบกวนด้วยนะครับ nakares@gmail.com
    ขอบคุณล่วงหน้าครับ

    ตอบลบ
  53. ขอ LISP สำหรับแบ่งพื้นที่จัดสรรด้วยครับ exec.bjm@gmail.com ขอบคุณครับ

    ตอบลบ
  54. ขอความอนุเคราะห์ด้วยครับทั้งสองตัว
    ขอบพระคุณอย่างสูงลว่งหน้าครับ accordkonoza@gmail.com

    ตอบลบ
  55. สนใจมากครับรบกวนขอไฟล์ด้วยครับ jjray2013@gmail.com

    ตอบลบ
  56. รบกวนขอ lisp ของอาจารย์ด้วยครับ เมลล์ผม chaiyoot2@gmail.com

    ตอบลบ