Month: August 2016

The Return of Spot Fire ก้าวกลับมาอีกครั้งของ Spot Fire รุ่น 2.10 (ล่าสุด)

Spot Fire V2.10 รุ่นล่าสุด

  • และแล้วก็ได้เวลา upgrade โปรแกรมอีกตัว ซึ่งโปรแกรมเขียนตัวเลขค่าระดับส่งเข้า Autocad โดยตรง เป็นโปรแกรมเล็กมากๆ เรียกว่าเป็นทูลส์ (tools) ก็ได้ครับ ขนาดไฟล์ติดตั้ง 1.5 MB แค่นั้นเอง
  • เดิมทีโปรแกรมพัฒนาด้วย Delphi ซึ่งติดเรื่องลิขสิทธิ์ ผมพอร์ทโปรแกรมมา Lazarus ซึ่งใช้ Free pascal compiler เป็นคอมไพเลอร์ ที่ฟรีและ opensource เนื่องจากโค๊ดของ Dephi เป็นปาสคาลอยู่แล้วการพอร์ทโค๊ดมา Lazarus ซึ่งเป็นภาษาปาสคาลเหมือนกัน จึงเป็นเรื่องง่ายๆ และได้อัพเกรดความสามารถหลายๆอย่างเพิ่มเติมครับ
  • รองรับจอ 4K เหมือนทุกโปรแกรมที่อัพเดทก่อนหน้านี้

SpotFire_Intro

จุดกำเนิดโปรแกรม

  • งานสำรวจทางทะเลหรือแม่น้ำ สำรวจความลึกท้องทะเล (sea bed) หรือท้องแม่น้ำ (river bed) เรียกให้แคบในภาษาปัจจุบันคือ  Bathymetric Survey จะมีเอกลักษณ์เฉพาะตัว คือการเขียนเลขน้ำ (เขียนค่าระดับหรือความลึกตรงบริเวณจุดสำรวจ)

bathy_example

  • งานทางน้ำทางทะเล เลขน้ำลึกตัวเลขจะบวก ที่ตื้นค่าระดับจะเป็นลบ เลขน้ำทางสากล จะไม่เขียนจุดทศนิยม ถ้าเลขทศนิยมเป็นศูนย์ เช่น 1.0, 2.0 จะไม่เขียนเลขทศนิยมคือเลขศูนย์ ตัวเลขทศนิยมจะเป็นตัวห้อย ตัวหนังสือจะเล็กว่าเลขหลักประมาณ 70-80% (ดูรูปด้านบน ผมดาวน์โหลดจากอินเทอร์เน็ต) ถ้าเป็นเลขลบจะขีดเส้นใต้ตัวเลขตัวหลัก ส่วนทศนิยมจะไม่มีขีดด้านล่าง
  • ตัวหนังสือนิยมเขียนตัวเอียงแบบ oblique อีกเอียงโย้ไปด้านหลังประมาณ 15 องศา ลองดูแผนที่เดินเรือแบบสากล สังเกตที่ตื้นๆสีเขียวเข้มๆด้านขวาค่าระดับจะเป็นลบ จะมีขีดใต้ตัวเลขหลัก

portion-of-raster-chart

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

ดาวน์โหลดและติดตั้ง

  • ดาวน์โหลดได้ที่ SpotFire V2.10 แบบ 64 bit และ SpotFire V2.10 แบบ 32 bit ตอนนี้เป็น build 2370 หรือถ้าลิ๊งค์ตรงนี้ขาดให้ดูด้านขวามือของ blog ในส่วน Download เมื่อดาวน์โหลดมาแล้วก็ unzip แล้วทำการติดตั้งง่ายๆ ติดตั้งแล้วจะเห็นไอคอนของโปรแกรมอยู่บน desktop ดับเบิ้ลคลิกเพื่อเปิดโปรแกรม

spotfire_icon_desktop

เปิดโปรแกรม

  • เปิดมาหน้าแรกจะเป็นหน้าต่างของแท็บ “Options” ที่เป็นหน้าให้ป้อนค่าตัวเลือกเพื่อควบคุมตัวเลขค่าระดับ ตั้งแต่กำหนดมาตราส่วนของแผนที่ ฟอนต์ ขนาดตัวเลข และอื่นๆ
  • ส่วนทูลบาร์ มีแค่สองไอคอนคือเปิดไฟล์ กับส่งตัวเลขค่าระดับเข้า Autocad

spotfire_introduction

  • อีกหน้าจะเป็นหน้าต่างของแท็บ “Points” ไว้แสดงข้อมูล X,Y,Z หรือ N,E,Z ที่อ่านได้จากไฟล์ CSV ตอนนี้ยังโล่งเพราะยังไม่มีข้อมูล

SpotFire_points

ทดสอบข้อมูล

  • ข้อมูลตัวอย่างเก็บไว้ที่ “C:\Users\ชื่อผู้ใช้\Appdata\Roaming\Spot Fire\Examples Data” ซึ่งจะเป็นโฟลเดอร์ที่ซ่อนไว้ จะใช้ตัวช่วย คลิกที่เมนู “Help > Examples Data Folder…” ดังรูป

spotfire_open_examples_folder

  • โปรแกรมจะบอกว่าได้ก๊อปปี้พาท (path) ของโฟลเดอร์ตัวอย่างข้อมูลไปไว้ในคลิปบอร์ดเรียบร้อยแล้ว คลิก “OK” เพื่อปิด

spotfire_copytoclipboard

  • โปรแกรมจะเปิด Windows Explorer แสดงพาทที่เก็บข้อมูล จะเห็นไฟล์ชื่อ “Cavite-NEZ.csv” เราจะทดสอบไฟล์นี้ก่อน ไฟล์ข้อมูลจะเป็น text file ที่เก็บจุดงานสำรวจ (point) ไว้ในรูปแบบ NEZ โดยที่ใช้ตัวคั่นคือเครื่องหมายคอมม่า

spotfire_tested_file

เปิดไฟล์ข้อมูล

  • กลับมาที่โปรแกรมกันต่อ ที่ทูลบาร์คลิกไอคอน “Open CSV text file…

spotfire_open_file_icon

  • จะเห็นไฟล์ไดอะล็อก เนื่องจากพาทข้อมูลที่วินโดส์ซ่อนไว้ ถ้า browse จะมองไม่เห็น วิธีการคือเอาพาทที่เราก็อปปี้ไปไว้ในคลิปบอร์ดมาวาง (pasted) บนพาทของไดอะล็อก กด “Enter” ที่คีย์บอร์ดครั้งหนึ่ง เลือกไฟล์ เลือกรูปแบบไฟล์เป็น N,E,Z แล้วเปิดไฟล์ ดูรูปประกอบ

spotfire_selected_file

  • ตอนเลือกรูปแบบไฟล์ต้องเลือกให้ตรง เพราะบางท่านนิยมเก็บไว้ในรูปแบบ E,N,Z ค่า N และ E บางครั้งมีค่าใกล้เคียงกัน ผมไม่สามารถโปรแกรมให้อ่านไฟล์ แล้วตัดสินใจเลือกว่าคอลัมน์ไหนเป็น N หรือ E ซึ่งอาจจะผิดพลาด ผู้ใช้ต้องเลือกเองครับ
  • Format ของ CSV มี 4 รูปแบบที่โปรแกรมอ่านได้คือ
    • P,N,E,Z,D (P = Point No. D=Description) และ P,N,E,Z
    • P,E,N,Z,D และ P,E,N,Z
    • N,E,Z,D และ N,E,Z
    • E,N,Z,D และ E,N,Z

ตรวจสอบข้อมูล

  • ไฟล์ข้อมูล “Cavite-NEZ.csv” ที่เปิด จะมีจำนวนจุดประมาณ 19789 จุด โปรแกรมใช้เวลาอ่านนิดเดียว คลิกที่แท็บ “Points” มาดูข้อมูลบนตารางข้อมูล ตารางนี้ดูได้อย่างเดียวไม่สามารถแก้ไขได้

spotfire_data_table

  • เปิดเมนู “File > Properties” จะเห็นค่าระดับลึกสุด = 43.160 เมตร ค่าตื้นสุด = -1.060 เมตร ไฟล์งานนี้เป็นไฟล์สำรวจ seabed ของทะเล

spotfire_file_properties

ตั้งค่าตัวเลือกเพื่อตั้งรูปแบบตัวเลขค่าระดับ

  • คลิกแท็บกลับมาที่ “Options” รูปด้านล่างดูแล้วอาจจะลายตา ทนเอาหน่อยครับ หน้านี้เป็นการกำหนดรูปแบบให้ตัวเลข อย่างเช่นอันดับแรกมาตราส่วน ผมเลือกมาตราส่วน 1 : 20000 เพราะงานสำรวจเป็นพื้นที่ขนาดใหญ่ในทะเลติดชายฝั่งแห่งหนึ่ง

