วันศุกร์ที่ 25 พฤศจิกายน พ.ศ. 2565

Manual PTC_fb.VLX



1. Select B.S. name : เลือกชื่อตำแหน่ง B.S.

1.1 Pick Point B.S. หลัง เลือกตำแหน่ง B.S.

2.  Select I.S. name : เลือกชื่อตำแหน่ง B.S.

2.1 Pick Point I.S. ตั้งกล้อง เลือกตำแหน่ง I.S.



*** หัวข้อที่ 3 จะทำวนไปจนครบจำนวนหมุดที่ต้องการ

3.  Select point name (ชื่อหมุด) : เลือกชื่อหมุด

3.1 Pick Next Point : เลือกหมุด

3.2 Pick Text Point : วางข้อความ ค่ามุมและระยะห่าง

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



 

การเรียกใช้งาน

เมื่อเราทำการโหลดโปรแกรม PTC_fb.VLX แล้วให้เรียกใช้คำสั่ง PTC เพื่อเริ่มต้นโปรแกรม 

 

 

วันพฤหัสบดีที่ 20 ตุลาคม พ.ศ. 2565

Dimensions Sum

;|

      Dimensions Sum #AutoCAD #CADTHAI

      - Selected Dimensions

      - Enter and pick to text sum.

|;

