วันอาทิตย์ที่ 6 มีนาคม พ.ศ. 2565

การใช้งาน Road_Cc.lsp



การใช้งาน Road_Cc.lsp

    Revision Cc

-      เลือกแนวทิศทางถนนที่ต้องการ
-      ถ้าถูกต้องแล้วเลือก 1 No.
-     ถ้าต้องการกลับด้านทิศทางเริ่มต้นเลือก 2 Reverse แล้วเลือกแนวถนนเพื่อทำการกลับด้านทิศทางใหม่

1.    Select Massage Options เลือกข้อความที่ต้องการ

-      กม.

-      Km.

-      Enter (กำหนดข้อความเอง)

-      None (ไม่ต้องแสดงข้อความ)

2.    Enter Start Kilometer at. <0.000> กำหนดหลักกิโลเมตรที่จุดเริ่มต้น

3.   Enter Distance : <500.0> กำหนดระยะห่างของหลักกิโล

4.    Select Line to measure: เลือกเส้นแนวถนน จะมี ป๊อปอัพ แสดงความยาวของเส้นถนน

5.    เมื่อกด OK ที่ป๊อปอัพ ก็จะแสดงหลักหมุดพร้อมเลขกำกับหลักกิโล

6.    กรณีที่เรา Enter Start Kilometer at. <1.850> กำหนดหลักกิโลเมตรที่จุดเริ่มต้นต่อจากหลักกิโลอื่นที่ไม่ได้เริ่มต้นที่ 0.000 เช่น 1.850 ต่อจากเส้นถนนเดิม


7.     เราต้องทำการ Select Line to Break Point: เป็นการตัดเส้นถนนส่วนที่เหลือให้ลงตัวพอดีกับระยะหลักกิโลที่กำหนด โดยเลือกไปยังเส้นถนน 

8.    จากนั้นก็ทำการเลือกเส้นถนน  Select Line to measure: ส่วนที่ได้ทำการ Break Point ไว้แล้วจะมี ป๊อปอัพ แสดงความยาวของเส้นถนน

9.    เมื่อกด OK ที่ป๊อปอัพ ก็จะแสดงหลักหมุดพร้อมเลขกำกับหลักกิโล 


The end.

แก้ไขข้อความตั้งฉากกับแนวถนนใหม่ใน Revision Road_Cc





วันเสาร์ที่ 5 มีนาคม พ.ศ. 2565

Import Coordinate and Generate Contour.


 Import Coordinate and Generate Contour. (Generate_Contour_b.VLX)

ตัวโปรแกรม CONTR จะประกอบด้วย 3 ส่วนด้วยกัน ดังรูปตัวอย่าง

      1. ตัวนำเข้า Import Coordinate จากไฟล์ Excel .CSV

      2. ตัวสร้างเส้น Generate Contour line

      3. ตัวบอกระดับความสูงของเส้น Generate Contour lables

1. ตัวนำเข้า Import Coordinate จากไฟล์ Excel .CSV เมื่อเราเลือกให้นำเข้าข้อมูลจากไฟล์ Excel .CSV แล้วเลือกที่ File…

                1.1 ทำการเลือกไฟล์ Select Excel .CSV File

รูปแบบข้อมูลของไฟล์ Excel .CSV มีดังนี้

เซล A เป็นหมายเลขลำดับ No.

เซล B เป็น Coordinate N (y)

เซล C เป็น Coordinate E (x)

เซล D เป็น Descriptions รายละเอียดกำกับ *** จำเป็นต้องมีอย่างน้อย 1 เซล

      1.2 ช่องแสดงตำแหน่งที่อยู่ของไฟล์ที่เราทำการเลือกเอาไว้

 

2. Generate Contour line เป็นการสร้างเส้น Contour จากการ Import Coordinate หรือจาก Coordinate Points ที่สร้างไว้แล้วโดยการครอบ Points ทั้งหมด

      2.1 Minor Contour Interval ระยะของเส้นรอง โดยเลือกจาก list ที่กำหนดให้

      2.2 Major Contour Every ระยะของเส้นหลัก โดยเลือกจาก list ที่กำหนดให้

    

2.3 Contour Smoothing Factor ปรับความละเอียดของเส้นตาม list ที่กำหนดให้ 

2.4 และ 2.5 Major and Minor Contour Color ปรับเปลี่ยนสีของเส้น Major และเส้น Minor ตาม Index Color