spotfire_set_options

  • มาตราส่วนแผนที่จะเป็นสิ่งแรกที่เราคิดไว้ก่อนสิ่งอื่น 1 : 20000 เทียบแบบนี้จะเข้าใจง่าย 1 มม. บนแผนที่ = ขนาดจริงบนโลก 20000 มม. หรือ 1 มม.บนแผนที่ = 20 เมตร (หาร 20000 ด้วย 1000) ฉะนั้นเวลากำหนดตัวอักษรสูงขนาด 2 มม. เวลาเขียนแบบตัวอักษรใน CAD จะต้องตั้งความสูงเท่ากับ 2 x 20 = 40 เมตร (ถ้าเรากำหนดหน่วยเขียนแบบใน CAD เป็นหน่วยเมตร) แต่ไม่ต้องปวดหัวครับ ถ้าตั้งมาตราส่วนเท่าไหร่โปรแกรมจะคำนวณมาให้ถูกต้องได้ถูกต้องเท่านั้น
  • Text layer สามารถเลือกเป็น “Single layer” โปรแกรมจะใช้ชื่อเลเยอร์ “SpotText” โดยอัตโนมัติ แต่ถ้าเลือก “Multiple layers” โปรแกรมจะสร้างให้ตามชั้นหรือช่วงของค่าระดับ (Color band)
  • เลือกฟอนต์ไว้เป็น “Romans” เพราะตัวเลขจะออกมาสวย เลือกความสูงตัวเลขหลัก 2 มม. ตัวทศนิยมจะเป็นตัวห้อยขนาดเล็กกว่า ขนาด 1.5 มม. ไม่หมุนตัวเลข จัดให้ตัวเลขเอียงไปด้านหลัง (Oblique) 15 องศา
  • รูปแบบเครื่องหมายลบ เลือก “Underlineขีดเส้นใต้ล่างตัวเลขหลัก กำหนดจำนวนทศนิยม 1 ตำแหน่ง ไม่แสดงเครื่องหมายจุดทศนิยม
  • จะเขียน point ลงให้ไปด้วย ตั้งชื่อเลเยอร์ “Points
  • เลือกจำนวนจุด (Select point every) ในเบื้องต้นตั้งเป็น 1 สามารถตั้งค่าอื่นได้เช่น ตั้งเป็น 4 ถ้าจุดเรียงกันไป 1,2,3,4,5,6,7,8…. โปรแกรมจะเลือกจุดที่ 1 จุดต่อไปจะเลือกจุดที่ 5 (ทุกๆ 4)
  • ในตอนนี้โปรแกรมจะตั้งค่าปริยาย Automatic color band interval = 5 เมตร ถ้าเปลี่ยนค่าโปรแกรมจะคำนวณให้ใหม่โดยคลิกที่ปุ่มยาวๆ “Apply” ด้านล่าง
  • จะเห็นว่าแบ่งค่าระดับจากมากไปน้อยได้ 10 ระดับ โปรแกรมจะเลือกสีมาให้เช่นกัน 10 สี และตั้งค่าเลเยอร์ตามค่าระดับอีก 10 เลเยอร์

ปั๊มตัวเลขค่าระดับเข้า Autocad

  • ก่อนจะปั๊มตัวเลขเข้า ขอให้เปิดโปรแกรม Autocad  ไว้ก่อน เพราะไม่งั้น Autocad ใช้เวลาเปิดนาน โปรแกรม Spot Fire อาจจะรวน
  • ที่ทูลบาร์คลิกที่ไอคอน Autocad

spotfire_fire_to_acad_icon

  • เมื่อสถานะการส่งจุดครบ 100% ไปที่โปรแกรม Autocad จะเห็นจุดดังรูป

autocad_all_points_cavite

  • ลอง Zoom เข้าไปดูใกล้ๆ จะเห็นว่าจุดแน่น ตัวเลขค่าระดับติดกันเป็นพรืด

dense_points

  • ที่ Options ตรงเลือกจุด (Select point every) เพิ่มจาก  1 เป็น 4 แล้วส่งจุดเข้า Autocad อีกครั้ง เมื่อครบ 100%  ซูมดูอีกครั้ง จะเห็นตัวเลขอยู่ห่างกันพอประมาณ และสีตัวเลขเป็นไปตามช่วงค่าระดับที่ตั้งไว้ ส่วนตัวเลขทับกันตรงที่แนวตัดกัน ต้องอาศัยลบออกด้วยมือครับ

dense_points_level2

  • มาดูถ้าจุดที่ค่าระดับเป็นลบ ผมใช้ไฟล์ข้อมูลอีกไฟล์ ที่มีค่าระดับเป็นลบชัดเจน จะเห็นเครื่องหมายขีดเส้นใต้ตัวเลขหลัก

points_onshore

  • ตรวจสอบเลเยอร์ใน Autocad ที่ Layer properties ว่าโปรแกรมเขียนมาให้ตามที่ต้องการไหม ก็โอเคครับ

Autocad_layers_banding

 

เลือกรูปแบบที่กำหนดไว้แล้ว

  • ในแท็บ “Options” ตรง Annotation style จะมี “User define” ถ้าเลือกตัวนี้ ผู้ใช้จะเป็นคนกำหนดเอง แต่ถ้าเลือก Preset style จะเป็นสไตล์ที่โปรแกรมเตรียมไว้ให้ จะขอกล่าวถึง Preset Style #1 อันเป็นการเขียนเลขน้ำสไตล์กรมเจ้าท่าของไทย ที่มีเอกลักษณ์เฉพาะตัว ตัวเลขจะเอียงไปด้านหลัง 15 องศา ตัวทศนิยมตัวเล็กกว่าแต่จะไม่ห้อย เขียนเสมอกับตัวเลขหลัก จุดทศนิยมใช้เครื่องหมายคอมม่า ที่ขีดตรงๆ ถ้าค่าเป็นลบ จะขีดเส้นใต้เครื่องหมายคอมม่า

spotfire_preset_style_1

  • เลือก  “Preset style #1” แล้วส่งจุดเข้าโปรแกรม Autocad อีกครั้ง ดูตัวเลขสไตล์ของกรมเจ้าท่า สวยงามครับ

points_doh_style

  • หรือตัวเลขติดลบบนฝั่ง เครื่องหมายลบใช้ขีดใต้เครื่องหมายคอมม่า

points_doh_style_onshore

  • ลองทดสอบดู “Preset Style #3” ตัวเลขจะหมุนทวนเข็ม 15 องศา

points_preset_style_3

สรุป

  • Spot Fire เป็นโปรแกรมตัวเล็กๆมาอำนวยความสะดวกในการเขียนตัวเลขค่าระดับ นอกจากใช้งานทางน้ำเป็นพิเศษ ผมว่าก็ดัดแปลงใช้งานบกได้ถ้าต้องการ สำหรับรุ่นต่อไปผมจะเขียนให้สามารถบันทึกไฟล์เป็น DXF ได้โดยไม่ต้องพึ่ง Autocad มากเกินไป โปรแกรมนี้ก็ยังแจกฟรีเหมือนเดิม นำไปใช้งานและแจกจ่ายได้ พบกันใหม่ครับ

SpotFire_About

สิ้นสุดการรอคอย XSection Plot รุ่น 4.10 มาแล้ว ตอนที่ 3 (จบ)

10.การจัดเรียงรูปตัดบนกระดาษเขียนแบบ (Page Layout)

  • การจัดเรียงรูปตัด เลือกทูลบาร์และคลิกที่ “Page layout” ได้ดังรูป

page_layout_toolbar

  • ความยาวของรูปตัดแต่ละรูปตัด ความกว้างในแนวดิ่ง มาตราส่วน จะมีผลต่อขนาดของรูปตัดแต่ละรูป ที่่จะวางบนกระดาษเขียนแบบ  การจัดเรียงรูปตัดให้เหมาะสม ผู้ใช้สามารถเลือกจำนวนรูปตัดในแนวดิ่ง จำนวนรูปตัดในแนวนอน ลองตั้งค่าตามรูปด้านล่าง เนื่องจากข้อมูลที่เรากำลังทดลองใช้งานอยู่มี 4 รูปตัดและความกว้างของรูปตัดประมาณ 1300 เมตร จึงยาวจรดกระดาษซ้ายขวา จำนวนรูปตัดในแนวดิ่งจึงเลือกเป็น 1 ส่วนจำนวนรูปตัดในแนวนอนเลือกเป็น 4

page_layout_1

  • มาดูตั้งค่าให้กริดทางราบ จัดระยะราบจาก CL (ค่าที่ X = 0) ไปด้านซ้าย ตั้งไว้ 700 เมตร เผื่อยาวเกินกว่าข้อมูลไว้นิดหนึ่งไม่ให้รูปตัดไปชน ด้านขวาตั้งไว้ 650 เมตร ส่วนระยะราบของกริดแต่ละช่อง(grid spacing) เลือกไว้ 10 เมตร

page_layout_2

  • มาดูการตั้งกริดทางดิ่ง ผมตั้งไว้ 21 เมตร ระยะของช่องกริดทางดิ่ง (มาตราส่วน 1:200) 1 เมตร ดูรูปกราฟฟิคที่ลากลูกศรเชื่อมโยงด้านล่างเพื่อความเข้าใจ และตั้งระยะของช่องกริดทางดิ่ง 1 เมตร

page_layout_3

  • เวลาเปลี่ยนค่า ต้องกปุ่ม “Apply” เพื่อโปรแกรมจะได้จัดวางรูปตัดให้ใหม่ ถ้ารูปตัดทับซ้อนกันโปรแกรมจะเตือนให้ทราบ ผมเตรียมไอคอนบนทูลบาร์ด้านบน เพื่อ  copy ค่าพิกัดของรูปตัดเมื่อเทียบกับค่าพิกัดของกระดาษ มุมล่างซ้าย x,y = 0,0 หน่วยเป็น ซม.ครับ เมื่อคลิกที่ไอคอน โปรแกรมจะคัดลอกค่าพิกัดลงไปตารางข้อมูล จากนั้นคลิก “OK” เพื่อปิดหน้าต่างไดอะล็อก

page_layout_coors

  • บันทึกไฟล์ข้อมูลลงดิสค์ ให้เรียบร้อย

11.แสดงรูปตัดตามขวาง (Section Viewer)

  • ในที่สุดก็มาดูรูปตัดที่เราตั้งค่าไว้ ว่าตรงตามที่ต้องการหรือไม่ ที่ทูลบาร์ คลิก “Section Viewer”

section_viewer_toolbar

  • จะเห็นรูปตัดตามขวางแสดงผลมาให้ดูแต่ละ section ซึ่งจะเริ่มจาก section แรกก่อน ดังรูปด้านล่าง การขยาย ย่อ แผนที่ทำได้โดยการ scroll เมาส์ปุ่มกลางครับง่ายๆ ส่วนการเลื่อนแผนที่คลิกกดปุ่มกลางของเมาส์แล้วลาก