(defun c:sumdim (/ sum ss n dim mea ddata prec)

      (setq old_cmdecho (getvar "cmdecho"))

      (setvar "CMDECHO" 0)

      (setq sum 0.0)

      (prompt "\nAdd values of Dimensions")

      (if (setq ss (ssget '((0 . "DIMENSION"))))

            (progn

                  (repeat (setq n (sslength ss))

                        (setq dim (ssname ss (setq n (1- n))))

                        (setq mea (cdr (assoc 42 (setq ddata (entget dim)))))

                        (setq prec (getvar "DIMDEC")

                                sum (+ sum mea)

                        )

                  )

                  (setq p1 (getpoint "\nPick point to Text Sum. :"))

                  (command "text" "j" "mc" p1 (getvar "textsize") "0" (rtos sum (getvar 'lunits) prec))

                  (prompt(strcat "\nSum of distances = " (rtos sum (getvar 'lunits) prec)))

            )

            (prompt "\nNo Dimensions selected.")

      )

(setvar "CMDECHO" old_cmdecho)

(princ)

)


วันศุกร์ที่ 16 กันยายน พ.ศ. 2565

การใช้งาน Divide Area.VLX

 

การใช้งาน Divide Area.VLX

Data Input จะมีให้เลือก 2 แบบคือ Divide และ Area

Divide คือการแบ่งพื้นที่ออกส่วนๆ ที่เท่ากันโดยกำหนดจำนวนที่จะแบ่งตามต้องการ (3)

 Area คือการแบ่งโดยกำหนดพื้นที่ที่ตามเราต้องการโดยใส่ค่าเป็นตารางเมตร (1600)





Massage ON คือให้แสดงขนาดพื้นที่ที่ทำการแบ่งแล้วเป็นตารางเมตร

Massage OFF คือไม่ให้แสดงขนาดพื้นที่

Text Height คือค่าความสูงของตัวอักษร

Decimal : คือจำนวนทศนิยม

เมื่อเราทำการโหลดโปรแกรม Divide Area.VLX แล้วให้เรียกใช้คำสั่ง DIVAR เพื่อเริ่มต้นโปรแกรม

·        ขั้นตอนแรกกำหนดจุดภายในพื้นที่ เพื่อคำนวณหาพื้นที่ทั้งหมด  (Pick point to calculate area.)

·        ขั้นตอนที่สอง กำหนดตำแหน่งที่จะแสดงขนาดของพื้นที่ทั้งหมด (Pick Point for area)

ขั้นตอนต่อไปก็กำหนดตำแหน่ง P1 P2 P3 P4 รายละเอียดดังนี้

·        P1 คือตำแหน่งแรกของเส้นกำหนดแนวพื้นที่ ที่จะทำการแบ่ง (First point of the line)

·        P2 คือตำแหน่งสุดท้ายของเส้นกำหนดแนวพื้นที่ ที่จะทำการแบ่ง (Second point of the line)  *ตำแหน่ง P1 และ P2 จะเป็นแนวแสดงของตัวอักษรที่แสดงขนาดพื้นที่ด้วย*

·        P3 คือตำแหน่งพื้นที่ ที่เราต้องการ (Pick the desired area) โดยลากไปยังพื้นที่ ที่เหลือ (P4)

·        P4 คือตำแหน่งพื้นที่ ที่เหลือจากการแบ่ง (Rest of the area)

ดังนั้นเมื่อเราทำการแบ่งพื้นที่โปรแกรมจะทำกระบวนการซ้ำจาก P1 P2 P3 P4 ไปเรื่อย ๆ เช่นถ้าเราเลือก Divide เท่ากับ 3 โปรแกรมจะทำซ้ำ 2 รอบแล้วจบกระบานการ ถ้าเราเลือก Area กำหนดขนาดพื้นที่ โปรแกรมจะทำกระบวนการวนไปเรื่อย ๆ เมื่อเสร็จแล้วก็ Enter จบการแบ่งแบบ Area ถ้าต้องการกำหนดขนาดพื้นที่เป็น ไร่ งาน ตารางวา ให้ใช้คำสั่ง THAR เลือกรูปแบบการแสดงผล        1 0ไร่ 1งาน 10วา

    2 1-1-1

    3 ตารางวา

    4 m2

    5 All.

- เลือกจำนวนทศนิยน : Decimal square two-meters (ทศนิยม)  : <3>

- เลือกตำแหน่งในพื้นที่ที่ต้องการหา : Pick Point in area :

- เลือกแนวแสดงข้อความ : Pick Point to Angle :

วันพฤหัสบดีที่ 21 กรกฎาคม พ.ศ. 2565

Manual Quick Profile.VLX

 

Quick Profile.VLX

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

1. รายละเอียดเกี่ยวกับ Layer Name ของเส้น Contour line คือ Major line และ Minor line  

2. รายละเอียดเกี่ยวกับการแสดงขนาดในแนวแกน X และ Y (Scale X,Y)

ส่วนที่ 1. Layer Contour Line Name Major and Minor โดยการดูจากชื่อของ Layer ในแบบ Contour ดังในภาพตัวอย่าง Major คือ Major Line 1 Minor คือ Minor Line 0.25 

 

ส่วนที่ 2. Vertical and Holizontal Scale คือการย่อหรือขยายมาตราส่วนในแนวแกน X (Holizontal Scale) และในแนวแกน Y (Vertical Scale) โดยกำนดค่าลงไปได้ตามต้องการ

การใช้งานโดยเราต้องทำการลากเส้นตัดทำแนว Profile ที่เราต้องการโดยใช้เส้น Polyline (เท่านั้น)  ทำการโหลดโปรแกรม Quick Profile.VLX แล้วเรียกใช้งานด้วยคำสั่งย่อ QPF จากนั้นให้เราทำการเลือกเส้นแนวตัดที่สร้างไว้ก่อนหน้านี้ เส้น Polyline (เท่านั้น) Select the Horizontal alignment: จากนั้น ให้เราทำการวางภาพตัด Profile ที่สำเร็จแล้ว Pick Start Table : เป็นอันเสร็จการทำ Profile โปรแกรมจะทำการวนทำซ้ำไปเรื่อย ๆ กรณีที่เรามีหลายแนวในการหน้าตัด Profile

*** Fontตัวโปรแกรมตั้งไว้เป็น RID_TE.shxนะครับถ้าไม่แสดงก็หาโหลดมาใส่ด้วยนะครับ ***

วันพฤหัสบดีที่ 23 มิถุนายน พ.ศ. 2565

Screw Flight CADThai,AutoCAD

 

 ;|

      Screw Flight CADThai

      Create and Design by SONGKHRAN JONGKUL June 2022

      Contact https://www.facebook.com/groups/AutolispTH

|;

      (defun rtod (x)

       (/ (* x 180) pi)

      )

      (defun dtor (x)

       (* x (/ pi 180))

      )    

(defun my_error (msg)

(if

      (or

            (= msg "Function cancelled")

            (= msg "quit / exit abort")

      )

      (princ)

      (princ (strcat "\n Error: " msg))

)

      (if msg (Alert (strcat "\n Application error: " msg)))

      (setvar "cmdecho" old_cmdecho)

      (setvar "osmode" old_osnap)

      (setvar "orthomode" old_ortho)

      (setq *error* old_error)             

(princ)

);;end my_error

 

(defun c:scwf (/)

(vl-load-com)

;---------------Load the dcl file ------------------------

(create_scwf)

(setq dcl_id (load_dialog fname))

 

(setq old_cmdecho (getvar "cmdecho"))

(setq old_osnap (getvar "osmode"))

(setq old_ortho (getvar "orthomode"))

 

(setq old_error   *error*)

(setq *error* my_error )

 

;***************** set default edit box ********************************************

(IF (NOT od) (SETQ od "125.0") (if (= (type od) 'STR) T (SETQ od "125.0")));edt1

(IF (NOT id) (SETQ id "27.0") (if (= (type id) 'STR) T (SETQ id "27.0")));edt2

(IF (NOT pit) (SETQ pit "80.0 ") (if (= (type pit) 'STR) T (SETQ pit "80.0 ")));edt3

 

(if (new_dialog "Screw" dcl_id)

(progn

 

      (SET_TILE "edt1" od)

      (SET_TILE "edt2" id)

      (SET_TILE "edt3" pit)

           

      (ACTION_TILE "edt1" "(setq od $value)")        

      (ACTION_TILE "edt2" "(setq id $value)")

      (ACTION_TILE "edt3" "(setq pit $value)") 

 

     

 

;--------------Logo Image------------     

      (setq w (dimx_tile "im") ;get image tile width

              h (dimy_tile "im") ;get image tile height

      );setq

      (start_image "im") ;start the image

      (fill_image 0 0 w h -15) ;fill it with blue

      (mapcar 'vector_image; Color 5

            (list 36 42 42 48 54 48 48 42 36 21 21 27 27 33 32 32 32 27 27 21  5  5  8 15 11 11  5  5  5  8 18 21 18 11 11 11 15 15 21 18  8 5)

            (list  8 15 15 27  3  3  3  3  3 11 27 18 18 27 15 15  3 11  3  3  6 14 17 17 24 20 20 20 24 27 27 24 14 14  6  6  6 11  3  3  3 6)

            (list 36 42 48 54 54 54 48 48 42 21 27 27 33 42 36 36 36 32 27 27  5  8 15 15 15 11 11  5  8 18 21 21 21 18 11 15 15 21 21 21 18 8)

            (list 22 27 27 27 27  3 18 18  3 17 27 27 27 27 22  8  3  3 11  3 14 17 17 24 24 24 20 24 27 27 24 27 17 14 14  6 11 11  6  6  3 3)

            (list  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5 5)

      );mapcar

  (end_image)    

;------------default image-----------    

      (mode_tile "edt1" 0);0 on ;1 off

      (mode_tile "edt2" 0)

      (mode_tile "edt3" 0)

 

 (setq x    (dimx_tile "vectors")

            y    (dimy_tile "vectors")

 )   

  (start_image "vectors");;cone

  (fill_image 0 0 x y -2) ;fill it with blue

  (mapcar 'vector_image; Color 1

    (list 77 81 82 81 77 77 144 144 151 144 144 146 150 151 144 167 167 160 160 160 160 160 162 166 167 160)

    (list 18 18 15 14 14 14  94  95  94  88  88  87  87  88  91  98  93  93  93  98  87  87  86  86  87  90)

    (list 81 82 82 82 81 77 144 151 151 144 146 150 151 151 151 167 167 167 160 167 160 162 166 167 167 167)

    (list 18 16 16 15 14 21  96  95  96  92  87  87  88  92  91  98  98  93  98  98  91  86  86  87  91  90)

    (list  1  1  1  1  1  1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1)

  );mapcar

  (mapcar 'vector_image; Color 2

    (list 170 171 170 171 154 155 154 155 171 131  92 155 140 140 125 125 44 44  44 127 44)

    (list 130 133  53  50 100 102  84  82  50  50 133  82  82 102  25  23 24 24  24  23 23)

    (list 171 172 171 172 155 156 155 156 171 172 172 155 156 156 127 127 46 46 127 127 44)

    (list 133 130  50  53 102 100  82  84 133  50 133 102  82 102  24  24 25 23  24  47 46)

    (list   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2  2  2   2   2  2)

  );mapcar

  (mapcar 'vector_image; Color 252

    (list 136 136 134 134 136 138 136  33  33  35  35  33  33  33  28)

    (list  92  82  86  86  92  97 102  97  97 102  92  87  87  87  92)

    (list 138 138 136 136 138 138 138  35  35  37  37  35  33  35 140)

    (list  86  86  82  92  97  97  97  92 102  97  97  92  87  82  92)

    (list 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252)

  );mapcar

  (mapcar 'vector_image; Color 3

    (list 109 109 110 112 115 119 123 126 126 103 128  63  35  81  79  75  72  69  66  64 60 57 54 50 47 44 59 55 52 49 46 35 67 70  74  80  85 103 100  97  94  91  89  85  82  80  78  75  71  67 62 57 53 49 44 127 44)

    (list  80  80  76  71  62  54  51  50  50 102  82  82 102 132 130 124 118 110 102  92 80 72 65 59 54 50 89 86 83 82 82 82 93 96  99 101 102 102 112 120 126 131 133 133 132 129 125 118 108  93 78 65 58 52 50  50 50)

    (list 109 110 112 115 119 123 126 126 127 136 136 128  66  85  81  79  75  72  69  66 64 60 57 54 50 47 63 59 55 52 49 46 70 74  80  85 103 103 103 100  97  94  91  89  85  82  80  78  75  71 67 62 57 53 49 128 44)

    (list  82  76  71  62  54  51  50  82  50 102  82  82 102 133 132 130 124 118 110 102 92 80 72 65 59 54 91 89 86 83 82 82 96 99 101 102 102 105 105 112 120 126 131 133 133 132 129 125 118 108 93 78 65 58 52  82 82)

    (list   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3  3  3  3  3  3  3  3  3  3  3  3  3  3  3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3  3  3  3  3  3   3  3)

  );mapcar

  (end_image) 

;**************************************************************

  ;;;--- If an action event occurs, do this function

  (action_tile "accept" "(setq ddiag 2)(done_dialog)")

  (action_tile "cancel" "(setq ddiag 1)(done_dialog)")

;;;--- Display the dialog box

  (start_dialog)

;;;--- Unload the dialog box

  (unload_dialog dcl_id)

 

(if (= ddiag 1)

      (princ "\n Screw Flight Cancelled. ")

)

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

(if (= ddiag 2)

(progn     

 

(setq old_cmdecho (getvar "cmdecho"))

(setq old_osnap (getvar "osmode"))

(setq old_ortho (getvar "orthomode"))     

      (setvar "osmode" 0)

      (setvar "orthomode" 0)

      (setvar "cmdecho" 0)

;-----------input--------------------

      (setq dx (atof od) ;125.0

              dn (atof id)     ;27.0

              pitc (atof pit);80.0

      )

;-----------calculator--------------------

      (setq l1 (sqrt(+(expt (* pi dn) 2)(expt pitc 2)))

              l2 (sqrt(+(expt (* pi dx) 2)(expt pitc 2)))

      )

      (setq d1 (/(- dx dn)(-(/ l2 l1)1))

              d2 (+(- dx dn) d1)

      )

      (setq ang (- 360 (/ l2(/ (* d2 pi)360)))

              s (* (* 2 (/ d2 2)) (sin (dtor(/ ang 2))))

      )

;-----------set position--------------------

      (setq pt (getpoint "\n Pick a Center Point. :")

              p1 (polar pt (dtor(/ ang 2))(/ d2 2))

              p2 (polar pt (dtor(- 360(/ ang 2)))(/ d2 2))

              p3 (polar pt (dtor(/ ang 2))(/ d1 2))

              p4 (polar pt (dtor(- 360(/ ang 2)))(/ d1 2))

      )

;-----------drawing--------------------

      (command "_arc" "c" pt p1 p2)

      (setq ss1 (ssget "L"))

      (command "_arc" "c" pt p3 p4)

      (setq ss2 (ssget "L"))

      (command "_pline" p1 p3 "")

      (setq ss3 (ssget "L"))

      (command "_pline" p2 p4 "")

      (setq ss4 (ssget "L"))

      (setq pe (getvar 'PEDITACCEPT))

      (setvar 'PEDITACCEPT 1)

      (command "_.pedit" "_M" ss1 ss2 ss3 ss4 "" "_J" "" "")

      (setvar 'PEDITACCEPT pe)

)

)

(setvar "cmdecho" old_cmdecho)

(setvar "osmode" old_osnap)

(setvar "orthomode" old_ortho)

(princ)

)

)

)

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

(prompt "\nContact https://www.facebook.com/groups/AutolispTH")

(prompt "\nEnter SCWF to Start Screw Flight.")

 

(defun create_scwf ()

(setq fname (vl-filename-mktemp "Screw.dcl"))

(setq fn (open fname "w"))

;;-----------------Screw Flight Dialog--------------------

(write-line "Screw : dialog {   "fn)

(write-line "    label = \"   Screw Flight  \";   "fn)

(write-line "      width = 30;             "fn)

(write-line "      fixed_width = 1;  "fn)

(write-line "            : image {          "fn)

(write-line "                  alignment = centered;   "fn)

(write-line "                  key = \"vectors\";       "fn)

(write-line "                  width = 33.26;     "fn)

(write-line "                  height = 11.51;    "fn)

(write-line "                  fixed_width = true;           "fn)

(write-line "                  fixed_height = true;    "fn)

(write-line "                  aspect_ratio = 1;       "fn)

(write-line "                  color = -2;        "fn)

(write-line "            }     "fn)

(write-line "            : boxed_column {  "fn)

(write-line "                  label = \" Screw Dimensions  \";     "fn)

(write-line "                  width = 30;       "fn)

(write-line "                  fixed_width = 1;  "fn)

(write-line "                  : column {         "fn)       

(write-line "                        : edit_box {      "fn)

(write-line "                              key = \"edt1\" ;   "fn)

(write-line "                              label = \"Outside Diameter :\"; "fn)

(write-line "                              edit_width = 6;   "fn)

(write-line "                              value = \"\";            "fn)

(write-line "                              initial_focus = true;   "fn)

(write-line "                        }     "fn)

(write-line "                        : edit_box {            "fn)

(write-line "                              key = \"edt2\";          "fn)

(write-line "                              label = \"Inner Diameter :\";  "fn)

(write-line "                              edit_width = 6;         "fn)

(write-line "                              value = \"\";                  "fn)

(write-line "                        }     "fn)

(write-line "                        : edit_box {      "fn)

(write-line "                              key = \"edt3\";          "fn)

(write-line "                              label = \"Pitch (mm.) :\"; "fn)

(write-line "                              edit_width = 6;   "fn)

(write-line "                              value = \"\";            "fn)

(write-line "                        }     "fn)

(write-line "                  }           "fn)

(write-line "            }           "fn)             

(write-line "            : row {            "fn)

(write-line "                  : column {         "fn)

(write-line "                        : ok_button {           "fn)

(write-line "                              alignment = right;            "fn)

(write-line "                              width = 11;       "fn)

(write-line "                        }           "fn)

(write-line "                  }           "fn)

(write-line "                  : column {         "fn)

(write-line "                        : cancel_button {       "fn)

(write-line "                              alignment = left;       "fn)

(write-line "                              width = 11;       "fn)

(write-line "                        }           "fn)

(write-line "                  }           "fn)

(write-line "            }           "fn)                

(write-line "            : row {            "fn)

(write-line "                  : image {          "fn)

(write-line "                        key = \"im\" ;           "fn)

(write-line "                        width = 10.02;           "fn)

(write-line "                        height = 2.28;           "fn)

(write-line "                        alignment = right;            "fn)

(write-line "                  }           "fn)

(write-line "                  : paragraph {            "fn)

(write-line "                        : text_part {           "fn)

(write-line "                              label = \"Created June 2022\";             "fn)

(write-line "                              alignment = left;       "fn)

(write-line "                        }           "fn)

(write-line "                        : text_part {           "fn)

(write-line "                              label = \"by SongKhraN Jongkul\";         "fn)

(write-line "                              alignment = left;       "fn)

(write-line "                        }           "fn)

(write-line "                  }           "fn)

(write-line "            }           "fn)

(write-line "}                 "fn)

(close fn)

);defun