Tag: ภาษาซี

ติดปีกเครื่องคิดเลขเทพ Casio fx 9860G II SD ด้วยโปรแกรมภาษาซีบน AddIn ตอนที่ 9 โปรแกรมคำนวณหาจุดตัด (Intersection)

งานในด้านสำรวจเป็นงานที่ต้องเกี่ยวข้องกับ Geometry บน plane เป็นส่วนใหญ่ ในบางครั้งอาจจะมีโจทย์ที่ต้องคำนวณหา จุดตัดระหว่างเส้นตรงสองเส้น หรือเส้นตรงกับวงกลม หรือวงกลมกับวงกลม โดยที่เส้นตรงอาจจะทราบค่าพิกัดหัวและท้าย หรือทราบค่าพิกัดเพียงหนึ่งจุดและค่าอะซิมัท ส่วนวงกลมนั้นจะต้องทราบค่าพิกัดจุดศูนย์กลางและรัศมี สูตรการคำนวณไม่ได้ยาก สมัยนี้โจทย์พวกนี้เราใช้โปรแกรมด้าน CAD เขียนแบบช่วยเสียเป็นส่วนใหญ่ อย่างที่ผมเคยบอกออกไปครับ ถ้าช่างสำรวจเรามีโอกาสได้ใช้สมองคิดด้าน geometry บ้างและสามารถใช้เครื่องคิดเลขเป็นตัวช่วย ก็จะสามารถพัฒนาทักษะด้านนี้พอสมควร

โปรแกรมคำนวณหาจุดตัด (Intersection)

โปรแกรมเขียนไว้นานแล้ว แต่มีโอกาสมาปรับแก้ใหม่ให้สามารถคำนวณจุดสัมผัส เช่นเส้นตรงกับวงกลมโดยสามารถตั้ง Tolerance ได้ ผมตั้งไว้ที่ 1 มม. ขอขยายความว่าเราสามารถหาจุดตัดเส้นตรงกับวงกลมได้เป๊ะๆ สองจุด แต่ในกรณีที่เป็นจุดสัมผัส (Tangent) นั้นยากโอกาสน้อยมากที่จะคำนวณหาจุดสัมผัสจากโจทย์ที่กำหนดเส้นตรงที่ผ่านจุดและมีทิศทางตามอะซิมัท มาสัมผัสกับวงกลมที่กำหนดจุดศูนย์กลางและรัศมี  ผมจึงตั้ง tolerance ไว้ 1 มม. ถ้าเส้นตรงมาเฉียดจุดสัมผัสนี้ไม่ว่าจะด้านนอกหรือด้านในวงกลมถ้าระยะห่างเส้นตรงห่างจากจุดสัมผัสจริงน้อยกว่า 1 มม. ก็ให้ถือว่าเส้นตรงเส้นนี้สัมผัสกับวงกลม สำหรับไอคอนโปรแกรมเมื่อติดตั้งแล้ว ดังรูปด้านล่าง

ดาวน์โหลดและติตตั้งบนเครื่องคิดเลข

ไปที่หน้าดาวน์โหลด (Download) มองหาโปรแกรมบนเครื่องคิดเลข Casio fx-9860G II SD  ชื่อโปรแกรม Intersection จากนั้นทำการดาวน์โหลดมาจะได้ไฟล์ชื่อ “INSCTEX.G1A” แล้วทำการ copy ไฟล์ตัวนี้ไปยังเครื่องคิดเลขด้วยโปรแกรม Casio FA-124  หรือ copy ผ่านทางตัว SD Card ที่มากับเครื่องคิดเลข

เริ่มต้นใช้งานโปรแกรมหาจุดตัด (Intersection)

กดคีย์ “Main Menu” ของเครื่องคิดเลขใช้คีย์ลูกศรไล่ไปหาไอคอนโปรแกรม Intersection ดังรูป แล้วกดคีย์ “EXE”

เมนูหลักของโปรแกรม

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

F1 – Set สำหรับเลือกการคำนวณว่าจะเป็นเส้นตรงตัดกับเส้นตรง เส้นตรงกับวงกลม หรือวงกลมกับวงกลม

F2 – IN (Input) จะเป็นการป้อนค่าพิกัดหรืออะซิมัท ตามตัวเลือกที่เลือกไว้ในเมนูแรก (F1 – Set)

F3 – Calc คำนวณหาจุดตัด ซึ่งในเมนูย่อยสามารถแสดงรูปเส้นตรง (Plot) วงกลมพร้อมจุดตัดได้

F5 – Info แสดงเครดิตไลบรารี ที่โปรแกรมนำมาใช้งาน

F6-Exit ออกจากโปรแกรม

ตัวอย่างที่ 1 คำนวณหาจุดตัดระหว่างเส้นตรงกับเส้นตรง (Line and Line Intersection)

เป็นการคำนวณหาจุดตัดเมื่อกำหนดเส้นตรงสองเส้นที่มีค่าพิกัดหัวและท้าย ดังรูปด้านล่างเป็นแปลงที่ดิน DEFG ต้องการหาค่าพิกัดจุด “X” ซึ่งเป็นพิกัดศุนย์กลางพื้นที่ที่เกิดจากเส้นตรงจากมุมของแปลงที่ดินลากเป็นเส้นทแยงมุมตัดกัน

เลือกรายการคำนวณ

ที่เมนูหลักของเครื่องคิดเลขกดคีย์ F1-Set จะเห็นตัวเลือกรูปแบบการคำนวณจุดตัด (Intersection Type) เมื่อกดคีย์ “EXE” จะเห็นรายการให้เลือก 4 อย่าง ให้เลือก “Line X Line” ดังรูป กดคีย์ “EXE” จากนั้นกดคีย์ F6-OK เพื่อออก

ป้อนค่าพิกัด

กลับมาที่เมนูหลักของโปรแกรม กดคีย์ F2-IN ป้อนค่าพิกัดของเส้นตรงสองเส้น ตามโจทย์ข้างต้น กดคีย์ F6 – OK เพื่อออก

คำนวณหาจุดตัด

กลับมาที่เมนูหลักของโปรแกรม จากนั้นกดคีย์ F3 – Calc เพื่อคำนวณหาจุดตัด “X” โปรแกรมจะทวนค่าพิกัดของเส้นตรงเส้นที่ป้อนไว้ก่อนจะแสดงค่าพิกัดจุดตัด ถ้าจุดนี้อยู่บนเส้นตรงทั้ง 2 เส้น กดคีย์ F2 – PgDn เพื่อเลื่อนไปหน้าต่อไป

หน้าสุดท้ายจะเห็นค่าพิกัดจุดตัด “X” N = 1652.560, E = 1739.142

แสดงรูปตัด (Plot)

กดคีย์ F5-Plot เพื่อแสดงเส้นตรงสองเส้นและจุดตัด จอภาพเป็น dot pixel หยาบๆก็ได้ขนาดนี้พอให้เกิดจินตนาการว่าเส้นตรง 2 เส้นวางตัวในลักษณะใดและตัดกันที่ตรงไหน กดคีย์ F6-Done เพื่อออก

ตัวอย่างที่ 2 คำนวณหาจุดตัดระหว่างเส้นตรงกับเส้นตรง (Azimuth and Azimuth Intersection)

การกำหนดเส้นตรงโดยกำหนดจุดและอะซิมัทให้ ในกรณีนี้เส้นตรงจะยาวไม่สิ้นสุด ดังนั้นถ้าเส้นตรงที่กำหนดไม่ขนานกัน ก็มั่นใจได้เลยว่าหาจุดตัดได้แน่ (ต่างจากตัวอย่างแรกที่หาจุดตัดบนเส้นตรงทั้งสองเท่านั้น)

กำหนดเส้นตรงที่เป็น Alignment ของงานถนน เส้นที่ 1 เป็น  ผ่านจุด N: 2641990.928 , E = 231848.514  Azimuth: 35°28′ 1.7433″ เส้นที่ 2 ผ่านจุด N: 2641812.446 E: 231753.041 Azimuth: 9°12′ 20.4212″ คำนวณหาจุดตัด PI (Point of Intersection)

เลือกรายการคำนวณ

ที่เมนูหลักของโปรแกรม กดคีย์ F1-Set เลือกรายการคำนวณ “Azi X Azi” กดคีย์ F6-OK เพื่อออก

ป้อนค่าพิกัด

กลับมาที่เมนูหลักโปรแกรม กดคีย์ F2-IN เพื่อป้อนค่าพิกัด ไม่ลืมว่าป้อนอะซิมัทคั่นด้วยเครื่องหมายลบ  เมื่อเสร็จแล้วกดคีย์ F6-OK เพื่อออก

คำนวณหาจุดตัดและแสดงรูป

ที่เมนูหลักของโปรแกรม กดคีย์ F3-Calc เพื่อคำนวณหาจุดตัด โปรแกรมจะทวนค่าพิกัดที่ป้อนเข้าไปก่อน กดคีย์ F2-PgDn เพื่อเลื่อนไปหน้าแสดงผลถัดไป