section_viewer_elements

  • ค่าที่เราตั้งค่าสำหรับรูปตัดไว้ก่อนหน้านี้ เช่นค่าระดับกริดเส้นบน (Top grid elevation) หรือไม่รูปแบบการเขียนตัวเลข จะส่งผลต่อรูปตัด พิจารณาดูรูปด้านล่างที่แสดงเส้นลูกศรเชื่อมโยง

section_viewer_shown_topgrid_int

  • ส่วนค่าอื่นๆเช่นตั้งค่าให้คำนวณหาพื้นที่ดินตัด (cut) หรือดินถม (fill) หรือหาจุดตัดระหว่าง typical  และเส้นดินเดิม

section_viewer_shown_calcarea_interval

  • สังเกตรูปตัดด้านบนจะเห็นว่าตัวรูปตัดตกจากเส้นกริดลงมาด้านล่างเนื่องจากค่าระดับกริดเส้นบนใส่ค่ามากไป จากที่โปรแกรมคำนวณมาให้ ลองกลับไปตั้งค่าใหม่จาก 6 เมตร เป็น 4 เมตร จะเห็นว่ารูปตัดเลื่อนขึ้นไปอยู่ในกริด แต่เส้น existing ground ล้นกริดด้านบนไปแทน ซึ่งสามารถ trim ออกได้ในโปรแกรมด้าน CAD ในภายหลัง

section_viewer_shown_new_topgrid_elev

  • นอกจากนี้เมื่อเลื่อนเมาส์ไปยังพื้นที่ดินตัดหรือดินถม โปรแกรมจะแสดงผล interactive ตรงพื้นที่รูปตัดจะสว่างขึ้นช่วยให้ผู้ใช้เห็นพื้นที่ได้ชัดเจน

section_viewer_interactive

  • ลองคลิกที่ลูกศรเพื่อขยับไปดูรูปตัดถัดไป เสร็จแล้วจะออกจากการแสดงผลก็คลิกที่ไอคอน รูปประตู

section_viewer_next_prev12.บันทึกไฟล์ Autocad DXF (Save to DXF)

  • เมื่อตั้งค่ารูปตัดทั้งหลายจนเป็นที่พอใจ กระบวนการสุดท้ายที่ต้องการคือ แผนที่แสดงรูปตัดตามขวาง ที่สามารถส่งงานกันได้ ซึ่งจะใช้โปรแกรมอะไรด้าน CAD ความสามารถโปรแกรมเหล่านี้คือสามารถอ่านเขียนไฟล์ฟอร์แม็ต dxf ได้เพราะเจ้าของคือ Autodesk เปิดเป็นสาธารณะ ที่ทูลบาร์เลือกคลิก “Save to DXF

save_to_dxf_toolbar

  • โปรแกรมจะแสดงไดอะล็อก คลิกที่รูปไอคอนรูปดิสเก็ตเพื่อเลือกโฟลเดอร์ที่จะจัดเก็บตลอดทั้งป้อนชื่อไฟล์ทึ่จะบันทึกเป็น dxf ดังรูป

save_to_dxf_inputfile

  • เมื่อเสร็จสิ้นโปรแกรมจะขึ้น message box ว่าจัดเก็บเรียบร้อย คลิก “OK” และ “Close” เพื่อปิด

save_to_dxf_ready

13.เปิดไฟล์ด้วยโปรแกรมด้าน CAD

  • โปรแกรมด้าน CAD ขนาดเล็กๆ เขียนแบบ 2มิติ ใช้งานได้ฟรีขอแนะนำ Draftsight ดาวน์โหลด ติดตั้งแล้วลงทะเบียนก็พร้อมใช้งาน ใช้งานง่ายสะดวกครับ (ยังมีรุ่นเสียตังค์ซื้อด้วย ถ้าต้องการ) ลองเปิดไฟล์ dxf ที่บันทึกเก็บไว้จะเห็นผลงานออกมาดังรูป

draftsight2d-first

  • จะเห็นว่าตัว hatch สำหรับพื้นที่ดินตัด ดินถม ทึบสนิท ทั้งๆที่ผมตั้ง scale ของแฮ็ทช์ไว้ 1.0 ปัญหาไม่ใช่ของ Draftsight แต่มาจากไฟล์ dxf ซึ่งผมคิดว่าน่าจะเป็นไลบรารีเขียน dxf ที่ผมใช้งานอยู่คือ ezdxf แต่ไม่เป็นไรวิธีแก้กลับคือไปคลิกเลือก hatch ทุก section ที่ property มองหา scale เจอแล้วจะเห็นตัวเลข 1.000 ป้อนค่าใหม่เป็น 10.000 (หรืออะไรก็ได้) จากนั้นป้อนกลับไปค่าเดิมอีกครั้งเป็น 1.000 เหมือนเดิม จะเห็น hatch เปลี่ยนเป็นโปร่งขึ้น
  • ปัญหา hatch นี้เปิดใน Autocad ก็เป็นครับ

 

draftsight2d-hatch_ok

  • ผมลองเปิดข้อมูลเก่าที่ Titleblock เป็นภาษาไทย ลองดูก็ใช้ได้บน Draftsight สำหรับ Draftsight แบบสองมิติ อ่านดูในเน็ตเห็นว่ารุ่นนี้ฟรี (แต่ต้องลงทะเบียน ซึ่งง่ายๆ ถามไม่กี่คำถาม) แต่ก็ไม่แน่ใจว่าฟรีไปตลอดหรือไม่ ซึ่งก็น่าใช้งานมากครับถ้าฟรีตลอด สำหรับท่านที่ใช้งานแคด ที่ไม่ได้มีงานสามมิติเข้ามาเกี่ยวข้อง ดีกว่าไปละเมิดลิขสิทธิ์

draftsight2d_thai_ok

สรุป

  • โปรแกรมนี้ใช้เวลาพัฒนาประมาณ 2 ปีกว่าๆ แต่ไม่ได้ต่อเนื่องนะครับ เนื่องจากเขียนเป็นงานอดิเรก ไม่มีความกดดันอะไร ถือว่าเป็นการศึกษาด้านโปรแกรมมิ่งในตัวโดยเฉพาะ python เขียนสนุก กระชับ ทรงพลัง มีแง่บางอย่างที่นึกไม่ถึงว่าภาษาสามารถทำได้ และที่สำคัญมีไลบรารีหรือโมดูลให้ใช้มากมาย ส่วนใหญ่ฟรี เมื่อมารวมกับ Qt framework ที่เก่งอยู่แล้ว โปรแกรมที่เขียนออกมาแล้วจึงดูเป็นมืออาชีพพอสมควร แต่ก็แจ้งเตือนก่อนว่าโปรแกรม XSection Plot รุ่นนี้ยังมีบั๊กอยู่บ้าง ถ้าพบก็แจ้งมาได้ที่ blog นี้
  • เกือบลืมบอกไป โปรแกรมนี้สนับสนุนจอ 4K เรียบร้อยแล้ว ไม่มีปัญหาเรื่องไอคอนเล็ก ตัวหนังสือเล็ก

xsectionplot_about

  • ก่อนจากกันก็ขอบอกว่าโปรแกรมทุกโปรแกรมที่ผมพัฒนาขึ้นมายังคง concept เหมือนเดิมคือให้ใช้ฟรี และสำหรับช่างสำรวจและช่างโยธา เหมือนเดิมครับ

สิ้นสุดการรอคอย XSection Plot รุ่น 4.10 มาแล้ว ตอนที่ 2

6.เปิดไฟล์ข้อมูล (Open file)

  • ขั้นตอนต่อไปจะมาเปิดไฟล์ข้อมูล เริ่มจากไฟล์ Typical section ที่จัดเก็บไว้ใน Documents ขั้นตอนตามรูปด้านล่าง ขั้นตอนที่ 3 เลือกประเภทของไฟล์เป็น .txml โปรแกรมจะอ่านข้อมูล และแสดงผลบนตารางในแท็บ “Typical section”

open_typical_section_file

  • ต่อไปเช่นเดียวกันเปิดไฟล์ Existing Ground section

open_ground_section_file

7.ป้อนข้อมูลโครงการ

  • ตอนนี้ข้อมูลของเราที่ได้จาก import  จาก text file มีแต่รูปตัดในตารางเท่านั้น เราจะทำการบันทึกข้อมูลโครงการของงาน นอกจากบันทึกเพื่อจำแล้วยังสามารถนำไปเขียนเป็น Titleblock ใน Autocad คลิกที่ Toolbar ดังรูปด้านล่างedit_titleblock
  • จะเห็นหน้าต่างไดอะล็อกให้ป้อนข้อมูล ถ้ามีข้อมูลอะไรให้ลบออกหมด เนื่องจากโปรแกรมจะบันทึกสถานะครั้งสุดท้ายที่ใช้เอาไว้set_project_info_procedure
  • ป้อนข้อมูลโครงการเข้าไป (ข้อมูลมาจากการสำรวจจริง แต่ชื่อโครงการ บริษัท ชื่อคน สมมุติหมด)

set_project_info_filled

เลือกภาษาให้  Titleblock

  • ที่ผมเตรียมไว้ให้มีภาษาไทยกับอังกฤษเท่านั้น ถ้าต้องการใช้ภาษาไทยก็คลิกตามรูป

set_project_info_locale

8.ตั้งขนาดกระดาษสำหรับเขียนแบบ (Page Setup)

  • สำหรับงานเขียนแบบใน Autocad แล้วขนาดกระดาษที่เราใช้มักจะเป็นขนาดกระดาษมาตรฐานได้แก่ A4, A3, A2, A1 และ A0 ขึ้นอยู่กับขนาด printer หรือ plotter ที่ใช้ด้วย ที่ทูลบาร์หลักคลิกที่ “Page Setup”

page_setup_toolbar

  • จะมีหน้าต่างไดอะล๊อกให้เลือกตั้งขนาดกระดาษ (ขนาดกระดาษกำหนดโดยผู้ใช้  Custom Paper Size โปรแกรมตอนนี้ยังไม่ support) เลือก A1 ดังรูป