3. ตัวบอกระดับความสูงของเส้น Generate Contour lables

เป็นการบอกระดับความสูงของเส้น Major and Minor Contour line ทั้งสองเส้น

The End.

วันจันทร์ที่ 28 กุมภาพันธ์ พ.ศ. 2565

Edit Left and Right Cross-Section Distance

 


;|    

      Edit Left and Right Cross-Section Distance

Designed and Created February 2022

      - Options Decimal

      - Add Number Bank(Taling)

      - Select object   

|;

(defun c:EDTD (/ ddata)

(setq old_dimzin (getvar "dimzin"))

(setvar "dimzin" 4)

;-----------------------------------

(initget "0 0.0 0.00 0.000")

      (setq opt0 (getkword "\nOptions Decimal \n [  0 /  0.0 /  0.00 /  0.000 ] : <0> "))

      (if (= opt0 "") (setq opt0 "0"))

      (cond

            ((if (= opt0 "0")  (setq dec 0))) ;decimal 1

            ((if (= opt0 "0.0")  (setq dec 1))) ;decimal 1

            ((if (= opt0 "0.00")  (setq dec 2))) ;decimal 2

            ((if (= opt0 "0.000")  (setq dec 3))) ;decimal 3

      ); setq

;(setq dec 3)     

;--------------------------------------

      (if (not addon) (setq addon 59.0))

      (setq txtMtemp

            (getdist (strcat "\nAdd Number Bank(Taling) : <"

                            (rtos addon 2 dec)

                                     "> : "

                                          ) ;_ strcat

            ) ;_ getdist

      ) ;_ setq

      (if (not txtMtemp) (setq txtMtemp addon) (setq addon txtMtemp))

;-----------------------------------

      (princ "Select object (window) :")

      (if (setq dimss (ssget ":L" '((0 . "TEXT,MTEXT"))))

            (progn

                  (setq c -1)

                  (repeat (sslength dimss)

                        (setq ddata (entget (ssname dimss (setq c (1+ c))))

                                str (atof (cdr (assoc 1 ddata)))

                        )

                        (setq ddata (subst

                                                (cons 1 (if (= str addon)

                                                                  (if(= dec 0)(rtos 0.0 2 dec)            ;0

                                                                        (strcat "0"(rtos 0.0 2 dec))  ;0.0 0.00 0.000

                                                                  )

                                                                  (rtos (- str addon)2 dec)

                                                            )

                                                )

                                                (assoc 1 ddata)

                                                ddata

                                          ); subst

                        ); setq

                        (entmod ddata)

                  )

            );progn

      )    

(setvar "dimzin" old_dimzin) 

(princ)

); defun

(prompt "\nCreate and Design by SONGKHRAN JONGKUL February 2022")

(prompt "\nEnter EDTD to start. ")

วันพุธที่ 23 กุมภาพันธ์ พ.ศ. 2565

Add message Text or Dimension

 

;|     

       Add message Text or Dimension

       - Add message

       - front / behind

|;

(defun c:ADTD (/ dimss c ddata); = Dimension Text:

;-----------------------------------

       (if (or (not addon) (/= (type addon) 'STR)) (setq addon "เมตร"))

       (setq txtMtemp

              (getstring T (strcat "\npecify text to add message <"

                             addon

                                     "> : "

                                                ) ;_ strcat

              ) ;_ getdist

       ) ;_ setq

       (if (= txtMtemp "") (setq txtMtemp addon) (setq addon txtMtemp))

;-----------------------------------

(initget "front behind")

       (setq opt0 (getkword "\nAdd message \n[ front / behind ] : <front> "))

       (if (= opt0 "") (setq opt0 "front"))

       (setq dimss (ssget ":L" '((0 . "MTEXT,DIMENSION")))

                c -1

                dec 2 ;decimal

       ); setq

       (repeat (sslength dimss)

              (setq ddata (entget (ssname dimss (setq c (1+ c)))))

              (print (cdr (assoc 0 ddata)))

              (print addon)

              (cond

                     ((= (cdr (assoc 0 ddata)) "DIMENSION")    

                           (setq ddata (subst

                                                       (cons 1 (if (= opt0 "front")(strcat addon(rtos (cdr (assoc 42 ddata))2 dec))

                                                                                  (strcat (rtos (cdr (assoc 42 ddata))2 dec)addon)

                                                                     )

                                                       )

                                                       (assoc 1 ddata)

                                                       ddata

                                  ); subst & adjusted ddata

                           ); setq

                           (entmod ddata)             

                     );if

                     ((= (cdr (assoc 0 ddata)) "MTEXT")

                           (setq ddata (subst

                                                       (cons 1 (if (= opt0 "front")(strcat addon(cdr (assoc 1 ddata)))

                                                                                  (strcat(cdr (assoc 1 ddata)) "" addon)

                                                                     )

                                                       )

                                                       (assoc 1 ddata)

                                                       ddata

                                                ); subst & adjusted ddata

                           ); setq

                           (entmod ddata)

                     );if

              )

       ); repeat

       (princ)

); defun

(prompt "\nEnter ADTD to start. ")

วันเสาร์ที่ 5 กุมภาพันธ์ พ.ศ. 2565

irregular quadrilateral


|;

       irregular quadrilateral

       by Lengths and angle

       - Enter length 4 side and one angle

       - Create and Design by Songkhran Jongkul 04-02-2022

|;

       (defun tan (x)

       (/ (sin x)(cos x))

       )

       (defun arsin (x)

       (setq y (sqrt (- 1 (* x x))))

       (atan x y)

       )

       (defun arcos (x)

       (- (/ pi 2)(arsin x))

       )

       (defun rtod (x)

       (/ (* x 180) pi)

       )

       (defun dtor (x)

       (* x (/ pi 180))

       )

(defun c:irrq ()

(setq old_cmdecho  (getvar "cmdecho"))

(setq old_osnap (getvar "osmode"))

 

(setvar "cmdecho" 0)

(setvar "osmode" 0)

       (or la (setq la 138.82))     

       (setq latemp (getdist (strcat "\nLength A <" (rtos la 2 2) ">: ")))

       (if (not latemp)(setq latemp la)

              (setq la latemp)

       )

       (or lb (setq lb 83.88))     

       (setq lbtemp (getdist (strcat "\nLength B <" (rtos lb 2 2) ">: ")))

       (if (not lbtemp)(setq lbtemp b)

              (setq lb lbtemp)

       )

       (or lc (setq lc 104.10))    

       (setq lctemp (getdist (strcat "\nLength C <" (rtos lc 2 2) ">: ")))

       (if (not lctemp)(setq lctemp lc)

              (setq lc lctemp)

       )

       (or ld (setq ld 74.7))

       (setq ldtemp (getdist (strcat "\nLength D <" (rtos ld 2 2) ">: ")))

       (if (not ldtemp)(setq ldtemp ld)

              (setq ld ldtemp)

       )

       (or anga (setq anga 88.53)) 

       (setq angatemp (getdist (strcat "\nAngle A <" (rtos anga 2 2) "\U+00B0>: ")))

       (if (not angatemp)(setq angatemp anga)

              (setq anga angatemp)

       )

;----------Calculator length and angle inside--------------------------------

       (setq bd (sqrt(-(+(expt la 2)(expt lb 2))(* 2 la lb (cos (dtor anga))))))

       (setq angd  (rtod(arcos(/(-(+(expt bd 2)(expt la 2))(expt lb 2))(* 2 la bd))))

                angd2 (rtod(arcos(/(-(+(expt ld 2)(expt bd 2))(expt lc 2))(* 2 ld bd))))

                angadc (+ angd angd2)

                angb  (- 180.0(+ anga angd))

                angb2 (rtod(arcos(/(-(+(expt lc 2)(expt bd 2))(expt ld 2))(* 2 lc bd))))

                angabc (+ angb angb2)

                angbcd (- 360.0(+ anga angabc angadc))

       )

;----------------Draw irregular quadrilateral -------------------------------

       (setq pa (getpoint "\n Pick a point a :"))

       (setq pb (polar pa (dtor anga) lb)

                pd (polar pa 0 la)

                pc (polar pd (dtor (- 180.0 angadc)) ld)

       )

       (command "_pline" pa pd pc pb "c")

(setvar "cmdecho" old_cmdecho)

(setvar "osmode" old_osnap)

(princ)

)

(prompt "\nEnter IRRQ to start irregular quadrilateral")

(prompt "\nCreate and Design by Songkhran Jongkul 04-02-2022")