จะได้ค่าพิกัดจุดตัดที่เป็นจุด PI (Point of Intersection N: 2641870.013, E: 231762.371 กดคีย์ F5-Plot จะเห็นรูปร่างเส้นตรงสองเส้น พร้อมจุดตัด “I1” บนหน้าจอภาพกดคีย์ F6-Done สองครั้งเพื่ออก

ตัวอย่างที่ 3 คำนวณหาจุดตัดระหว่างเส้นตรงกับวงกลม (Azimuth and Circle Intersection)

อย่างที่ผมเกริ่นไปข้างต้นว่าเส้นตรงถ้าตัดผ่าเข้าไปในวงกลมจะได้จุดตัดสองเส้น แต่กรณีพิเศษที่เส้นตรงไปสัมผัสกับวงกลมกรณีนี้จะได้จุดตัดคือจุดสัมผัสมาจุดเดียว มาลองดูตัวอย่างแบบนี้ กำหนดให้เส้นตรงผ่านจุด N: 2642178.562, E: 231597.085 Azimuth: 161°8′ 58.2981″ กำหนดวงกลมมีจุดศูนย์กลาง N: 2641772.451, E: 231999.821  รัศมี 249.921 เมตร

เลือกรายการคำนวณ

ที่เมนูหลักของโปรแกรม กดคีย์ F1-Set เลือกรายการคำนวณ “Azi X Cir” กดคีย์ F6-OK เพื่อออก

ป้อนค่าพิกัดและรัศมีวงกลม

ที่เมนูหลักของโปรแกรม กดคีย์ F2-IN เพื่อป้อนค่าพิกัดของเส้นตรงและป้อนค่าอะซิมัท ป้อนค่าพิกัดศูนย์กลางวงกลมพร้อมทั้งรัศมี เสร็จแล้วกดคีย์ F6-OK เพื่อออก

คำนวณจุดตัดและแสดงรูป

ที่เมนูหลักของโปรแกรมกดคีย์ F3-Calc เพื่อคำนวณจะได้ผลลัพธ์แสดงผลมาดังรูปด้านล่าง

สังเกตว่าตรงจุดตัดโปรแกรมจะแสดงว่าได้จุดสัมผัส Tangent มา 1 จุดคือ N: 2641691.702, E: 231763.305 กดคีย์ F5-Plot เพื่อแสดงรูปเส้นตรงและวงกลม ก็พอกล้อมแกล้มการวาดรูปร่างวงกลม ไม่มีไลบรารีของเครื่องคิดเลขต้องอาศัยวาดจุดลงไปตามเส้นรอบวงแทน  จุดสัมผัสแสดงด้วยตัวอักษร “I1” จุดศูนย์กลางวงกลมแสดงด้วยตัวอักษร “C1”

ตัวอย่างที่ 4 คำนวณหาจุดตัดระหว่างวงกลมกับวงกลม (Circle and Circle Intersection)

มาถึงตัวอย่างสุดท้าย ผมจะขอรวบรัดแสดงเฉพาะรูปหน้าจอ กำหนดโจทย์ วงกลมวงแรกมีค่าพิกัดศูนย์กลาง N: 2641210.885, E: 232480.916 รัศมี 525 เมตร วงกลมวงที่ 2 N: 2641256.635 E: 233130.568 รัศมี 250 เมตร คำนวณหาจุดตัดระหว่างวงกลมสองวงนี้

จัดเก็บข้อมูลและเรียกมาใช้ภายหลัง

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

ก่อนจะใช้งานได้ต้องมีการเตรียมโฟลเดอร์บน SDCard ดังต่อไปนี้  คือดึง SDCard จากเครื่องคิดเลขมาเสียบบนคอมพิวเตอร์ แล้วทำการสร้างโฟลเดอร์ชื่อ “svdata” ดังรูป แต่ถ้ามีการสร้างมาแล้วก็ไม่จำเป็นต้องทำอะไร

จากนั้นนำ SDCard มาเสียบบนเครื่องคิดเลขอีกครั้ง เมื่อนำไปใช้งานได้สักพักถ้าเอามาเปิดอีกครั้งจะเห็นไฟล์หลายๆไฟล์ มีนามสกุลเป็น “CFG”  หมายถึง config ตัวอย่างถ้าใช้โปรแกรมคำนวณหาจุดตัดนี้ไฟล์ที่จัดเก็บข้อมุลคือ “INTSCT.CFG

ก็ยังมีหลายซีรี่ย์สำหรับโปรแกรมเครื่องคิดเลขในชุดนี้ ก็ติดตามกันได้ต่อไปครับ

ติดปีกเครื่องคิดเลขเทพ Casio fx 9860G II SD ด้วยโปรแกรมภาษาซีบน AddIn ตอนที่ 8 โปรแกรมคำนวณสเกลแฟคเตอร์ (Scale Factor)

ติดปีกเครื่องคิดเลขเทพ Casio fx 9860G II SD ด้วยโปรแกรมภาษาซีบน AddIn ตอนที่ 8 โปรแกรมคำนวณสเกลแฟคเตอร์ (Scale Factor)

โปรแกรมคำนวณสเกลแฟคเตอร์ (Scale Factor) สำหรับเครื่องคิดเลข Casio fx-9860 G

ช่วงนี้อยู่ในชุดซีรี่ย์โปรแกรมเครื่องคิดเลข Casio fx-9860G  ต่อไปขอนำเสนอโปรแกรมคำนวณสเกลแฟคเตอร์ (Scale Factor) ตัวโปรแกรมพัฒนาด้วยภาษาซี  ใช้เป็นโปรแกรม AddIn ดังรูปด้านล่าง

ปัญหาการคำนวณสเกลแฟคเตอร์

สเกลแฟคเตอร์ในที่นี้ผมจะขอหมายถึง Elevation Scale Factor (ESF), Grid Scale Factor (GSF) ตลอดจน Combined Scale Factor (CSF) สามารถอ่านได้จาก blog ก่อนหน้านี้ของผมได้ที่ใช้โปรแกรม Surveyor Pocket Tools มาช่วยคำนวณ ผู้อ่านอาจจะเคยสังเกตว่าจะไม่เคยเห็นโปรแกรมคำนวณสเกลแฟคเตอร์ในเครื่องคิดเลขเท่าใดนัก ในกรณีนี้คือพวกเราใช้ค่าระดับที่อิงระดับน้ำทะเลปานกลาง (แทนด้วยสัญลักษณ์ตัว “H“) กันเป็นหลัก น้ำทะเลปานกลางนี้สามารถใช้พื้นผิวจีออยด์ (Geoid) แทนได้ แต่การคำนวณหา Elevation Scale Factor เราจะต้องทราบค่าระดับที่อ้างอิงกับ Ellipsoid (แทนด้วยสัญลักษณ์ตัว “h“) ไม่ใช่เทียบกับระดับน้ำทะเลปานกลาง ความต่างระหว่างพื้นผิวจีออยด์และพื้นผิวทรงรี เราเรียกว่า Geoid Separation (แทนด้วยสัญลักษณ์ตัว “N“) ความสัมพันธ์ระหว่างสามสิ่งนี้คือ h = H + N

การหา Geoid Separation (N) จะต้องใช้ Earth Gravity Model ซึ่งก่อนหน้านี้ใช้ EGM96 ปัจจุบันใช้ EGM2008 ที่มีความละเอียดถูกต้องมากกว่า ซึ่งโมเดลต่างๆเหล่านี้จะเป็นไฟล์ที่มีขนาดค่อนข้างใหญ่จนใหญ่มาก ทำให้ไม่สามารถนำมาใช้กับเครื่องคิดเลขในระดับนี้ได้ และถ้าเขียนโปรแกรมด้วย Casio Basic ก็คงหมดสิทธิ์ครับเพราะไม่มีคำสั่งในการอ่านเขียนไฟล์

ปัญหาและทางออก

ผมพยายามใช้โค้ดภาษาซีในการอ่านไฟล์โมเดล EGM96  ด้วย egm96-f477.c โปรแกรมสามารถคอมไพล์และบิวท์ผ่าน แต่ตอนประมวลผลอ่านไฟล์ เนื่องจากต้องใช้เมโมรีเครื่องคิดเลขมาอ่านไฟล์เข้าไปเก็บในหน่วยความจำพบว่า เมโมรีไม่พอ พยายาม optimize ด้วยตัวเองหลายๆทางแต่ไม่สำเร็จ จนมาพบโดยบังเอิญในเว็ปไซต์ ตามลิ๊งค์นี้ จุดประสงค์ทางผู้พัฒนาไลบรานี้เพื่อเขียนแอพลงบนโทรศัพท์มือถือแอนดรอยด์ วิธีการคือเขาได้ Normalize ค่า geoid separation จาก EGM2008 ขนาดเต็มลงมาเหลือขนาดแถวคอลัมน์ 181 x 91 ความถูกต้องจะถูกลดทอนลง ผมสนใจเลยเอามาคอมไพล์บน Casio SDK พบว่าทำงานได้ ใช้เมโมรีเครื่องคิดเลขที่มีอยู่เพียงพอ แต่ก็จวนเจียนจะใช้หมดเหมือนกัน เอาละความคิดที่เคยจะเขียนโปรแกรมคำนวณสเกลแฟคเตอร์บเครื่องคิดเลขก็มาเป็นจริง อาจจะได้ค่าสเกลแฟคเตอร์ที่ไม่ละเอียดเท่าคำนวณจากคอมพิวเตอร์แต่ในระดับทศนิยมหกตำแหน่ง ถือว่าได้ครับ

เครดิตผู้พัฒนาไลบรารี Geoid

ต้องขอบคุณผู้พัฒนาคือ Stefan Röttger (stefan@stereofx.org) มา ณ ที่นี้ ติดตามผลงานได้ที่เว็บไซต์ http://www.open-terrain.org/index.php ไลบรานี้ใช้สัญญาอนุญาตแบบ New BSD License

เตือนสติเรื่องสเกลแฟคเตอร์

ผมชอบวาทะของอ.ดีบุญ เมธากุลชาติ ก็ขออนุญาตเอาจากสไลด์มาแสดง ณ ที่นี้ด้วย อ.ดีบุญเรียก Grid Scale Factor ว่าตัวประกอบมาตราส่วน ส่วน Elevation Scale Factor เรียกว่าตัวประกอบความสูง ได้ใจความครบถ้วนดีครับ และก็เตือนสติคนใช้แผนที่ดังนี้

Grid Scale Factor เมื่อคูณกับ Elevation Scale Factor จะได้ Combined Scale Factor ตัวประกอบตัวนี้คือตัวสำคัญที่จะนำไปคูนกับระยะทางที่วัดบนพื้นผิวโลกเพื่อทอนลงมาบนระนาบราบของแผนที่ (Grid Distance)

ใช้ไลบรารีแปลงพิกัด MGRS

เนื่องจากโปรแกรมนี้ต้องแปลงค่าพิกัดจากระบบพิกัดฉาก  UTM  บนดาตั้ม WGS84 ไปยังค่าพิกัดภูมิศาสตร์ เพื่อส่งไปให้ฟังก์ชั่นคำนวณหาค่าสเกลแฟคเตอร์ที่ต้องการทราบค่าละติจูด ดังนั้นผมใช้ไลบรารี mrgs พัฒนาโดย Howard Butler ไลบรานี้ใช้สัญญาอนุญาตแบบ MIT License

สิ่งที่โปรแกรมต้องการ

โปรแกรมสามารถคำนวณได้ 2 แบบคือแบบ Point Scale Factor คือแบบจุดเดี่ยวๆ สามารถคำนวณมาใช้แทนพื้นที่เล็กๆประมาณ 1 กม. x 1 กม. ได้ดี และรูปแบบที่ 2 คือ Line Scale Factor ใช้สำหรับพื้นที่ที่ใหญ่ขึ้นมา ใช้ค่าพิกัด 2 จุดหัวและท้าย โปรแกรมจะต้องการทราบค่าดังนี้

  1. เลือกโซนของยูทีเอ็ม (UTM  Zone) ตั้งแต่โซน 1 ถึง 60 และเลือกซีกโลก (Hemisphere)  เลือกได้สองอย่างคือเหนือหรือใต้เส้นศูนย์สูตร
  2. ค่าพิกัดและค่าระดับของจุดที่ต้องการทราบค่าสเกลแฟคเตอร์ ต้องการค่าพิกัดเหนือใต้ในระบบยูทีเอ็มและค่าระดับที่อ้างอิงเหนือระดับน้ำทะเลปานกลาง (Orthometric Height above Meas sea level)

ในการคำนวณตัวประกอบความสูง (Elevation Scale Factor) โปรแกรมจะนำค่าความสูงเหนือระดับน้ำทะเลปานกลางมาคำนวณเป็นค่าระดับความสูงเทียบกับระดับทรงรี (Ellipsoid Height) ที่เราไม่สามารถนำค่าระดับความสูงเหนือระดับน้ำทะเลปานกลางมาใช้คำนวณเพราะว่า ตัวอย่างเข่นในประเทศไทย ค่าระดับน้ำทะเลปานกลางจะอยู่ใต้ทรงรีประมาณ 6-42 เมตร ถ้านำไปคำนวณจะได้ค่าตัวประกอบความสูงที่ไม่ถูกต้อง

ดาวน์โหลดโปรแกรม

ไปที่หน้าดาวน์โหลด Download มองหาโปรแกรม Scale Factor สำหรับเครื่องคิดเลข Casio fx-9860 G II SD ดาวน์โหลดไฟล์โปรแกรมชื่อ SFACTOR.G1A ติดตั้งลงเครื่องคิดเลข

เริ่มต้นใช้งาน

เมื่อเมนูหลัก (Main Menu) เมื่อเลื่อนลูกศรมาที่ไอคอนโปรแกรมกดคีย์ “EXE” จะเข้ามาในโปรแกรมดังรูปด้านล่าง จะเห็นเมนูด้านล่างเรียงรายกันไป ได้แก่

Sett- Setting (ตั้งค่าโซนยูทีเอ็มและเลือกซีกโลก)

PSF – Point Scale Factor ( คำนวณหาค่าสเกลแฟคเตอร์ของจุดเดี่ยว

LSF – Line Scale Factor (คำนวณหาค่าสเกลแฟคเตอร์เฉลี่ยจากจุดสองจุด)

Info – Information (แสดงไลบรารีที่ผมใช้งานอยู่ ให้เครดิตแก่พัฒนา)

Exit – Exit Program (ออกจากโปรแกรม)

ตั้งค่ายูทีเอ็ม (UTM Settings)

ทีเมนูหลักกดคีย์ F1 – Sett จะเห็นหน้าตาจอภาพเครื่องคิดเลขดังนี้

เนื่องจากโปรแกรมบนเครื่องคิดเลขมีข้อจำกัดมากๆ ผมไม่สามารถใส่ระบบพิกัดได้มากเหมือน Surveyor Pocket Tools จึงจำกัดแค่ datum “WGS84” เท่านั้น สำหรับประเทศไทยก็เลือกโซนได้สองโซนคือ 47 และ 48 ตัวอย่างที่จะแสดงต่อไปเลือกเป็นโซน 47 ส่วนซีกโลก (Hemisphere) เลือกเป็น “North” กดคีย์ F6 – OK

 

คำนวณ Point Scale Factor

ตัวอย่างที่คำนวณต่อไปจะยกมาจากตัวอย่างที่แสดงในบล็อกของ Surveyor Pocket Tools เพื่อเปรียบ

เทียบผลลัพธ์กันได้ กลับมาที่เมนูหลักกดคีย์ F1-Sett ป้อนค่าพิกัด N=1499662.173, E=683068.285, H=0.791 

เสร็จแล้วกดคีย์ F1 – Calc เพื่อคำนวณสเกลแฟคเตอร์ของจุดนี้

ผลลัพธ์จะแสดงออกมาดังรูปด้านล่าง โปรแกรมจะแสดงค่าพิกัดและค่าระดับมาให้ จากนั้นแสดงค่าละติจูดและลองจิจูด แสดงความสูงเทียบกับทรงรี = -29.598 m กดคีย์ F2-PgDn เพื่อเลื่อนไปดูหน้าต่อไป

จะเห็นค่า Geoid Separation หรือ Geoid Height = -30.389 m และได้ค่า Elevation Scale Factor = 1.00000465, Grid Scale Factor = 1.00001458 สุดท้ายค่า Combine Scale Factor = 1.00001924 ลองเทียบกับค่าที่คำนวณด้วย Surveyor Pocket Tools ดังนี้

ค่า Combined Scale Factor  = 1.0000192644 ต่างกันที่ทศนิยมแปด ผมถือว่าใช้ได้เพราะเราใช้แค่ทศนิยมที่หกก็เพียงพอแล้ว ความต่างที่แตกต่างจากที่ผมเคยบอกไปแล้วคือมาจากค่า Ellipsoid height ที่คำนวณจากโปรแกรมเครื่องคิดเลขได้ -29.598 เมตร ส่วนค่าความสูงทรงรีที่ได้จาก Surveyor Pocket Tools ได้ค่า -29.776 เมตร ต่างกันประมาณ 20 ซม.

คำนวณหาค่า Line Scale Factor

จะแสดงไดอะแกรมของการคำนวณค่าสเกลแฟคเตอร์เฉลี่ยดังรูปด้านล่าง

ที่โปรแกรมเครื่องคิดเลขกลับมาที่เมนูหลัก

กดคีย์ F3-LSF จะเห็นหน้าตาโปรแกรมดังรูปด้านล่าง ป้อนค่าพิกัดจุดที่ 1 และกดคีย์ F2-Next เพื่อไปป้อนจุดที่ 2

พร้อมแล้วกดคีย์ F1-Calc ต่อไปจะได้ผลลัพธ์ดังนี้ เลื่อนลงไปดูหน้าต่อไปก็กดคีย์ F2-PgDn

สรุปแล้วจะได้ค่าเฉลี่ย Combined Scale Factor = 1.00082320

เปรียบเทียบกับค่าที่ได้จาก Surveyor Pocket Tools เท่ากับ 1.0008232302 เช่นเคยค่าต่างกันที่ทศนิยมแปด สามารถนำไปใช้งานได้

จัดเก็บข้อมูลและเรียกมาใช้ภายหลัง

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

ก่อนจะใช้งานได้ต้องมีการเตรียมโฟลเดอร์บน SDCard ดังต่อไปนี้  คือดึง SDCard จากเครื่องคิดเลขมาเสียบบนคอมพิวเตอร์ แล้วทำการสร้างโฟลเดอร์ชื่อ “svdata” ดังรูป แต่ถ้ามีการสร้างมาแล้วก็ไม่จำเป็นต้องทำอะไร

จากนั้นนำ SDCard มาเสียบบนเครื่องคิดเลขอีกครั้ง เมื่อนำไปใช้งานได้สักพักถ้าเอามาเปิดอีกครั้งจะเห็นไฟล์หลายๆไฟล์ มีนามสกุลเป็น “CFG”  หมายถึง config ตัวอย่างถ้าใช้โปรแกรมคำนวณหาสเกลแฟคเตอร์นี้ไฟล์ที่จัดเก็บข้อมุลคือ “SFACTOR.CFG

เครดิตไลบรารี

ที่เมนูหลักกดคีย์ F5-Info จะเห็นเครดิตดังรูปด้านล่าง

โปรแกรมนี้มีขนาดใหญ่กว่าโปรแกรมอื่นๆก่อนเกือบสองเท่าเพราะว่าใช้ไลบรารีอื่นๆสามไลบรารีด้วยกัน ก็ติดตามชุดโปรแกรมเครื่องคิดเลข Casio fx-9860 G กันต่อไปครับ

ติดปีกเครื่องคิดเลขเทพ Casio fx 9860G II SD ด้วยโปรแกรมภาษาซีบน AddIn ตอนที่ 7 โปรแกรมคำนวณโค้งราบ (Horizontal Curve)

ติดปีกเครื่องคิดเลขเทพ Casio fx 9860G II SD ด้วยโปรแกรมภาษาซีบน AddIn ตอนที่ 7 โปรแกรมคำนวณโค้งราบ (Horizontal Curve)

โปรแกรมคำนวณโค้งราบ HCurve สำหรับเครื่องคิดเลข Casio fx-9860 G

ช่วงนี้อยู่ในชุดซีรี่ย์โปรแกรมเครื่องคิดเลข Casio fx-9860G ที่ใช้ไลบรารี MyLib ต่อไปขอนำเสนอโปรแกรมคำนวณโค้งราบ (Simple Horizontal Curve) ตัวโปรแกรมพัฒนาด้วยภาษาซี  ใช้เป็นโปรแกรม AddIn ดังรูปด้านล่าง

โปรแกรม HCurve คำนวณโค้งราบ (Simple Horizontal Curve)

องค์ประกอบของโค้งราบ (Elements of Horizontal Curve)

องค์ประกอบของโค้งราบ (Elements of Curve)

คำนิยาม (Abbrivations)

R – Radius คือรัศมีของโค้งราบ รัศมีจะตั้งฉากกับเส้นสัมผัสวงกลมเสมอ

PC –  Point of Curvature คือจุดเริ่มต้นโค้ง บางครั้งเรียกว่า BC (beginning of curve) หรือ TC (tangent to curve)

PI – Point of Intersection คือจุดตัดของ tangent 2 เส้น

PT – Point of Tangency คือจุดสิ้นสุดโค้ง บางครั้งเรียกว่า EC (end of curve) หรือ CT (curve to tangent)

POC – Point of Curve คือจุดบนโค้งในตำแหน่งใดก็ตาม

L – Length of Curve คือความยาวโค้งวัดตามโค้งจากจุด PC ไปจุด PT

T – Tangent Distance หรือ Tangent Length คือเส้นตรงที่สัมผัสโค้งวัดจากจุด PC ไปจุด PI หรือวัดจาก จุด PI ไปจุด PT

คุณสมบัติของโปรแกรม

โค้งราบ (Simple Horizontal Curve) ในงานสำรวจใช้ในงานสำรวจเพื่อการก่อสร้าง (Construction Survey) โดยที่ให้ตำแหน่ง (Setting out) งานก่อสร้างถนน ทางรถไฟ ผู้ใข้ป้อนข้อมูลองค์ประกอบของโค้งราบที่โปรแกรมต้องการจนครบ โปรแกรมสามารถคำนวณองค์ประกอบโค้งที่เหลือและสามารถคำนวณค่าพิกัดบนเส้น Center line หรือกระทั่งสามารถ offset ไปด้านซ้ายหรือด้านขวาก็ได้เช่นเดียวกัน สามารถคำนวณค่าพิกัดแบบทุกช่วงระยะ (interval) ให้ค่าพิกัดออกมาเป็นบัญชีรายการได้ โปรแกรมนี้ออกแบบและพัฒนามาเพื่อช่วยช่างสำรวจให้สามารถนำโปรแกรมไปตรวจสอบข้อมูลโค้งราบได้ด้วยตัวเอง

ในปัจจุบันการวางโค้งในสนาม ไม่ได้ถูกจำกัดเช่นสมัยแต่ก่อนเนื่องจากเครื่องมือเช่นอุปกรณ์กล้องสำรวจ Total Station ทันสมัยสามารถให้ตำแหน่งจากค่าพิกัดได้เลย ไม่เหมือนสมัยแต่ก่อนที่มีแต่กล้อง Theodolite และเทปวัดระยะ ที่การวางโค้งต้องอาศัยการตั้งกล้องที่จุด PC หรือ PI หรือแม้กระทั่ง PT แล้วทำการเปิดมุมและดึงเทปไปตามคอร์ด ปัจจุบันไม่ต้องทำอย่างนั้นแล้ว สามารถตั้งกล้องที่ไหนก็ได้ที่สะดวก

ก็เนื่องจากความทันสมัยของกล้อง Total Station นี้เอง ในอนาคตไม่ไกลการโอนข้อมูลจากกล้องไปที่ออฟฟิศหรือจากออฟฟิศไปที่กล้องจะเป็นเรื่องธรรมดามากผ่านทางออนไลน์ ซึ่งเรื่องนี้ข้อดีก็มีมากมาย แต่ข้อเสียที่เกิดขึ้นคือช่างสำรวจจะมีเวลาใช้สมองคิดเรื่อง geometry น้อยลงเพราะโปรแกรมบนกล้องทำให้หมด ทำให้ขาดการฝึกฝนทักษะในด้านนี้ ซึ่งผมคิดว่าอาจจะทำให้คุณภาพของบุคลากรด้านสำรวจของเราด้อยลงในอนาคต ดังนั้นการใช้เครื่องคิดเลขมาช่วยอาจจะช่วยฝึกฝนทักษะได้บ้างในจุดนี้

ดาวน์โหลดโปรแกรม (Download)

ไปที่หน้าดาวน์โหลด มองหาโปรแกรมคำนวณโค้งราบ HCurve  จะได้ไฟล์ชื่อ “HCURVEEX.G1A” เมื่อดาวน์โหลดมาแล้วโอนเข้าเครื่องคิดเลขผ่านทางโปรแกรม FA-124 หรือ SD Card

ใช้งานฟรี (Freely Usable)

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

เริ่มต้นใช้งาน

ที่เครื่องคิดเลขกดคีย์ “Menu” เพื่อเข้าสู่หน้า AddIn หรือ  Main Menu ของเครื่องคิดเลข เลื่อนลูกศรลงไปด้านล่างๆจะเห็นไอคอนของโปรแกรมดังรูปด้านล่าง กดคีย์ “EXE” เพื่อเข้าสู่โปรแกรม

จะเห็นหน้าเมนูหลักของโปรแกรมดังนี้

ก็เหมือนโปรแกรมคำนวณโค้งดิ่ง (VCurve) ที่ผ่านมาคือมีเมนูย่อยเรียงจากซ้ายไปขวา สัมพันธ์กับการกดคีย์ F1-F6 เรียงกันไป

เมนูหลัก (Main Menu)

F1 (Know) – Known สำหรับป้อนจุดที่ทราบค่า station และค่าพิกัด

F2 (Angl) – Angle สำหรับป้อนที่เกี่ยวกับมุมเช่น back tangent azimuth และมุมเบี่ยงเบน (Deflection Angle) ตลอดจนถึงทิศทางของโค้ง (Curve Direction)

F3 (Elem) – Elements สำหรับป้อนองค์ประกอบของโค้งเช่นรัศมีหรือความยาวโค้าง

F4 (Info) – Information สำหรับคำนวณหาข้อมูลพื้นฐานของโค้งทั้งหมด

F5 (Calc) – Calculate สำหรับคำนวณหาค่าพิกัดโค้งได้หลายรูปแบบเช่นกำหนดสถานี ระยะ offset ตลอดจนคำนวณจากช่วงระยะทาง (interval) ที่กำหนดให้

F6 (Exit) – Exit ออกจากโปรแกรม

ตัวอย่างการคำนวณโค้งราบ (Example)

มาดูวิธีการใช้งานจากตัวอย่างจะเข้าใจง่ายที่สุด

เลือกและป้อนสถานีที่ทราบและค่าพิกัด (Known Station and Know Coordinates)

ที่เมนูหลักกดคีย์ F1 (Know) แก้ไขค่าตามโจทย์ตัวอย่างที่ 1 ดังนี้

ในที่นี้สถานีและค่าพิกัดกำหนดที่จุด PI ทั้งคู่ เมื่อป้อนค่าเสร็จแล้วกดคีย์ F6 (OK) เพื่อออก

เลือกป้อนมุมอะซิมัทและมุมเบี่ยงเบน(Known Tangent and Deflection Angle)

ที่เมนูหลักกดคีย์ F2 (Angl) เพื่อเลือกอะซิมัทของเส้นสัมผัสที่ทราบค่าและมุมเบี่ยงเบน ตลอดจนป้อนทิศทางของโค้งราบว่าเลี้ยวซ้ายหรือเลี้ยวขวา จากตัวอย่างเลือกและป้อนค่าดังนี้

เสร็จแล้วกดคีย์ F6 (OK) เพื่อจัดเก็บค่าและออก

ป้อนองค์ประกอบโค้งราบ (Elements of Curve)

ที่เมนูหลักกดคีย์ F3 (Elem)  เลือกว่าจะป้อนค่ารัศมีโค้ง (Radius) หรือว่าความยาวโค้ง (Length of Curve) ในที่นี้เลือกรัศมีโค้งและป้อนค่า 201.950 เมตร

คำนวณหาข้อมูลพื้นฐานโค้งราบ (Curve Information)

ที่เมนูหลักกดคีย์ F4 (Info)

แสดงองค์ประกอบของโค้งและข้อมูลพื้นฐาน ค่าพิกัดของจุด PC, PI และ PT ตลอดจนจุดศูนย์กลางของโค้ง เนื่องจากจอภาพมีขนาดเล็กดังนั้นใช้การกดคีย์ F1 (PgUp) หรือ F2 (PaDn) เพื่อเลื่อนดูหน้าก่อนหน้านี้หรือหน้าถัดไป กดคีย์ F6 (Done) เพื่อออก

การคำนวณโค้งราบ (Horizontal Curve Calculation)

ที่เมนูหลักกดคีย์ F5 (Calc)จะเห็นเมนูย่อยอีกเมนูคือเมนูสำหรับคำนวณโค้งราบ

จะมีเมนูดังนี้

F1 (Sta) – Station คำนวณหาค่าพิกัดเมื่อกำหนดสถานี

F2 (INT) – Interval คำนวณหาค่าพิกัดสถานีเมื่อกำหนดช่วงระยะทาง (Interval) ให้

F4 (Info) – Information คำนวณข้อมูลพื้นฐานโค้งราบ โดยที่ผลลัพธ์เหมือนกับเมนู Info บนเมนูหลัก

F5 (Plot) – Plot Curve วาดรูปร่างโค้งราบ

F6 (Done) ออกจากเมนูคำนวณโค้งราบ

คำนวณหาค่าพิกัดเมื่อกำหนดสถานี (Calculate Coordinates of Station)

ที่เมนูคำนวณโค้งราบกดคีย์ F1 (Sta) จะมีไดอะล็อกให้ป้อนสถานี ตัวอย่างนี้ต้องการทราบค่าพิกัดของสถานี 17+200 โดยที่ offset ไปด้านซ้าย 8 เมตร ป้อนข้อมูลดังรูป ถ้าไม่ต้องการคำนวณหรือเก็บข้อมูลที่ป้อนก็กดคีย์ F5 (Canc) เพื่อ Cancel ออกไป หรือต้องการเก็บค่าแต่ไม่คำนวณก็กดคีย์ F6 (OK) ออกไป ถ้าต้องการคำนวณก็กดคีย์ F1 (Calc) จะได้ผลลัพธ์ดังรูปถัดไป กดคีย์ “EXE” เพื่อออก

คำนวณหาค่าพิกัดสถานีแบบกำหนดช่วงระยะทาง (Interval Calculation)

ที่เมนูคำนวณโค้งกดคีย์ F2 (INT) ในที่นี้ต้องการคำนวณทุกๆระยะ 25 เมตร โดยคำนวณในแนว Center Line (ไม่มีการ offset ไปซ้ายหรือขวา) กดคีย์ F1 (Calc) เพื่อคำนวณ

จะได้ผลลัพธ์ เริ่มตั้งแต่ PC (17+151.314), Sta 17+175, Sta 17+200, Sta 17+225, Sta 17+250, Sta 7+275, Sta 17+300 และสุดท้ายที่ PT (17+313.794) กด F1 (PgUp) เพื่อเลื่อนไปหน้าก่อนหน้านี้ และกด F2 (PgDn) เพื่อไปดูหน้าถัดไป กด F6 (Done)

 

วาดรูปโค้งราบ (Plot Curve)

จากเมนูคำนวณโค้งราบ กดคีย์ F5 (Plot) จะมีเมนูย่อยลงไปอีกสำหรับย่อ F1 (Z-) ขยาย F2 (Z+) ดึงรูปไปด้านซ้าย F3 (Lt) ดึงรูปไปด้านขวา F4 (Rt) กดคีย์ F5 (>) เพื่อไปเมนูย่อยอีกเมนูด้านขวา เมนูด้านขวาจะมีดึงรูปลง F1 (Dn) หรือดึงรูปขึ้น F2 (Up) กดคีย์ F6 (Exit) เพื่อออกจากเมนู

ก็อย่างว่าเครื่องคิดเลขรุ่นนี้เป็นจุดภาพ (pixel) บนจอภาพ ไม่ใช่จอภาพแบบโทรศัพท์มือถือในปัจจุบันที่มีความละเอียดสูง ข้อเสียคือแสดงภาพความละเอียดสูงไม่ได้ แต่ข้อดีไม่เปลืองแบตเตอรี สังเกตว่าแค่ถ่าน AAA สามก้อนใช้กันจนลืมครับ ดังนั้นก็ดูรูปโค้งพอให้เกิดจินตนาการว่าโค้งวางตัวในลักษณะไหน เวลาไปอยู่หน้างานจะได้วางภาพในใจได้

จัดเก็บข้อมูลและเรียกมาใช้ภายหลัง

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

ก่อนจะใช้งานได้ต้องมีการเตรียมโฟลเดอร์บน SDCard ดังต่อไปนี้  คือดึง SDCard จากเครื่องคิดเลขมาเสียบบนคอมพิวเตอร์ แล้วทำการสร้างโฟลเดอร์ชื่อ “svdata” ดังรูป แต่ถ้ามีการสร้างมาแล้วก็ไม่จำเป็นต้องทำอะไร

จากนั้นนำ SDCard มาเสียบบนเครื่องคิดเลขอีกครั้ง เมื่อนำไปใช้งานได้สักพักถ้าเอามาเปิดอีกครั้งจะเห็นไฟล์หลายๆไฟล์ มีนามสกุลเป็น “CFG”  หมายถึง config ตัวอย่างถ้าใช้โปรแกรมคำนวณโค้งราบนี้ไฟล์ที่จัดเก็บข้อมุลคือ “HCVEX.CFG

ติดปีกเครื่องคิดเลขเทพ Casio fx 9860G II SD ด้วยโปรแกรมภาษาซีบน AddIn ตอนที่ 6 โปรแกรมคำนวณโค้งดิ่ง (Vertical Curve)

ติดปีกเครื่องคิดเลขเทพ Casio fx 9860G II SD ด้วยโปรแกรมภาษาซีบน AddIn ตอนที่ 6 โปรแกรมคำนวณโค้งดิ่ง (Vertical Curve)

ประเภทลักษณะของโค้ง (Type of Curve)

โค้งในงานถนน งานรถไฟมีสองแบบคือโค้งราบ (Horizontal Curve) และโค้งดิ่ง (Vertical Curve) โค้งราบเป็นตัวกำหนดรูปรางและทิศทางของถนนในแนวราบ ส่วนโค้งดิ่งเป็นโค้งที่รองรับลักษณะภูมิประเทศขึ้นๆลงๆ การออกแบบโค้งสำหรับงานวิศวกรรมงานถนนนั้นเพื่อให้มีความปลอดภัยต่อยวดยานผู้ขับขี่ตลอดทั้งผู้โดยสาร

ประเภทโค้งดิ่ง (Type of Vertical Curve)

โค้งดิ่งจะแบ่งเป็นเส้นโค้งพาราโบลา (Parabola Vertical Curve) ลักษณะนี้จะเป็นโค้งที่นิยมกันมากที่สุดในโลกนี้แทบจะว่า 99% ก็ได้เพราะเวลารถยนต์หรือรถไฟเข้าโค้งนี้จะมีความนุ่มนวลมากที่สุด และเส้นโค้งประเภทต่อไปคือเส้นโค้งวงกลม (Circular Vertical Curve) ตามที่ได้ยินมาคือโค้งวงกลมนี้จะมีความสบายและความนุ่มนวลน้อยกว่าเส้นโค้งพาราโบลา จึงมีความนิยมน้อยกว่า ผมค้นหาในเว็บโดยใช้เสิร์ชเอนจิ้นปรากฎว่าเจอแค่เว็บเดียวที่เป็นเอกสาร PDF อธิบายสูตร คิดดูแล้วกันครับว่ามันใช้กันน้อยขนาดไหน ถึงแม้จะใช้กันน้อยมากแต่ผมก็มีโอกาสได้ใช้โค้งดิ่งแบบวงกลมนี้ในโครงการรถไฟฟ้าที่บังคลาเทศ แต่แปลกแต่จริงสำหรับรถไฟความเร็วสูงกลับนิยมใช้โค้งดิ่งแบบวงกลมมากกว่าพาราโบลา ซึ่งใช้รัศมีที่ใหญ่มากประมาณ10 กม.ขึ้นไป

ลักษณะของโค้งดิ่งจะมี 2 ลักษณะคือ โค้งหงาย (Sag Curve) และโค้งคว่ำ (Crest Curve)

โค้งทางดิ่ง (vertical Curve) แบบโค้งคว่ำ (Crest Curve) เครดิตภาพ wikibooks.org

ออกแบบโปรแกรมใหม่ (New Design)

ถ้าลองใช้โปรแกรมเครื่องคิดเลข Casio fx-9860G ที่ผมปล่อยฟรีมาก่อนหน้านี้ ระบบการติดต่อผู้ใช้จะเป็นลักษณะจากบนลงล่างคือเปิดโปรแกรมมาแล้ว โปรแกรมจะถามค่าตัวแปร เมื่อผู้ใช้ป่อนค่าลงไปจนครบ ต่อไปจะเป็นการนำค่าตัวแปรเหล่านี้มาคำนวณและแสดงผลให้ทราบ วิธีการดีตรงที่ตรงไปตรงมา ผู้ใช้จะถูกบังคับให้ป้อนค่าตามที่โปรแกรมต้องการจนครบ แต่ข้อเสียเมื่อต้องการคำนวณอีกครั้งในกรณีป้อนค่าผิดต้องการป้อนใหม่ จะต้องเรียกโปรแกรมมาอีกครั้งตั้งแต่ต้น ทำให้เสียเวลามากเกินไป จนในที่สุดก็ต้องหาตัวช่วยมาช่วยและก็ได้พบกับไลบรารี MyLib

ไลบรารี MyLib

ผมมีโอกาสได้เห็นโปรแกรมเครื่องคิดเลข HP 50g จากเว็บไซต์ที่ทางฝั่งผู้พัฒนาจากแคนาดาชื่อ Simple Geospatial Solution โปรแกรมนี้ไม่ฟรีต้องเสียเงินซื้อ ผมลองดูรูปแบบแล้วน่าสนใจ เลยกลายเป็นแรงบันดาลใจ หน้าตาประมาณรูปด้านล่าง

โปรแกรมสำรวจบนเครื่องคิดเลข HP 50g

หันมามองฝั่งเครื่องคิดเลข Casio fx-9860G ผมได้เจอคนเขียนไลบรารีเล็กๆชื่อ MyLib จากผู้ใช้นามว่า  hayzel ปล่อยซอร์สโค้ดภาษาซีออกมาด้วย ไลบรารีนี้สามารถนำมาเขียนเมนูเพื่อติดต่อกับผู้ใช้งาน และสามารถสร้างไดอะล็อกเพิ่อป้อนข้อมูลได้ และมีโค้ดสำหรับช่วยในการวาดรูปอีกนิดหน่อย ผมดูโค้ดแล้ว ถ้าให้ผมเขียนเองคงทำไม่ได้แน่ แต่ถ้าจะแกะเอามาใฃ้ก็เป็นงานถนัดไม่เหลือบ่ากว่าแรง ก็ต้องยกเครดิตและขอขอบคุณผู้เขียนไลบรารีนี้ ไม่มีไลบรารีนี้ก็ไม่มีโปรแกรมนี้

รูปแบบการติดต่อผู้ใช้ (User Interface)

รูปแบบการติดต่อผู้ใช้ ผมเขียนโปรแกรมโดยที่ออกแบบเมนูเล็กๆเรียงจากซ้ายไปขวาวางด้านล่างหน้าจอ  วิธีการนี้ผู้ใช้จะแก้ไขข้อมูลตรงไหนก็สามารถเลือกเมนูเข้าไปแก้ไขได้ การเลือกเมนูในเครื่องคิดเลขก็สามารถทำได้ง่ายด้วยการกดคีย์ F1-F6 เรียงกันไป

ไลบราาี MyLib บนเครื่องคิดเลข Casio fx-9860G

ใช้งานได้ฟรี (Free to use)

ก็ยังเหมือนเดิมคือให้ใช้งานได้ฟรีไม่มีค่าใช้จ่ายและเพื่อช่วยเหลือวงการสำรวจบ้านเราเล็กๆน้อยๆตามกำลังที่ผมมีอยู่ โปรแกรมขนาดนี้ประมาณ 800-1000 บรรทัดดูมากสำหรับเครื่องคิดเลข แต่ถ้าเทียบกับโปรแกรมบนเครื่องคอมพิวเตอร์ถือว่าเล็กจิ๊บๆมาก

คำนิยาม (Abbreviations)

สำหรับโค้งดิ่งจะมีคำนิยามคำย่อ ที่บางตำราอาจจะเรียกแตกต่างกัน

BVC – Begin of Vertical Curve – จุดเริ่มโค้ง(บางทีเรียก PVC – Point of Vertical Curve)
PVI – Point of Vertical Intersection – จุดตัดแนวดิ่ง
EVC – End of Vertical Curve  – จุดสุดโค้ง(บางทีเรียกว่า PVT – Point of Vertical Tangent)
L – Length of Curve – ความยาวโค้ง
R – Radius – รัศมีโค้ง ใช้ในโค้งดิ่งแบบวงกลม(Circular Vertical Curve) เท่านั้น
g1 – Grades of Tangents (%) – ความชันด้านสัมผัสที่ผ่านจุด BVC/PVC
g2 – Grades of Tangents (%) – ความชันด้านสัมผัสที่ผานจุด EVC/PVT

ดาวน์โหลดโปรแกรม (Download)

ไปที่หน้าดาวน์โหลด มองหาโปรแกรม VCurve สำหรับเครื่องคิดเลข Casio fx-9860G แล้วทำการดาวน์โหลดจะได้ไฟล์ VCURVEEx.G1A ทำการติดตั้งลงเครื่องคิดเลขด้วยโปรแกรม FA-124 หรือ copy ผ่าน SD Card ก็ได้

วิธีการใช้งานโปรแกรม (How to Use)

ที่เครื่องคิดเลขกดคีย์ “Menu” จะเห็นโปรแกรม AddIn ขึ้นมาใช้คีย์ลูกศรกดไปจนพบกับไอคอนโปรแกรมดังรูป กดคีย์ “EXE” เพื่อรันโปรแกรม

เมนูหลัก (Main Menu)

จะเห็นเมนูโปรแกรมเรียงรายจากซ้ายมาขวาอยู่ที่ด้านลางของจอภาพ แต่ละเมนูจะสัมพันธ์กับคีย์ F1 ,F2, F3, F4, F5 และ F6 

เมนูหลัก (main menu)

Type – Curve Type – เลือกประเภทโค้งดิ่ง (F1)

Know – Known Station – เลือก Station ที่กำหนดค่าระดับ (F2)

Elem – Elements of Curve – ป้อนค่าส่วนประกอบของโค้ง (F3)

Info – Curve Information – แสดงข้อมูลโค้ง (F4)

Calc – Calculate – คำนวณโค้งเพื่อหาสถานี ค่าระดับ (F5)

Exit – Exit Program – ออกจากโปรแกรม (F6)

ตัวอย่างที่ 1 โค้งดิ่งแบบพาราโบลา (Example 1 – Parabola Curve)

ลักษณะโค้งดิ่ง (Vertical curve diagram)

ลักษณะเป็นโค้งหงาย (Sag Curve) ความยาวโค้ง 200 เมตร ต้องเตือนใจกันลืมนิดหนึ่งความยาวโค้งดิ่งที่ระบุมานั้นเป็นความยาวในแนวราบ  (ไม่ใช่ระยะทางวัดไปตามความยาวโค้ง)

เลือกประเภทโค้งดิ่ง

จากเมนูหลักเลือกกดคีย์ F1 (Type) จะเป็นการเลือกประเภทของโค้ง จะเห็น Dropdown List

เมนูหลัก (main menu)
ประเภทโค้งดิ่ง (Curve type)

กดคีย์ “EXE” เพื่อเลือก จะเห็นมีสองทางเลือกคือลักษณะเป็นโค้งดิ่งแบบวงกลม (Circular) กับโค้งดิ่งแบบพาราโบลา สามารถใช้คีย์ลูกศรเลื่อนขึ้นลงเพื่อเลือกได้ ในที่นี้เราเลือก “Parabola” ด้วยการกดคีย์ “EXE” เมื่อเสร็จแล้วกดคีย์ F6 (OK) เพื่อยืนยัน ถ้าต้องยกเลิกก็กดคีย์ F5(Canc)

เลือกสถานีที่ทราบค่าระดับ (Known Station)

กลับมาเมนูหลักกดคีย์ F2 (Know) จะเห็นจอภาพเครื่องคิดเลขดังรูปด้านล่าง

กำหนดสถานีที่ทราบค่า (Known station)

ตรง “Known” สามารถเลือกได้ว่าต้องการกำหนดค่าระดับที่สถานีไหน จะมีให้เลือก 3 อย่างคือ BVC/PVI/EVC เลื่อนคีย์ลูกศรขึ้นลงแล้วกดคีย์ “EXE” ตามตัวอย่างนี้เลือก “PVI

 

จากนั้นเลื่อนค่าลงไปที่ Station กดคีย์ “EXE” โปรแกรมจะแสดงไดอะล็อกให้ป้อนค่าสถานีลงไปตามตัวอย่างนี้ป้อน Station : 1000 ดังรูปด้านล่าง

และเลื่อนลูกศรไปป้อนค่า Elevation = 50 เมตรเข้าไป เสร็จแล้วกดคีย์ F6 (OK) เพื่อยืนยัน

ป้อนข้อมูลองค์ประกอบของโค้งดิ่ง (Elements of Vertical Curve)

ที่เมนูหลักกดคีย์ F3 (Elem) 

องค์ประกอบของโค้งจะประกอบไปด้วยความยาวโค้ง (L – Length of Curve), ความชันของเส้นสัมผัสด้านเข้าโค้ง (g1 – Entry Grade) และความชันของเส้นสัมผัสด้านออกโค้ง (g2 – Exit Grade) ป้อนข้อมูลตามรูปด้านบนโดยที่ L = 200 m, g1 = -2 % และ g2 = 3%

คำนวณโค้งหาข้อมูลพื้นฐาน (Curve Information)

ที่เมนูหลักกดคีย์ F4 (Info) โปรแกรมจะคำนวณข้อมูลพื้นฐานของโค้งมาให้  และแสดง station/elevation ของจุดต่ำสุดและสูงสุดของโค้งมาให้ด้วย

คำนวณโค้งหาระยะทางและค่าระดับ

ที่เมนูหลักกดคีย์ F5 (Calc) จะเห็นเมนูคำนวณโค้งดิ่ง

Elev? – Elevation? – คำนวณหาค่าระดับเมื่อทราบระยะทางหรือสถานี

Sta? – Station? – คำนวณหาระยะทางหรือสถานีเมื่อทราบค่าระดับ

INT – Interval – คำนวณหาระยะทางหรือสถานีและค่าระดับเมื่อกำหนดช่วงระยะทางให้

Info – Curve Information – คำนวณหาข้อมูลพื้นฐานโค้งดิ่ง

Plot – Plot Curve – วาดรูปโค้งดิ่ง

Done  – ออกจากเมนูคำนวณโค้ง

คำนวณหาค่าระดับ (Calculate Elevation)

ในกรณีทราบระยะทางหรือสถานีต้องการหาค่าระดับเช่นในภาคสนามต้องการ stake out สามารถคำนวณได้ ที่เมนูคำนวณโค้งดิ่ง กดคีย์ F1 (Elev?) ป้อนค่า 920 (0+920) ลงไป การป้อนสถานี้ให้ป้อนเป็นหน่วยเมตรไปก่อน รุ่นหน้าจะสามารถป้อนในลักษณะ 0+920 ได้ เมื่อป้อนเสร็จแล้วกดคีย์ F6 (OK) เพื่อยืนยัน

กดคีย์ F1 (Calc) เพื่อทำการคำนวณ จะได้ค่าระดับ 51.650 เมตร ดังรูปด้านล่าง

คำนวณหาสถานี (Calculate Station)

ในกรณีทราบค่าระดับต้องการคำนวณหาระยะทางหรือสถานี ที่เมนูคำนวณโค้งกดคีย์ F2 (Sta?) 

ป้อนค่า 51.5 เมตร กดคีย์ F1 (Calc) จะได้คำตอบเป็นสถานี 2 สถานีเพราะว่าเป็นโค้งหงายที่ค่าระดับเดียวกันคือ 51.5 เมตรถ้าลากเส้นตรงจะตัดผ่าน 2 สถานีคือสถานี 931.010 (0+931.010) และสถานี 1028.990 (1+028.990)

กำหนดช่วงห่างระยะทางคำนวณหาสถานีและค่าระดับ (Interval Calculation)

เมื่อกำหนดช่วงห่างระยะทาง (Interval) ต้องการหาระยะทาง(สถานี)และค่าระดับ ที่เมนูคำนวณโค้งดิ่งกดคีย์ F3 (INT) ตัวอย่างต้องการทราบระยะทางและค่าระดับทุกๆ 10 เมตร ป้อน 10.0 ดังรูป

กดคีย์ F1 (Calc) เพื่อทำการคำนวณจะได้ผลลัพธ์ออกมา ผลลัพธ์อาจจะมีหลายหน้าถ้าช่วงห่างระยะทางมีค่าน้อยๆ

กดคีย์ F2 (PgDn – Page Down) เพื่อดูหน้าถัดไป

ต้องการดูหน้าก่อนหน้านี้ก็กดคีย์ F1 (PgUp – Page Up) หรือกด F6 (Done) เพื่อออก

แสดงรูปรางของโค้งดิ่ง (Plot Curve)

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

ที่เมนูโค้งดิ่งกดคีย์ F5 (Plot) จะเห็นรูปร่างของโค้งดิ่งแสดงให้เห็นพอหอมปากหอมคอ (หมายเหตุ สเกลแนวราบแนวดิ่งอาจจะไม่เท่ากัน)


กดคีย์ F6 (Done) เพื่อออก

ตัวอย่างที่ 2 โค้งดิ่งแบบวงกลม (Example 2 – Circular Vertical Curve)

ก็จะขอไปแบบรวบรัดรูปเยอะๆ ภาพเครื่องคิดเลขอาจจะดูแปลกตานิดเพราะผมจับภาพจากเครื่องมือเขียนโปรแกรมบนเครื่องคอมพิวเตอร์

เลือกลักษณะของโค้งดิ่ง

เมนูหลัก กดคีย์ F1 (Type)
เลือกลักษณะโค้งดิ่ง กดคีย์ “EXE”
เลือกโค้งดิ่งแบบวงกลม (Circular)

กด F6 (OK) ออกไปหน้าเมนูหลัก

เลือกสถานีที่ทราบค่าระดับ (Known Station)

เมนูหลัก กดคีย์ F2 (Know)
ป้อนค่าสถานีและค่าระดับที่ทราบค่า

กดคีย์ F6 (OK) เพื่อออกกลับมาเมนูหลัก

ป้อนข้อมูลองค์ประกอบของโค้งดิ่ง (Elements of Vertical Curve)

เมนูหลัก กดคีย์ F3 (Elem)
ที่ Known: เลือก “Radius” ป้อนค่ารัศมีโค้งและค่าความชัน

กดคีย์ F6 (OK) เพื่อออกเข้าเมนูหลัก

คำนวณโค้งหาข้อมูลพื้นฐาน (Curve Information)

เมนูหลัก กดคีย์ F4 (Info)
องค์ประกอบของโค้งดิ่ง

กดคีย์ F6 (Done) เพื่อออกเข้าเมนูหลัก

เมนูหลัก กดคีย์ F5 (Calc)

กำหนดช่วงห่างระยะทางคำนวณหาสถานีและค่าระดับ (Interval Calculation)

เข้ามาเมนูคำนวณโค้งดิ่ง

กำหนดช่วงห่างระยะทางคำนวณหาสถานีและค่าระดับ (Interval Calculation)

ป้อนค่า  interval 5.0 เมตร เพื่อต้องการหาค่าสถานีและค่าระดับทุกๆ 5 เมตร

ป้อนค่า Interval กดคีย์ F1 (Calc)

กดคีย์ F1 (PgUp) เพื่อเลื่อนขึ้นไปหนึ่งหน้าหรือกดคีย์ F2 (PgDn) เพื่อเลื่อนไปหน้าถัดไป หรือกดคีย์ F6 (Done)  ออกมาเมนูคำนวณโค้งดิ่ง

 

แสดงรูปรางของโค้งดิ่ง (Plot Curve)

เมนูคำนวณโค้งดิ่ง

กดคีย์ F5 (Plot) เพื่อแสดงรูปร่างของโค้งดิ่ง

รูปร่างโค้งดิ่งแบบวงกลม

อยากจะเรียนให้ทราบว่าโปรแกรมที่ปล่อยให้ดาวน์โหลดมาก่อนหน้านี้ ผมจะรื้อมาเขียนใหม่ โดยใช้ไลบรารี MyLib ตัวนี้ เพราะว่าทำให้โปรแกรมใช้งานได้ง่ายขึ้นในแง่ที่สามารถแก้ไขค่าตัวแปรของโค้งและสามารถคำนวณใหม่ได้ตามที่ต้องการ ติดตามกันต่อไปครับ ตอนหน้าจะเป็นโปรแกรม Horizontal Curve ครับ

จัดเก็บข้อมูลและเรียกมาใช้ภายหลัง

ก่อนหน้านี้ผมพยายามจะใช้ตัวแปร A-Z เพื่อจัดเก็บค่าพิกัดหรือข้อมูลที่เราป้อนตอนใช้งาน เมื่อเปิดมาใช้งานใหม่สามารถเรียกกลับมาใช้ต่อได้ แต่ก็ยุ่งยากเพราะสามารถจัดเก็บได้น้อย จากตัวแปรบนเครื่องคิดเลข A-Z ได้แค่ 24 ตัวเท่านั้น ผมจึงอาศัยวิธีการจัดเก็บไฟล์ลงบน SDCard ที่เสียบไว้ที่เครื่องคิดเลขของเรา เมื่อออกจากโปรแกรม และอ่านอีกทีเมื่อเปิดโปรแกรม

ก่อนจะใช้งานได้ต้องมีการเตรียมโฟลเดอร์บน SDCard ดังต่อไปนี้  คือดึง SDCard จากเครื่องคิดเลขมาเสียบบนคอมพิวเตอร์ แล้วทำการสร้างโฟลเดอร์ชื่อ “svdata” ดังรูป

จากนั้นนำ SDCard มาเสียบบนเครื่องคิดเลขอีกครั้ง เมื่อนำไปใช้งานได้สักพักถ้าเอามาเปิดอีกครั้งจะเห็นไฟล์หลายๆไฟล์ มีนามสกุลเป็น “CFG”  หมายถึง config ตัวอย่างถ้าใช้โปรแกรมคำนวณโค้งดิ่งนี้ไฟล์ที่จัดเก็บข้อมุลคือ “VCVEX.CFG

ติดปีกเครื่องคิดเลขเทพ Casio fx 9860G II SD ด้วยโปรแกรมภาษาซีบน AddIn ตอนที่ 4 โปรแกรมพื้นฐานงานสำรวจชุดที่ 1 (COGO SSE 1)

ติดปีกเครื่องคิดเลขเทพ Casio fx 9860G II SD ด้วยโปรแกรมภาษาซีบน AddIn ตอนที่ 4 โปรแกรมพื้นฐานงานสำรวจชุดที่ 1 (COGO SSE 1)

COGO (Coordinate Geometry)

ผมพยายามจะแปลคำนี้เป็นภาษาไทยอยู่นานทีเดียว แต่สุดท้ายขอทับศัพท์ดีกว่า จริงๆแล้วงานสำรวจคืองานที่เกี่ยวกับทรงเรขาคณิต (Geometry) อยู่แล้ว และต้องสามารถระบุค่าพิกัด (Coordinate) ทุกๆจุดได้บนเรขาคณิตนั้นๆ ความเกี่ยวข้องระหว่างรูปทรงเรขาคณติกับค่าพิกัดจะเกี่ยวข้องกันด้วยมุมและระยะทางเป็นส่วนใหญ่

Selected Serie 1 (SSE 1)

คำนี้เอามันครับ ผมนึกถึงโปรแกรมตระกูลไมโครสเตชัน (Microstation) ที่มักจะใช้คำนี้บอกรุนของโปรแกรม ดังนั้นคำว่า  Selected Serie 1 คำแปลก็ประมาณว่าเลือกสรรแล้วชุดที่ 1

โปรแกรมพื้นฐานงานสำรวจชุดที่ 1 (COGO SSE 1)

ก่อนหน้านี้ผมเขียนโปรแกรมภาษาซีสำหรับเครื่องคิดเลข Casio fx-9860G II SD มาหลายตอนแต่เป็นโปรแกรมระดับ advance มาในตอนนี้จะกลับมาที่พื้นฐานงานสำรวจที่ต้องเกี่ยวข้องกับค่าพิกัด มุมและระยะทาง

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

ไปที่หน้าดาวน์โหลด (Download) มองหาโปรแกรม COGO SSE1 แล้วดาวน์โหลดจะได้ไฟล์ COGOSSE1.G1A  แล้ว copy ไฟล์ไปที่เครื่องคิดเลขตามวิธีขั้นตอนที่ผมได้บอกไว้ก่อนหน้านี้

ส่วนประกอบของโปรแกรม

สำหรับโปรแกรมพื้นฐานงานสำรวจในชุดนี้จะจัดโปรแกรมย่อยเล็กๆ ไว้ 4 โปรแกรม

  1. Bearing-Dist (2 pt) เมื่อกำหนดจุดค่าพิกัด 2 จุด สำหรับคำนวณหามุมอะซิมัทและระยะทาง
  2. Bearing-Dist(3 pt) เมื่อกำหนดจุดค่าพิกัด 3 จุด สำหรับคำนวณหาง่ามมุมราบ อะซิมัทและระยะทาง ในงานสำรวจก็ได้แก่การตั้งเป้าหลัง  (backsight)  จุดตั้งกล้อง (station) และเป้าหน้า (target)
  3. Coordinate 2D เมื่อกำหนดจุดค่าพิกัด 2 จุด กำหนดมุมราบและระยะราบ คำนวณหาค่าพิกัดจุดที่ 3 คำนวณหาพิกัดจุดที่ 3 การคำนวณคำนวณในระนาบสองมิติอย่างเดียว ไม่มีค่าระดับมาเกี่ยวข้อง
  4. Coordinate 3D เมื่อกำหนดจุดค่าพิกัด 2 จุด กำหนดมุมราบและมุมดิ่ง ระยะทางแบบ slope distance ต้องการคำนวณหาค่าพิกัดและค่าระดับจุดที่ 3

วิธีการใช้งานโปรแกรม

กดคีย์ “MENU” ที่เครื่องคิดเลขจะเห็นหน้าตาประมาณนี้ เลื่อนลูกศรไปที่ไอคอนของโปรแกรมดังรูป กดคีย์ “EXE”

Bearing-Dist (2 pt)

ที่เมนูกดคีย์ “1” เป็นการคำนวณหาค่ามุมอะซิมัทและระยะทางเมื่อกำหนดจุดค่าพิกัดให้สองจุด ลองทดสอบจากตัวอย่างดังรูป การประยุกต์ใช้งานส่วนใหญ่เป็นตอนที่ช่างสำรวจตั้งกล้องที่หมุดและส่องไปเป้าหลังหรือเป้าหน้าแล้ววัดระยะทางเพื่อตรวจสอบจากค่าพิกัด

ผลลัพธ์ก็ออกมาดังนี้

Bearing-Dist (3 pt)

ที่เมนูกดคีย์เลข “2” การประยุกต์ใช้งานส่วนใหญ่จะเป็นการตั้งกล้องส่องไปหมุดเป้าหลังแล้วป้อนค่าพิกัดเป้าหน้าเพื่อตรวจสอบมุมราบหรือไม่ก็จะเป็นการวางผังโดยการเปิดมุมราบและวัดระยะทางที่เป้าบน pole ลองดูตัวอย่างทดสอบ

จะได้ผลลัพธ์มาดังนี้ ครั้งแรกจะแสดงมุมอะซิมัทและระยะทางไปเป้าหลังก่อน

ถัดไปจะเป็นมุมราบ มุมอะซิมัทและระยะทางไปเป้าหน้า

Coordinate 2D

ที่เมนูกดคีย์เลข “3” เป็นการคำนวณหาค่าพิกัดเป้าหน้าเมื่อกำหนดค่าพิกัดจุดตั้งกล้องและเป้าหลัง กำหนดมุมราบและระยะทาง การคำนวณจะไม่มีค่าระดับมาเกี่ยวข้อง จึงเรียกว่า 2D หรือสองมิติ สำหรับโปรแกรมนี้ผมได้นำค่าสเกลแฟคเตอร์เข้ามาช่วยประยุกต์ใช้ด้วย ในกรณีที่ไม่ต้องใช้ก็ป้อนค่าสเกลแฟคเตอร์นี้ เป็น 1.0

สเกลแฟคเตอร์ตัวนี้แล้วจริงๆคือ Combine Scale Factor (CSF) ที่ได้จาก Elevation Scale Factor (ESF) x Grid Scale Factor (GSF) การประยุกต์ใช้สเกลแฟคเตอร์ส่วนใหญ่นำมาใช้โครงการที่ระบบพิกัดฉากกริดยูทีเอ็มในงานใหญ่ๆยาวๆ เช่นโครงการก่อสร้างถนน รถไฟ เพราะว่าแบบ drawing เราอยู่บนระนาบพิกัดฉาก ให้คิดเสียว่าแบบอยู่บนกระดาษขนาดใหญ่มาตราส่วน 1:1 แล้วเราวัดระยะทางบนผิวโลกที่มีความโค้ง ดังนั้นการวัดระยะทางจะต้องมีการทอนจากบนผิวโค้งเพื่อให้ลงมาเข้ากับระนาบพิกัดฉากของกระดาษ

มาลองทดสอบข้อมูล ป้อนข้อมูลค่าพิกัดเป้าหลัง ค่าพิกัดจุดต้องกลองดังนี้

จากนั้นป้อนมุมราบ และระยะทาง (Ground Distance ใช้ตัวย่อ Gnd dist) ในกรณีกล้องโททัล สเตชัน ไม่ได้ตั้งค่าสเกลแฟคเตอร์ไว้ที่ตัวกล้อง ระยะทางที่วัดออกมาจะเป็นระยะทางบนพื้นโลก ส่วนค่าสเกลแฟคเตอร์ในตัวอย่างผมใช้ 1.000480

 

โปรแกรมจะคำนวณมุมอะซิมัทและระยะทางไปเป้าหลังให้ดูก่อนเพื่อตรวจสอบ และไม่ลืมว่าค่าพิกัดที่เราป้อนเข้าไปในเครื่องคิดเลขคือค่าพิกัดในระบบพิกัดฉาก ระยะทางที่คำนวณออกมาคือระยะทางบนพิกัดฉาก (Grid Distance ใช้ตัวย่อ Grd Dist) และถ้าวัดระยะทางจริงๆควรจะได้เท่ากับ Ground Distance

ทวนกันนิด ระยะทางบนพิกัดฉาก(กริด)= ระยะทางบนพื้นโลก x สเกลแฟคเตอร์ 

สุดท้ายจะได้แสดงข้อมูลได้แก่มุมอะซิมัทไปเป้าหน้า ระยะทางบนพิกัดฉากและระยะทางบนพื้นโลก รวมทั้งค่าพิกัดเป้าหน้าที่ต้องการ

Coordinate 3D

ที่เมนูกดคีย์ “4” โปรแกรมคล้าย Coordinate 2D แต่จะมีมิติทางดิ่งเข้ามาเพิ่มดังนั้นที่จุดตั้งกล้องจะวัดความสูงของกล้อง (HI – Height of instrument) และที่เป้าหน้าก็จะต้องวัดความสูงมาด้วย (HT – Height of target) นอกจากนั้นจะมีมุมดิ่ง (Vertical angle) มาด้วย มาดูข้อมูลทดสอบกัน เริ่มจากป้อนค่าพิกัดเป้าหลัง ต่อมาป้อนค่าพิกัดจุดตั้งกล้อง ค่าระดับจุดตั้งกล้อง ความสูงกล้อง

ต่อไปป้อนมุมราบ(H.Ang) มุมดิ่ง(V.Ang) ระยะทาง (Slope distance) และความสูงเป้า(HT) และค่าสเกลแฟคเตอร์ (Scale Factor)

โปรแกรมจะคำนวณอะซิมัท ระยะทางจากจุดตั้งกล้องไปเป้าหลัง ข้อสังเกตผมใส่เครื่องหมายดาว (*) หน้าระยะทางบนพื้นโลก (Ground Distance)

กดคีย์ “EXE” จะได้ผลลัพธ์ อะซิมัท ระยะราบทั้งระยะบนพื้นโลกและระยะกริดจากจุดตั้งกล้องไปเป้าหน้า

สุดท้ายคือผลลัพธ์ที่ต้องการคือค่าพิกัดและค่าระดับของเป้าหน้า

สรุป

ก็พอหอมปากหอมคอสำหรับโปรแกรมพื้นฐานงานสำรวจชุดที่ 1 โดยมีสิ่งที่ช่างสำรวจจะต้องเข้าใจตั้งแต่เรื่องมุมอะซิมัทคือมุมอะไร สำคัญมากเพราะมุมนี้เป็นหัวใจขั้นพื้นฐานและจะสัมพันธ์กับระยะทางโดยที่แยกกันไม่ออกและสามารถนำไปคำนวณค่าพิกัดได้ สำหรับการคำนวณแบบนี้ โปรแกรมในกล้อง Total Station ปัจจุบันก็คำนวณให้อยู่แล้ว แล้วก็เก่งขึ้นเรื่อยๆ แต่ในทางกลับกัน สำหรับช่างสำรวจเอง คงไม่มีใครได้จับกล้องพวกนี้ได้ตลอดเวลา จำเป็นจะต้องมีเครื่องคิดเลขคู่ใจไว้ติดตัวตลอด สามารถหยิบมาใช้งานได้สะดวกและถ้ามีโปรแกรมที่จำเป็นสำหรับการทำงานติดอยู่ด้วย ชีวิตการทำงานก็พลอยลื่นไหล ติดตามตอนต่อไปครับ