page_setup

9.ตั้งค่ารูปตัด (Cross-section settings)

  • รูปแบบรูปตัดเช่นการเลือกมาตราส่วนทางราบและทางดิ่งให้ตรงกับความต้องการ การจัดรูปแบบตัวอักษร ค่า x,y (offset/elevation) หรือการตั้งจำนวนทศนิยม สามารถตั้งค่าได้ที่นี่ จากทูลบาร์หลักเลือก “Xsection Settings” ดังรูป

section_settings_toolbarตั้งค่าทั่วไป

  • จะเห็นหน้าต่างไดอะล็อก มีแท็บทั้งหมด 4 แท็บ แยกค่าที่จะตั้งเป็นสัดส่วน มาดูหน้าแรกสำหรับตั้งค่ารูปตัดทั่วๆไป

section_settings_page1_desc

  • ข้อสังเกตรูปตัดจะเห็นว่าใช้มาตราส่วนทางราบ 1 : 2000 คิดง่ายๆ ในแผนที่วัดได้ 1 มม. = ระยะจริงในสนามได้ 2 เมตร หรือในแผนที่วัดได 1 ซม. เท่ากับระยะจริงในสนาม 20 เมตร ขนาดกระดาษ A1 594 x 871 มม. แต่ขนาดที่ปริ๊นท์ได้เท่ากับ 517 x 817 มม. ถ้าวางกระดาษในแนวนอน (landscape) ความยาวคร่าวๆคือ 800 มม. สามารถเขียนแบบรูปตัดตามขวางได้เท่ากับระยะในสนาม = 2 x 800 เมตร = 1600 เมตร
  • ถ้ากลับไปดูข้อมูลในตารางจะเห็นว่าจากซ้ายไปขวาประมาณ 1300 เมตร ซึ่งกระดาษ A1 และมาตราส่วนนี้สามารถเขียนแบบได้โดยที่ไม่ล้นกระดาษ

ตั้งค่ารูปแบบตารางแสดงตัวเลข offset/elevation

  • จากหน้าต่างไดอะล็อก คลิกที่แท็บที่ 2 เลือกรูปแบบแสดงตัวเลข  offset/elevation  จาก 3 รูปแบบที่มีรูปตัวอย่างแสดงไว้ให้เห็นง่ายๆ ที่นี้ผมเลือก  Type 3 ดังรูปด้านล่าง

section_settings_page2_desc

ตั้งค่าตัวหนังสือคำหน้า/ตามหลัง ค่าระดับ datum

  •  ที่หน้าต่างไดอะล็อกคลิกที่แท็บตัวที่ 3 “Grid datum postfix/prefix” เลือกแบบที่สาม เขียนตัวหนังสือ CD (Chard Datum)  ตามหลังค่าระดับ 0.0  บางครั้งงานทางทะเลจะระบุว่าค่า 0.0 เมตร อิงอยู่กับอะไรเช่นน้ำทะเลปานกลาง (MSL) หรือ Chart Datum (CD)

section_settings_page3_desc

 ตั้งค่าระดับเส้นกริด

  • เป็นการตั้งค่าระดับเส้นกริดตัวบนสุด ปรับได้ตามต้องการเพื่อให้รูปตัดอยู่กลางๆรูปตัด จะได้ดูง่าย ไม่อึดอัด

section_settings_page4_desc

  • แต่ก็สามารถเลือกตั้งได้อัตโนมัติโดยโปรแกรม ดูรูปด้านล่างประกอบ เมื่อเสร็จสิ้นการตั้งค่ารูปตัด สามารถคลิกปุ่ม “OK” เพื่อออกจากไดอะล็อก

section_settings_page4_auto

  • ต่อไปบันทึกข้อมูลลงไฟล์ ที่เราแก้ไขตั้งค่ารูปตัด โปรแกรมจะเก็บค่าทั้งหลายเอาไว้ในไฟล์ Existing ground section รวมทั้งข้อมูล offset/elevation ในตารางทุก  section
  • ก่อนจะทำอะไรต่อ ให้คลิกรูปดิสค์เก็ตที่ทูลบาร์ เพื่อบันทึกข้อมูลลงดิสค์ โลกสวยด้วยมือเราครับ

เปิดดูไฟล์ข้อมูล

  • ลองเปิดไฟล์ข้อมูลด้วยโปรแกรมเช่น  Notepad, Notepad++  จะเห็นข้อมูลดังข้างล่าง (คลิกที่สี่เหลี่ยมลิ๊งค์ด้านล่าง เพื่อขยายออกมา)
<root version="1.0">
<!--Generated by XSection Plot-->
<!--This data file is Existing ground section-->
<Header>
<AppName>XSection Plot</AppName>
<Developer>Prajuab Riabroy</Developer>
<Version>4.1.512</Version>
<SectionType>Ground</SectionType>
<DateCreated>2016-08-15 21:09:30.751163</DateCreated>
</Header>
<ProjectInfo>
<ProjectName>Macuzy International Port</ProjectName>
<ClientName>MX Port Authority</ClientName>
<ContractorName>East West Construction & Engineering</ContractorName>
<DrawingTitle>X-Section of Approach Channel</DrawingTitle>
<DrawnName>Sergio Motezia</DrawnName>
<ApprovedName>Prati Wisas</ApprovedName>
<ClientApprovedName>Mario P. Tenes</ClientApprovedName>
<CheckedName>Antonio Molibzo</CheckedName>
<SurveyorName>Suras Malcom</SurveyorName>
<SurveyedDate>1-7/03/2016</SurveyedDate>
<DrawingNo>2017-MZ-001-PLN-020</DrawingNo>
<SheetNo>1 / 50</SheetNo>
<DrawingDate>1-7/03/2016</DrawingDate>
<Revision></Revision>
<UseLocaleLanguage>False</UseLocaleLanguage>
<MapTexts>
<MapText Label="Client" Locale="เจ้าของโครงการ"/>
<MapText Label="Contractor" Locale="ผู้รับจ้าง"/>
<MapText Label="Drawn" Locale="เขียน"/>
<MapText Label="Design" Locale="ออกแบบ"/>
<MapText Label="Surveyor" Locale="ผู้สำรวจ"/>
<MapText Label="Surveyed Date" Locale="วันที่สำรวจ"/>
<MapText Label="Checked" Locale="ตรวจสอบ"/>
<MapText Label="Approved" Locale="อนุมัติ"/>
<MapText Label="Client Approved" Locale="ผู้คุมงานอนุมัติ"/>
<MapText Label="Drawing No." Locale="แบบเลขที่"/>
<MapText Label="Plotted Date" Locale="แบบวันที่"/>
<MapText Label="Project" Locale="โครงการ"/>
<MapText Label="Drawing Title" Locale="แผนที่แสดง"/>
<MapText Label="Sheet No." Locale="แบบเลขที่"/>
<MapText Label="Scale" Locale="มาตราส่วน"/>
<MapText Label="Vertical" Locale="ทางดิ่ง"/>
<MapText Label="Horizontal" Locale="ทางราบ"/>
<MapText Label="Vertical Scale" Locale="มาตราส่วนทางดิ่ง"/>
<MapText Label="Horizontal Scale" Locale="มาตราส่วนทางราบ"/>
<MapText Label="Legend" Locale="สัญลักษณ์"/>
<MapText Label="Note" Locale="หมายเหตุ"/>
<MapText Label="Geodetic Information" Locale="ข้อมูลระบบพิกัด"/>
<MapText Label="No." Locale="ครั้งที่"/>
<MapText Label="Amendments" Locale="ความเห็น"/>
<MapText Label="By" Locale="โดย"/>
<MapText Label="Date" Locale="วันที่"/>
<MapText Label="Revision" Locale="ครั้งที่แก้ไข"/>
</MapTexts>
</ProjectInfo>
<SectionOptions>
<VerticalScale>200.0</VerticalScale>
<HorizontalScale>2000.0</HorizontalScale>
<HozGridSpace>10.0</HozGridSpace>
<VertGridSpace>1.0</VertGridSpace>
<GridLineType>0</GridLineType>
<CalcIntersection>True</CalcIntersection>
<CalcArea>True</CalcArea>
<TrimTypical>False</TrimTypical>
<NumDecimalElev>3</NumDecimalElev>
<NumDecimalDist>3</NumDecimalDist>
<UseIntervalText>True</UseIntervalText>
<IntervalDist>20.0</IntervalDist>
<PrefixText></PrefixText>
<PostfixText>CD</PostfixText>
<UsePostPrefix>0</UsePostPrefix>
<UseOffsetElevFormat>2</UseOffsetElevFormat>
<CalcPlotAreaCut>True</CalcPlotAreaCut>
<CalcPlotAreaFill>True</CalcPlotAreaFill>
<NumVertCLLeft>70</NumVertCLLeft>
<NumVertCLRight>65</NumVertCLRight>
<NumHozTopBottom>21</NumHozTopBottom>
<LeftSideText>LT.</LeftSideText>
<RightSideText>RT.</RightSideText>
<StationText>Km.</StationText>
<SelectedTBlock>2</SelectedTBlock>
<NumSectionRows>4</NumSectionRows>
<NumSectionColumns>1</NumSectionColumns>
<SurveyType>0</SurveyType>
<PlotTBlock>True</PlotTBlock>
<SwapLeftAndRight>False</SwapLeftAndRight>
</SectionOptions>
<PageSetup>
<Size>A1</Size>
<Width>817</Width>
<Height>570</Height>
</PageSetup>
<Sections>
<NumSections>4</NumSections>
<Section Name="-0+078">
<XPositionOnPaper>0.0</XPositionOnPaper>
<YPositionOnPaper>0.0</YPositionOnPaper>
<TopGridElev>0.0</TopGridElev>
<NumPoints>94</NumPoints>
<Points>
<Point Elevation="5.696" Offset="-600.0"/>
<Point Elevation="5.693" Offset="-596.305"/>
<Point Elevation="5.337" Offset="-587.506"/>
<Point Elevation="2.271" Offset="-526.489"/>
<Point Elevation="0.579" Offset="-507.151"/>
<Point Elevation="-1.19" Offset="-490.954"/>
<Point Elevation="-2.314" Offset="-471.14"/>
<Point Elevation="-2.766" Offset="-462.616"/>
<Point Elevation="-2.875" Offset="-457.815"/>
<Point Elevation="-3.6" Offset="-434.419"/>
<Point Elevation="-4.104" Offset="-414.736"/>
<Point Elevation="-4.128" Offset="-406.659"/>
<Point Elevation="-4.356" Offset="-380.964"/>
<Point Elevation="-4.382" Offset="-376.491"/>
<Point Elevation="-4.406" Offset="-375.215"/>
<Point Elevation="-4.989" Offset="-349.559"/>
<Point Elevation="-5.161" Offset="-338.86"/>
<Point Elevation="-5.347" Offset="-322.669"/>
<Point Elevation="-5.812" Offset="-302.883"/>
<Point Elevation="-5.942" Offset="-297.584"/>
<Point Elevation="-6.148" Offset="-283.939"/>
<Point Elevation="-6.342" Offset="-272.05"/>
<Point Elevation="-6.387" Offset="-267.862"/>
<Point Elevation="-6.733" Offset="-246.07"/>
<Point Elevation="-7.111" Offset="-231.836"/>
<Point Elevation="-7.372" Offset="-217.745"/>
<Point Elevation="-7.824" Offset="-194.494"/>
<Point Elevation="-7.882" Offset="-191.371"/>
<Point Elevation="-7.834" Offset="-183.933"/>
<Point Elevation="-7.668" Offset="-165.389"/>
<Point Elevation="-8.54" Offset="-139.979"/>
<Point Elevation="-8.98" Offset="-123.408"/>
<Point Elevation="-9.255" Offset="-115.989"/>
<Point Elevation="-9.487" Offset="-93.719"/>
<Point Elevation="-9.566" Offset="-88.009"/>
<Point Elevation="-9.732" Offset="-85.635"/>
<Point Elevation="-11.591" Offset="-57.803"/>
<Point Elevation="-11.779" Offset="-43.322"/>
<Point Elevation="-11.967" Offset="-27.782"/>
<Point Elevation="-11.928" Offset="-5.492"/>
<Point Elevation="-11.967" Offset="-1.247"/>
<Point Elevation="-12.16" Offset="11.274"/>
<Point Elevation="-12.318" Offset="20.29"/>
<Point Elevation="-12.301" Offset="22.958"/>
<Point Elevation="-12.249" Offset="39.553"/>
<Point Elevation="-12.303" Offset="48.517"/>
<Point Elevation="-12.25" Offset="59.398"/>
<Point Elevation="-12.081" Offset="76.972"/>
<Point Elevation="-12.057" Offset="79.758"/>
<Point Elevation="-12.02" Offset="83.034"/>
<Point Elevation="-11.703" Offset="98.323"/>
<Point Elevation="-11.569" Offset="104.196"/>
<Point Elevation="-11.562" Offset="105.697"/>
<Point Elevation="-11.365" Offset="116.141"/>
<Point Elevation="-11.25" Offset="117.347"/>
<Point Elevation="-10.732" Offset="135.54"/>
<Point Elevation="-10.625" Offset="146.227"/>
<Point Elevation="-10.077" Offset="158.793"/>
<Point Elevation="-8.681" Offset="177.76"/>
<Point Elevation="-8.592" Offset="181.044"/>
<Point Elevation="-8.401" Offset="194.035"/>
<Point Elevation="-8.271" Offset="203.535"/>
<Point Elevation="-7.923" Offset="213.249"/>
<Point Elevation="-7.728" Offset="217.373"/>
<Point Elevation="-7.095" Offset="235.24"/>
<Point Elevation="-6.982" Offset="241.693"/>
<Point Elevation="-6.682" Offset="247.206"/>
<Point Elevation="-6.075" Offset="256.627"/>
<Point Elevation="-5.455" Offset="278.481"/>
<Point Elevation="-5.337" Offset="282.26"/>
<Point Elevation="-5.042" Offset="294.845"/>
<Point Elevation="-5.019" Offset="295.988"/>
<Point Elevation="-4.347" Offset="321.161"/>
<Point Elevation="-4.189" Offset="329.073"/>
<Point Elevation="-3.808" Offset="348.654"/>
<Point Elevation="-3.664" Offset="355.277"/>
<Point Elevation="-3.317" Offset="372.887"/>
<Point Elevation="-3.154" Offset="382.261"/>
<Point Elevation="-2.776" Offset="410.279"/>
<Point Elevation="-2.765" Offset="410.995"/>
<Point Elevation="-2.704" Offset="413.887"/>
<Point Elevation="-2.197" Offset="439.138"/>
<Point Elevation="-1.967" Offset="448.435"/>
<Point Elevation="-1.716" Offset="464.705"/>
<Point Elevation="-1.481" Offset="485.302"/>
<Point Elevation="-1.403" Offset="489.714"/>
<Point Elevation="-1.251" Offset="498.925"/>
<Point Elevation="-0.928" Offset="517.874"/>
<Point Elevation="-0.799" Offset="529.258"/>
<Point Elevation="-0.604" Offset="548.73"/>
<Point Elevation="-1.169" Offset="576.146"/>
<Point Elevation="-1.18" Offset="579.205"/>
<Point Elevation="-1.305" Offset="585.252"/>
<Point Elevation="-1.468" Offset="600.0"/>
</Points>
</Section>
<Section Name="0+172">
<XPositionOnPaper>0.0</XPositionOnPaper>
<YPositionOnPaper>0.0</YPositionOnPaper>
<TopGridElev>0.0</TopGridElev>
<NumPoints>104</NumPoints>
<Points>
<Point Elevation="4.21" Offset="-600.0"/>
<Point Elevation="3.865" Offset="-590.197"/>
<Point Elevation="3.192" Offset="-572.372"/>
<Point Elevation="1.492" Offset="-534.461"/>
<Point Elevation="-1.278" Offset="-510.761"/>
<Point Elevation="-1.773" Offset="-506.708"/>
<Point Elevation="-2.262" Offset="-496.208"/>
<Point Elevation="-3.027" Offset="-480.587"/>
<Point Elevation="-3.26" Offset="-473.089"/>
<Point Elevation="-4.034" Offset="-454.61"/>
<Point Elevation="-4.281" Offset="-430.868"/>
<Point Elevation="-4.355" Offset="-425.789"/>
<Point Elevation="-4.35" Offset="-412.009"/>
<Point Elevation="-4.367" Offset="-398.744"/>
<Point Elevation="-4.437" Offset="-394.505"/>
<Point Elevation="-4.911" Offset="-371.013"/>
<Point Elevation="-5.369" Offset="-344.896"/>
<Point Elevation="-5.909" Offset="-321.896"/>
<Point Elevation="-5.972" Offset="-318.479"/>
<Point Elevation="-6.203" Offset="-307.947"/>
<Point Elevation="-6.559" Offset="-290.298"/>
<Point Elevation="-6.742" Offset="-282.919"/>
<Point Elevation="-7.278" Offset="-261.654"/>
<Point Elevation="-7.19" Offset="-241.456"/>
<Point Elevation="-7.206" Offset="-234.351"/>
<Point Elevation="-7.744" Offset="-212.894"/>
<Point Elevation="-7.972" Offset="-205.898"/>
<Point Elevation="-8.011" Offset="-204.056"/>
<Point Elevation="-8.937" Offset="-181.613"/>
<Point Elevation="-9.613" Offset="-169.45"/>
<Point Elevation="-10.568" Offset="-155.252"/>
<Point Elevation="-11.306" Offset="-139.728"/>
<Point Elevation="-11.435" Offset="-136.455"/>
<Point Elevation="-11.67" Offset="-122.543"/>
<Point Elevation="-11.836" Offset="-115.516"/>
<Point Elevation="-11.845" Offset="-113.826"/>
<Point Elevation="-12.223" Offset="-102.969"/>
<Point Elevation="-12.219" Offset="-100.525"/>
<Point Elevation="-12.572" Offset="-83.796"/>
<Point Elevation="-12.666" Offset="-73.185"/>
<Point Elevation="-12.605" Offset="-61.703"/>
<Point Elevation="-12.379" Offset="-44.437"/>
<Point Elevation="-12.45" Offset="-41.849"/>
<Point Elevation="-12.273" Offset="-20.661"/>
<Point Elevation="-12.271" Offset="-15.995"/>
<Point Elevation="-12.279" Offset="-14.536"/>
<Point Elevation="-12.193" Offset="7.86"/>
<Point Elevation="-12.049" Offset="12.127"/>
<Point Elevation="-11.97" Offset="26.792"/>
<Point Elevation="-11.482" Offset="39.803"/>
<Point Elevation="-11.428" Offset="47.755"/>
<Point Elevation="-11.244" Offset="53.548"/>
<Point Elevation="-10.805" Offset="70.223"/>
<Point Elevation="-10.718" Offset="74.57"/>
<Point Elevation="-10.702" Offset="75.913"/>
<Point Elevation="-10.087" Offset="96.66"/>
<Point Elevation="-9.799" Offset="103.819"/>
<Point Elevation="-9.63" Offset="112.183"/>
<Point Elevation="-9.234" Offset="126.254"/>
<Point Elevation="-8.999" Offset="137.384"/>
<Point Elevation="-8.476" Offset="159.55"/>
<Point Elevation="-8.445" Offset="160.778"/>
<Point Elevation="-8.271" Offset="164.407"/>
<Point Elevation="-7.259" Offset="184.045"/>
<Point Elevation="-7.127" Offset="189.256"/>
<Point Elevation="-6.92" Offset="198.448"/>
<Point Elevation="-6.48" Offset="207.958"/>
<Point Elevation="-6.04" Offset="221.897"/>
<Point Elevation="-5.474" Offset="242.469"/>
<Point Elevation="-5.364" Offset="247.769"/>
<Point Elevation="-5.253" Offset="251.096"/>
<Point Elevation="-4.998" Offset="265.24"/>
<Point Elevation="-4.818" Offset="275.102"/>
<Point Elevation="-4.715" Offset="277.979"/>
<Point Elevation="-4.027" Offset="298.699"/>
<Point Elevation="-3.738" Offset="309.727"/>
<Point Elevation="-3.575" Offset="322.408"/>
<Point Elevation="-3.105" Offset="340.851"/>
<Point Elevation="-2.937" Offset="346.115"/>
<Point Elevation="-2.855" Offset="359.315"/>
<Point Elevation="-2.833" Offset="366.127"/>
<Point Elevation="-2.816" Offset="367.498"/>
<Point Elevation="-2.675" Offset="385.31"/>
<Point Elevation="-2.596" Offset="391.895"/>
<Point Elevation="-2.673" Offset="406.1"/>
<Point Elevation="-2.465" Offset="418.482"/>
<Point Elevation="-2.516" Offset="427.315"/>
<Point Elevation="-2.328" Offset="445.356"/>
<Point Elevation="-2.337" Offset="446.342"/>
<Point Elevation="-2.626" Offset="452.604"/>
<Point Elevation="-3.486" Offset="470.977"/>
<Point Elevation="-3.693" Offset="476.912"/>
<Point Elevation="-3.777" Offset="496.074"/>
<Point Elevation="-3.932" Offset="501.72"/>
<Point Elevation="-4.018" Offset="513.362"/>
<Point Elevation="-3.474" Offset="529.259"/>
<Point Elevation="-3.265" Offset="532.878"/>
<Point Elevation="-2.893" Offset="543.264"/>
<Point Elevation="-2.834" Offset="544.691"/>
<Point Elevation="-2.372" Offset="551.966"/>
<Point Elevation="-1.374" Offset="568.651"/>
<Point Elevation="-1.184" Offset="572.608"/>
<Point Elevation="-0.9" Offset="589.873"/>
<Point Elevation="-0.265" Offset="600.0"/>
</Points>
</Section>
<Section Name="0+422">
<XPositionOnPaper>0.0</XPositionOnPaper>
<YPositionOnPaper>0.0</YPositionOnPaper>
<TopGridElev>0.0</TopGridElev>
<NumPoints>98</NumPoints>
<Points>
<Point Elevation="2.527" Offset="-600.0"/>
<Point Elevation="1.923" Offset="-583.886"/>
<Point Elevation="1.147" Offset="-573.7"/>
<Point Elevation="0.148" Offset="-560.844"/>
<Point Elevation="-1.561" Offset="-534.717"/>
<Point Elevation="-1.604" Offset="-534.134"/>
<Point Elevation="-2.764" Offset="-502.908"/>
<Point Elevation="-3.147" Offset="-490.643"/>
<Point Elevation="-3.634" Offset="-472.527"/>
<Point Elevation="-4.199" Offset="-442.515"/>
<Point Elevation="-4.26" Offset="-440.183"/>
<Point Elevation="-4.353" Offset="-435.493"/>
<Point Elevation="-4.626" Offset="-412.074"/>
<Point Elevation="-4.836" Offset="-400.43"/>
<Point Elevation="-4.963" Offset="-383.964"/>
<Point Elevation="-5.335" Offset="-361.676"/>
<Point Elevation="-5.378" Offset="-357.711"/>
<Point Elevation="-5.461" Offset="-354.483"/>
<Point Elevation="-5.587" Offset="-348.617"/>
<Point Elevation="-6.599" Offset="-306.504"/>
<Point Elevation="-6.923" Offset="-292.309"/>
<Point Elevation="-7.646" Offset="-260.816"/>
<Point Elevation="-7.665" Offset="-260.005"/>
<Point Elevation="-8.267" Offset="-238.897"/>
<Point Elevation="-9.466" Offset="-215.915"/>
<Point Elevation="-9.939" Offset="-205.494"/>
<Point Elevation="-10.636" Offset="-192.184"/>
<Point Elevation="-11.499" Offset="-177.238"/>
<Point Elevation="-11.845" Offset="-170.731"/>
<Point Elevation="-12.281" Offset="-152.944"/>
<Point Elevation="-12.343" Offset="-150.873"/>
<Point Elevation="-12.345" Offset="-150.114"/>
<Point Elevation="-12.485" Offset="-127.286"/>
<Point Elevation="-12.474" Offset="-120.381"/>
<Point Elevation="-12.427" Offset="-111.488"/>
<Point Elevation="-12.447" Offset="-105.883"/>
<Point Elevation="-12.651" Offset="-87.792"/>
<Point Elevation="-12.622" Offset="-78.078"/>
<Point Elevation="-12.53" Offset="-55.591"/>
<Point Elevation="-12.495" Offset="-52.513"/>
<Point Elevation="-12.115" Offset="-31.23"/>
<Point Elevation="-12.009" Offset="-23.783"/>
<Point Elevation="-11.488" Offset="-9.776"/>
<Point Elevation="-11.236" Offset="4.184"/>
<Point Elevation="-10.416" Offset="13.232"/>
<Point Elevation="-10.641" Offset="20.134"/>
<Point Elevation="-10.28" Offset="44.002"/>
<Point Elevation="-10.292" Offset="44.652"/>
<Point Elevation="-10.289" Offset="44.792"/>
<Point Elevation="-10.828" Offset="56.567"/>
<Point Elevation="-10.797" Offset="59.917"/>
<Point Elevation="-10.401" Offset="76.981"/>
<Point Elevation="-10.186" Offset="85.234"/>
<Point Elevation="-10.076" Offset="91.139"/>
<Point Elevation="-9.671" Offset="106.374"/>
<Point Elevation="-9.556" Offset="114.729"/>
<Point Elevation="-9.018" Offset="131.881"/>
<Point Elevation="-8.96" Offset="133.976"/>
<Point Elevation="-8.938" Offset="135.194"/>
<Point Elevation="-8.59" Offset="157.634"/>
<Point Elevation="-8.516" Offset="163.615"/>
<Point Elevation="-8.379" Offset="182.167"/>
<Point Elevation="-8.093" Offset="194.118"/>
<Point Elevation="-7.878" Offset="204.774"/>
<Point Elevation="-7.548" Offset="221.957"/>
<Point Elevation="-7.482" Offset="225.607"/>
<Point Elevation="-7.519" Offset="237.596"/>
<Point Elevation="-7.537" Offset="244.959"/>
<Point Elevation="-7.524" Offset="247.228"/>
<Point Elevation="-7.202" Offset="265.159"/>
<Point Elevation="-6.937" Offset="273.625"/>
<Point Elevation="-6.791" Offset="280.238"/>
<Point Elevation="-6.674" Offset="286.833"/>
<Point Elevation="-6.486" Offset="295.474"/>
<Point Elevation="-6.408" Offset="313.252"/>
<Point Elevation="-6.365" Offset="316.221"/>
<Point Elevation="-6.294" Offset="327.463"/>
<Point Elevation="-6.2" Offset="337.22"/>
<Point Elevation="-6.207" Offset="338.339"/>
<Point Elevation="-5.867" Offset="355.513"/>
<Point Elevation="-5.65" Offset="362.307"/>
<Point Elevation="-5.567" Offset="375.271"/>
<Point Elevation="-5.433" Offset="387.259"/>
<Point Elevation="-5.152" Offset="396.436"/>
<Point Elevation="-4.378" Offset="413.203"/>
<Point Elevation="-4.146" Offset="425.427"/>
<Point Elevation="-4.099" Offset="435.841"/>
<Point Elevation="-3.993" Offset="439.726"/>
<Point Elevation="-3.418" Offset="457.353"/>
<Point Elevation="-2.943" Offset="467.452"/>
<Point Elevation="-2.548" Offset="480.037"/>
<Point Elevation="-1.52" Offset="499.033"/>
<Point Elevation="-1.085" Offset="505.573"/>
<Point Elevation="-0.707" Offset="509.068"/>
<Point Elevation="-0.564" Offset="514.17"/>
<Point Elevation="1.044" Offset="545.131"/>
<Point Elevation="3.671" Offset="586.351"/>
<Point Elevation="4.257" Offset="600.0"/>
</Points>
</Section>
<Section Name="0+672">
<XPositionOnPaper>0.0</XPositionOnPaper>
<YPositionOnPaper>0.0</YPositionOnPaper>
<TopGridElev>0.0</TopGridElev>
<NumPoints>101</NumPoints>
<Points>
<Point Elevation="0.751" Offset="-600.0"/>
<Point Elevation="0.17" Offset="-590.282"/>
<Point Elevation="-0.185" Offset="-585.509"/>
<Point Elevation="-1.698" Offset="-564.455"/>
<Point Elevation="-2.012" Offset="-556.049"/>
<Point Elevation="-2.541" Offset="-536.428"/>
<Point Elevation="-2.738" Offset="-526.646"/>
<Point Elevation="-3.164" Offset="-510.314"/>
<Point Elevation="-3.581" Offset="-498.217"/>
<Point Elevation="-3.967" Offset="-482.548"/>
<Point Elevation="-4.17" Offset="-466.638"/>
<Point Elevation="-4.63" Offset="-454.111"/>
<Point Elevation="-4.885" Offset="-437.444"/>
<Point Elevation="-4.739" Offset="-426.605"/>
<Point Elevation="-4.755" Offset="-407.163"/>
<Point Elevation="-4.887" Offset="-399.338"/>
<Point Elevation="-5.348" Offset="-377.159"/>
<Point Elevation="-5.455" Offset="-371.865"/>
<Point Elevation="-6.085" Offset="-345.987"/>
<Point Elevation="-6.145" Offset="-343.34"/>
<Point Elevation="-6.428" Offset="-331.877"/>
<Point Elevation="-6.448" Offset="-330.864"/>
<Point Elevation="-7.104" Offset="-309.854"/>
<Point Elevation="-7.356" Offset="-296.783"/>
<Point Elevation="-7.378" Offset="-295.786"/>
<Point Elevation="-8.31" Offset="-272.558"/>
<Point Elevation="-9.344" Offset="-249.668"/>
<Point Elevation="-9.524" Offset="-246.49"/>
<Point Elevation="-10.115" Offset="-236.3"/>
<Point Elevation="-10.351" Offset="-218.394"/>
<Point Elevation="-10.714" Offset="-213.348"/>
<Point Elevation="-11.674" Offset="-204.751"/>
<Point Elevation="-11.699" Offset="-201.381"/>
<Point Elevation="-11.744" Offset="-193.463"/>
<Point Elevation="-12.329" Offset="-178.033"/>
<Point Elevation="-12.592" Offset="-165.284"/>
<Point Elevation="-12.777" Offset="-155.308"/>
<Point Elevation="-12.43" Offset="-144.408"/>
<Point Elevation="-12.528" Offset="-139.081"/>
<Point Elevation="-12.669" Offset="-133.221"/>
<Point Elevation="-12.262" Offset="-121.876"/>
<Point Elevation="-12.13" Offset="-110.999"/>
<Point Elevation="-12.286" Offset="-98.019"/>
<Point Elevation="-12.367" Offset="-89.578"/>
<Point Elevation="-11.654" Offset="-75.025"/>
<Point Elevation="-11.598" Offset="-71.369"/>
<Point Elevation="-12.418" Offset="-63.45"/>
<Point Elevation="-12.586" Offset="-57.395"/>
<Point Elevation="-12.029" Offset="-40.428"/>
<Point Elevation="-11.941" Offset="-37.225"/>
<Point Elevation="-12.05" Offset="-17.903"/>
<Point Elevation="-11.919" Offset="-14.255"/>
<Point Elevation="-10.878" Offset="5.213"/>
<Point Elevation="-10.987" Offset="7.781"/>
<Point Elevation="-12.241" Offset="17.876"/>
<Point Elevation="-12.175" Offset="19.902"/>
<Point Elevation="-12.679" Offset="37.309"/>
<Point Elevation="-12.779" Offset="41.445"/>
<Point Elevation="-12.756" Offset="41.967"/>
<Point Elevation="-12.147" Offset="62.308"/>
<Point Elevation="-12.189" Offset="63.587"/>
<Point Elevation="-11.804" Offset="83.447"/>
<Point Elevation="-11.748" Offset="85.224"/>
<Point Elevation="-11.68" Offset="105.223"/>
<Point Elevation="-11.648" Offset="107.415"/>
<Point Elevation="-11.299" Offset="124.477"/>
<Point Elevation="-11.183" Offset="129.8"/>
<Point Elevation="-10.608" Offset="145.77"/>
<Point Elevation="-10.491" Offset="152.394"/>
<Point Elevation="-10.528" Offset="156.006"/>
<Point Elevation="-10.486" Offset="170.955"/>
<Point Elevation="-10.376" Offset="180.254"/>
<Point Elevation="-10.183" Offset="192.924"/>
<Point Elevation="-10.122" Offset="198.333"/>
<Point Elevation="-9.995" Offset="209.165"/>
<Point Elevation="-9.803" Offset="220.192"/>
<Point Elevation="-9.727" Offset="230.156"/>
<Point Elevation="-9.793" Offset="235.687"/>
<Point Elevation="-9.444" Offset="249.066"/>
<Point Elevation="-9.308" Offset="258.031"/>
<Point Elevation="-9.253" Offset="261.971"/>
<Point Elevation="-8.511" Offset="283.111"/>
<Point Elevation="-8.163" Offset="289.464"/>
<Point Elevation="-7.102" Offset="307.459"/>
<Point Elevation="-6.902" Offset="312.383"/>
<Point Elevation="-6.731" Offset="322.229"/>
<Point Elevation="-6.609" Offset="326.578"/>
<Point Elevation="-6.011" Offset="346.572"/>
<Point Elevation="-5.822" Offset="350.33"/>
<Point Elevation="-4.461" Offset="371.66"/>
<Point Elevation="-4.318" Offset="373.491"/>
<Point Elevation="-1.818" Offset="396.911"/>
<Point Elevation="-1.583" Offset="398.654"/>
<Point Elevation="1.249" Offset="416.959"/>
<Point Elevation="1.897" Offset="437.491"/>
<Point Elevation="3.568" Offset="467.863"/>
<Point Elevation="6.567" Offset="551.744"/>
<Point Elevation="6.606" Offset="552.895"/>
<Point Elevation="6.604" Offset="553.18"/>
<Point Elevation="6.591" Offset="553.868"/>
<Point Elevation="5.965" Offset="600.0"/>
</Points>
</Section>
</Sections>
</root>

จบตอนที่ 2

  • พบกันตอนหน้า ตอนที่ 3 ครับ

สิ้นสุดการรอคอย XSection Plot รุ่น 4.10 มาแล้ว ตอนที่ 1

ถึงจะล่าช้าแต่ก็มาตามสัญญา

  • โปรแกรมเขียนรูปตัดตามขวาง XSection Plot รุ่นนี้รุ่น 4.10 มาแทนรุ่นเดิม 3.25 ที่ปลดระวางด้วยเนื่องจากอายุมากร่วมสองทศวรรษ แต่ขอแจ้งไว้ก่อนรุ่นนี้ยังเป็นรุ่นทดลองใช้ (beta) นะครับ เพราะยังมีบั๊กอยู่บ้าง แต่โดยรวมใช้งานได้

xsectionplotv410-intro

ความเป็นมาของโปรแกรม

  • อ่านความเป็นมาของโปรแกรมได้อย่างละเอียดที่ => ก้าวต่อไปของโปรแกรมเขียนรูปตัดตามขวาง XSection Plot ในร่างใหม่พัฒนาด้วย Python + Qt
  • และที่ => ก้าวที่ใกล้กับโปรแกรมเขียนรูปตัดตามขวาง XSection Plot รุ่นใหม่
  • ก็ขอเท้าความเป็นมาโปรแกรมสักนิดเผื่อผู้อ่านไม่ได้ติดตามมาก่อน โปรแกรมเขียนรูปตัดตามขวาง XSection Plot รุ่นเดิมพัฒนาด้วย VB อายุอานามเกือบยี่สิบปีแล้วครับ ใช้ได้ดีตอนวินโดส์ XP แต่หลังมาวินโดส์ 7, 8 และวินโดส์ 10 ก็มีปัญหากับการติดตั้งเรื่อยมา เพราะโปรแกรมยังใช้ library ของวินโดส์รุ่นเก่า พอเจอวินโดส์ใหม่หาไลบรารีไม่เจอ ผมเขียนใหม่ด้วยภาษาไพธอน (Python) ใช้ระบบกราฟฟิคเฟรมเวิร์คของ Qt รวมๆเรียกว่า PyQt
  • ขณะที่พัฒนานี้ใช้ Python 3.5 ส่วน Qt ใช้ PyQt รุ่น 5.6 ส่วน Qt เป็นเฟรมเวิร์คที่ใหญ่โตมากๆ อ่านคู่มือไม่ไหว ก็จะเลือกอ่านแต่เท่าที่ใช้ แน่นอนสิ่งที่ทำให้ผมโปรแกรมได้สำเร็จยกเครดิตให้ stackoverflow.com ถ้าไม่มีเวปไซต์ถามและตอบปัญหาการเขียนโปรแกรมนี้ ยังคิดว่าจะเขียนโปรแกรมได้อย่างไร มีปัญหาอะไร เข้าไปค้นหาทีไร ก็เจอคำตอบทุกที จะมีคนที่มีปัญหาแบบเรามาถามก่อนเรา พร้อมมีคนมาตอบให้ ส่วนใหญ่ 99% คำตอบสามารถนำไปใช้งานต่อยอดได้

สาเหตุแห่งความล่าช้า

  • เรื่องความรู้ความเข้าใจภาษาไพธอน อาจจะไม่ใช่ปัญหานักเนื่องจากไพธ่อนเป็นภาษาที่เรียบง่ายแต่ทรงพลัง ปัญหาของผมลำดับแรกคือ Qt Framework ที่เกี่ยวกับกราฟฟิค ศึกษาได้ค่อนข้างช้า ก่อนหน้านี้ไปทุ่มให้กับ wxPython ที่เป็น GUI Framework ที่ใช้ wxWidget ทำให้เสียเวลาไปมาก  พูดอย่างนี้ไม่ใช่ wxPython ไม่ดีนะครับเพียงแต่ส่วนตัวแล้วไม่ชอบ มาเจอ Qt นี่ใช่เลย
  • ความล่าช้าลำดับที่สอง คือไลบรารีที่ผมเอามาเขียนไฟล์ Autocad DXF ใช้ ezdxf เป็นโครงการเปิดซอร์ส ตัวไลบรารีใช้งานง่าย เก่งมาก ผมลองสมมุติว่าถ้าให้ผมเขียนไลบรารีนี้เอง คงไม่มีปัญญาเป็นแน เพราะผู้พัฒนาเข้าใจถ่องแท้มาก ทั้งโครงสร้างของ  DXF ที่รุ่นหลังๆค่อนข้างซับซ้อนพอสมควร ปัญหาของผมอยู่ที่คอมไพล์โปรแกรมเพื่อสร้างไฟล์ execute ที่เป็นไบนารี .exe ตอนแรกใช้ py2exe กลับไม่สามารถรันได้ พอเปิดโปรแกรมใช้งานพอเรียกใช้ไลบรารีนี้จะ crash ทันที ตอนแรกหาสาเหตุไม่เจอ ตอนหลังมาทราบว่ามี่ไฟล์ที่ไลบรารี ezdxf ที่ต้องการใช้ แต่ py2exe ไม่ได้ใส่ไปให้ด้วย คือ py2exe จะสร้างไฟล์ไลบรารีที่โปรแกรมเรียกใช้ทั้งหมดแล้ว zip ไว้ แต่ขาดไฟล์บางไฟล์ของ ezdxf
  • ผมหันมาใช้ pyinstaller คอมไพล์และสร้างไฟล์  .exe สำเร็จเนื่องจาก pyinstaller ใช้วิธีการที่ง่ายกว่าแบบคิดไม่ถึงและก็ยืดหยุ่นมาก ตอนนี้เทใจให้กับ pyinstaller เมื่อได้ไฟล์ execute มาก็ไม่ยากแล้วทำไฟล์ติดตั้ง (setup) ด้วย Inno Setup เจ้าเดิมที่ผมใช้ประจำ เพราะฟรี ใช้งานง่าย

จุดประสงค์ของโปรแกรม

  • เนื่องจากจุดกำเนิดโปรแกรมนี้เริ่มต้นในยุค PC กับวินโดส์ที่กำลังรุ่งเรืองคือวินโดส์ 98 ที่โปรแกรมด้าน Civil/Survey ยังไม่เก่ง การเขียนรูปตัดจึงค่อนข้างจะใช้มือแบบแมนวลคือเน้นป้อนเข้าตาราง ต่อมาเริ่มมีโปรแกรมด้าน Civil/Survey เช่น Land desktop, Terramodel, โปรแกรมตระกูล Microstation เช่น PowerCivil, Inroads ประมาณนี้ หลายๆโปรแกรมสามารถ export รูปตัดเป็น text file ได้ ผมก็พัฒนาโปรแกรมให้สามารถอ่านเข้ามาโปรแกรม XSection Plot เพื่อจัดรูปแบบและสามารถนำไฟล์เข้าโปรแกรมจำพวก CAD ได้
  • ปัจจุบัน Terramodel, Land desktop หยุดพัฒนาไปหลายปี แต่ผู้พัฒนาหันมาพัฒนาตัวใหม่ที่เก่งกว่าเดิมเช่น Trimble Business Center (TBC) ของค่าย Trimble และค่าย Autodesk ก็มี Autodesk Civil3D เป็นโปรดัคเรือธง ผมลองใช้มาหมดแล้วครับ ยอมรับความสามารถเก่งกาจไปไกล แต่ราคาต่อไลเซนต์ก็สูงมากโข ถามกันจริงๆ ถ้าจะซื้อมาใช้แบบไลเซนต์ จะมีผู้ใช้ที่ไม่ใช่องค์กรสักกี่คนที่มีปัญญาซื้อมาใช้งานได้ นี่เป็นปัญหาอย่างหนึ่ง

ดาวน์โหลดและติดตั้ง

  • ดาวน์โหลดได้ที่ XSectionPlotV410b867Setup64.zip หรือดูด้านขวามือตรง ดาวน์โหลด (Download) มองหาลิ๊งค์สำหรับติดตั้งโปรแกรม  “XSection Plot V4.10” ในเบื้องต้นมีเฉพาะรุ่น 64 บิต (สำหรับรุ่น 32 บิต รออีกสักพักครับ) ดาวน์โหลดมาแล้ว ขนาดโปรแกรมไม่ใหญ่ประมาณ 16 MB จากนั้นก็ติดตั้งได้ง่ายๆ ติดตั้งแล้วจะเห็น icon ขึ้นมาบน Desktop ดังรูปด้านล่าง

xsectionplot_icon

พาทัวร์โปรแกรมทดลองใช้งาน

  • ต่อไปผมจะพาลองทดลองใช้โปรแกรมคร่าวๆ พาทัวร์การใช้งานรวดเดียวจบ ผมมีไฟล์ตัวอย่าง ตอนติดตั้งโปรแกรมจะไปอยู่ในโฟลเดอร์ของวินโดส์ C:\Users\ชื่อผู้ใช้\AppData\Roaming\XSection Plot\examples data โฟลเดอร์นี้จะถูกซ่อนอัตโนมัติ ผู้ใช้หน้าใหม่ๆอาจจะหาไม่เจอ กรณีหาไม่เจอผมเตรียมตัวช่วยไว้
  • เปิดโปรแกรมมาครั้งแรกจะเห็นว่าตารางโล่งไม่มีข้อมูล

xsectionplotv410-firstload

1.ที่จัดเก็บข้อมูลตัวอย่าง

  • เปิดเมนู Help เลือกคลิกที่ “Example data”

help_examples_data

  • โปรแกรมจะเปิด windows explorer ของวินโดส์มาให้ มองไปจะเห็นโฟลเดอร์ “examples data”

examples_data_folder

  • จากนั้น double click เข้าไปที่โฟลเดอร์ “example data\mz\import files” จะเห็นไฟล์อยู่สองไฟล์ มาถึงตรงนี้ขอให้คลิกแถบ path ดังรูปแล้วก็ใช้เมาส์คลิกขวาเลือก copy ตอนนี้ path อยู่ในคลิปบอร์ดแล้ว ต่อไปจะใช้โปรแกรม XSection Plot ทำการ import ข้อมูลที่อยู่ในพาทนี้เข้าโปรแกรม

mz_import_files_folder

2.นำข้อมูลดินเดิมเข้าโปรแกรม (Import file)

  • คลิก Import text file ที่ไอคอนตามรูปเพื่อจะนำเข้าไฟล์รูปตัด จะเห็นไดอะล็อกของ Import XSection text file ขึ้นมา คลิกที่ไอคอน Open เพื่อเปิดไฟล์

xtoolbar_import

import_dialog

  • จะเห็นไดอะล็อก “Open X-Section text file” เอาเมาส์ไปคลิกที่แถบพาทดังรูปแล้ว paste กด enter สักครั้งหนึ่งจะเห็นไฟล์ app_ch155m.xsc ที่เก็บไฟล์รูปตัดไว้ จากนั้นคลิกเลือกไฟล์นี้

xfolder_import

  • โปรแกรมจะเปิดไฟล์แล้วอ่านรูปตัดแสดง preview ไฟล์รูปตัด สังเกตว่ารูปแบบค่าปริยายจะเลือก Terramodel Road (4 decimal) คลิก “Next >” เพื่อไปขั้นตอนต่อไป

import_view

3.เลือกรูปตัดให้พอดีกับหน้ากระดาษแบบ

  • เมื่อโปรแกรมอ่านพบรูปตัดแล้วจะนำรูปตัดมาแสดงเป็นลิสต์เพื่อจะให้ผู้ใช้เลือกรูปตัดไปใส่กระดาษแบบตามที่ต้องการ ดูรูปข้างล่าง ข้อสังเกตจะเห็นขั้นตอนที่  3.เลือกปลายทาง ไฟล์นี้เป็นค่าระดับดินเดิมจึงเลือก Copy to Existing Ground section ขั้นตอนที่ 4.copy ไปตารางข้อมูล เป็นอันเรียบร้อย

import_selected

  • ข้อมูลรูปตัดจะถูก  copy ตารางป้อนข้อมูลดินเดิม (Existing Ground Section)

xsectionplot_import_ground

4.นำเข้าข้อมูลไฟล์ Typical Section

  • ต่อไปจะนำข้อมูลดินเดิม Typical section  จาก toolbar เลือกไอคอน “Import text file” เปิดไฟล์ที่โฟลเดอร์เดิม ที่นี้เลือกไฟล์ “design_ch.xsc” คลิก Open โปรแกรมจะเปิดไฟล์มาให้ดูก่อนจากนั้นคลิก “Next >” เพื่อมาเลือกรูปตัด เลือกตามรูปโดยเฉพาะขั้นตอนที่ 3.เลือกปลายทาง เลือก “Copy to Typical section” สุดท้ายคลิกที่ “Copy to >>

import_selected_ts

  • โปรแกรมจะนำข้อมูล Typical มาลงที่ตารางข้อมูล Typical section

typical_after_imported

5.บันทึกไฟล์ข้อมูล (Save file)

  • เมื่อนำข้อมูลเข้ามาแล้ว สิ่งแรกควรจะบันทึกไฟล์ข้อมูลลงดิสค์ คลิกที่ไอคอน “Save” เนื่องจาก Tab มีสองหน้าคือ Typical Section และ Existing Ground Section เวลาจะบันทึกไฟล์ข้อมูลแบบไหนก็ให้คลิกที่แท็บให้ตรงกัน เช่นถ้าต้องการบันทึกไฟล์ข้อมูลของดินเดิมก็ให้คลิกที่แท็บ “Existing Ground Section”

toolbar_save

  • ตอนนี้อยู่แท็บ “Typical Section” เราจะบันทึกไฟล์ข้อมูลนี้ก่อน ผมจะเก็บใน Documents ซึ่ง extension ของไฟล์จะเป็น .txml โดยอัตโนมัต ไฟล์ข้อมูลนี้เป็น xml เปิดดูได้ด้วย Notepad ของวินโดส์ ส่วนรูปแบบฟอร์แมตของไฟล์รุ่นเก่าเป็นไบนารีมีนามสกุล .XST

save_typical_section_file

  • บันทึกไฟล์ดินเดิม (Existing Ground Section) คลิกที่แท็บ “Existing Ground Section” เพื่อสวิตช์มาที่ตารางข้อมูลดินเดิม คลิก “Save” ที่ toolbar ด้านบน เลือกโฟลเดอร์ Documents ป้อนชื่อไฟล์ดังรูปด้านล่าง ไฟล์จะมี extension เป็น .gxml อัตโนมัติsave_existing_ground_section

จบตอนที่ 1 ติดตามต่อตอนที่ 2

  • เมื่อบันทึกข้อมูลรูปตัดลงไฟล์แล้วเราสามารถปิดโปรแกรมได้ โดยที่ไม่ต้องเริ่มต้นใหม่เมื่อเปิดโปรแกรมอีกครั้ง ก็ขอจบตอนที่ 1 ก่อน เพราะจะยาวมากเกินไปติดตามตอนที่ 2 ต่อได้ครับ