Chuyển đến nội dung
Diễn đàn CADViet
phat1998

Xuất tọa độ điểm và góc

Các bài được khuyến nghị

9 phút trước, DuongTrungHuy đã nói:

Hi.

Bạn sử dụng chường trình mình được không.

dạ em đc anh ạ . em đang muốn sửa đổi 3 điều này:

- điều 1: số thứ tự 1,2,3..n mỗi đầu dòng em muốn cho nó mặc định là G01

- điều 2: ví dụ dòng text ( 1 200 300 30) em muốn nó thành( g01 X200 Y300 A30), tức làm em muốn gán X Y A mặc định vào trước tọa độ của nó 

em đang tự đọc các hàm anh viết để hiểu code anh viết. anh cho em cái gợi ý để làm được 2 ý trên không ạ

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
1 giờ trước, phat1998 đã nói:

dạ em đc anh ạ . em đang muốn sửa đổi 3 điều này:

- điều 1: số thứ tự 1,2,3..n mỗi đầu dòng em muốn cho nó mặc định là G01

- điều 2: ví dụ dòng text ( 1 200 300 30) em muốn nó thành( g01 X200 Y300 A30), tức làm em muốn gán X Y A mặc định vào trước tọa độ của nó 

em đang tự đọc các hàm anh viết để hiểu code anh viết. anh cho em cái gợi ý để làm được 2 ý trên không ạ

 

Hàm (STRCAT "string1" "string2" ...)   ---> "string1_string2"

Ví dụ : (STRCAT "ABC" "DEF")   ---> "ABCDEF"

  • Like 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
4 giờ trước, phat1998 đã nói:

dạ em đc anh ạ . em đang muốn sửa đổi 3 điều này:

- điều 1: số thứ tự 1,2,3..n mỗi đầu dòng em muốn cho nó mặc định là G01

- điều 2: ví dụ dòng text ( 1 200 300 30) em muốn nó thành( g01 X200 Y300 A30), tức làm em muốn gán X Y A mặc định vào trước tọa độ của nó 

em đang tự đọc các hàm anh viết để hiểu code anh viết. anh cho em cái gợi ý để làm được 2 ý trên không ạ

Hi. bạn Danh Cong đã hướng dẫn rồi đó.

 

À việc lập trình nói chung cũng không khó lắm, nhưng điểm cần thiết phải là người tỉ mỉ, máy tính hiểu 1 cách rất máy móc nên phải chỉn chu, sai 1 dấu nhỏ nó cũng không hiểu :)

và tất nhiên phải có 1 chút kiến thức cơ sở về Toán đó Bạn.

 

Chúc công việc thuận lợi nhé!.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
2 phút trước, DuongTrungHuy đã nói:

Hi. bạn Danh Cong đã hướng dẫn rồi đó.

 

À việc lập trình nói chung cũng không khó lắm, nhưng điểm cần thiết phải là người tỉ mỉ, máy tính hiểu 1 cách rất máy móc nên phải chỉn chu, sai 1 dấu nhỏ nó cũng không hiểu :)

và tất nhiên phải có 1 chút kiến thức cơ sở về Toán đó Bạn.

 

Chúc công việc thuận lợi nhé!.

dạ em vẫn đang đọc hiểu từng dòng code đây ạ. đọc đến đâu tra gg hàm đến đó. mong là sẽ tự sử được theo yêu cầu

trong trường hợp không ra hi vọng sẽ đc anh chỉ dạy ạ. 

e, cảm ơn anh ạ

  • Like 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Vào lúc 29/10/2020 tại 14:14, DuongTrungHuy đã nói:

Hi. bạn Danh Cong đã hướng dẫn rồi đó.

 

À việc lập trình nói chung cũng không khó lắm, nhưng điểm cần thiết phải là người tỉ mỉ, máy tính hiểu 1 cách rất máy móc nên phải chỉn chu, sai 1 dấu nhỏ nó cũng không hiểu :)

và tất nhiên phải có 1 chút kiến thức cơ sở về Toán đó Bạn.

 

Chúc công việc thuận lợi nhé!.

anh ơi khó quá anh ạ. em không sửa cái số thứ tự 1 2 3 4 5.. n thành G01 được ạ. em nghĩ nó ở đoạn này mà em sửa toàn bị lỗi

(setq lst_pt (reverse lst_pt))
  (if (setq file_name (getfiled "Xuat du lieu" "Toa do diem va goc" "txt" 1))
    (progn
      (setq file_write (open file_name "W"))
      (setq lst_write (mapcar '(lambda (lst) (list (itoa (car lst)) (rtos (caadr lst) 2 4) (rtos (cadadr lst) 2 4) (rtos (caddr lst) 2 2))) lst_pt))
      (foreach lst lst_write
    (setq str "")
    (foreach n lst 
      (setq str (strcat str n "\t"))
      )
    (setq str (substr str 1 (1- (strlen str))))
    (write-line  str file_write )
    )
      (close file_write)
      )
    )
  (print)

 

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
2 giờ trước, phat1998 đã nói:

anh ơi khó quá anh ạ. em không sửa cái số thứ tự 1 2 3 4 5.. n thành G01 được ạ. em nghĩ nó ở đoạn này mà em sửa toàn bị lỗi

; Day Ban

 

  (setvar "Osmode" 0)(Setvar "orthomode" 0)(setvar "cmdecho" 0)
  (setq file_name (getfiled "Xuat du lieu" "Toa_do_diem_va_goc" "txt" 1))
  (setq kq (open file_name "w") nd 10 kc 0.0 2pi (* 2.0 pi)
        e1 (car (entsel "\nChon Spline: ")) 
        Ldai (/ (vlax-curve-getDistAtParam e1 (vlax-curve-getEndParam e1)) nd)
  )
  (Repeat (1+ nd)
    (setq d1 (vlax-curve-getPointAtDist e1 kc) so (vlax-curve-getFirstDeriv e1 kc) goc (+ (angle (list 0 0) so) (/ pi 2.0))
          oo (if (> goc 2pi)(setq goc (- goc 2pi)))
          oo (Princ (strcat "\n**" (rtos kc 2 8) " " (rtos (car d1) 2 8) " " (rtos (cadr d1) 2 8) " " (rtos goc 2 7)))
          oo (Print (angle (list 0 0) so)) kc (+ kc Ldai)
          oo (Princ (strcat "\n=" (rtos kc 2 8) " " (rtos (car d1) 2 8) " " (rtos (cadr d1) 2 8) " " (rtos goc 2 7)))
    )
    (Princ (strcat "\n" (rtos kc 2 8) " " (rtos (car d1) 2 8) " " (rtos (cadr d1) 2 8) " " (rtos goc 2 7)))
    (Princ (strcat "\nG01 X" (rtos (car d1) 2 8) " Y" (rtos (cadr d1) 2 8) " A" (rtos goc 2 7)) kq)
  )
  (close kq)
  (Princ (strcat "\nFile ket qua: \"" file_name "\"")) (princ)

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Vào lúc 31/10/2020 tại 17:16, DuongTrungHuy đã nói:

; Day Ban

 

  (setvar "Osmode" 0)(Setvar "orthomode" 0)(setvar "cmdecho" 0)
  (setq file_name (getfiled "Xuat du lieu" "Toa_do_diem_va_goc" "txt" 1))
  (setq kq (open file_name "w") nd 10 kc 0.0 2pi (* 2.0 pi)
        e1 (car (entsel "\nChon Spline: ")) 
        Ldai (/ (vlax-curve-getDistAtParam e1 (vlax-curve-getEndParam e1)) nd)
  )
  (Repeat (1+ nd)
    (setq d1 (vlax-curve-getPointAtDist e1 kc) so (vlax-curve-getFirstDeriv e1 kc) goc (+ (angle (list 0 0) so) (/ pi 2.0))
          oo (if (> goc 2pi)(setq goc (- goc 2pi)))
          oo (Princ (strcat "\n**" (rtos kc 2 8) " " (rtos (car d1) 2 8) " " (rtos (cadr d1) 2 8) " " (rtos goc 2 7)))
          oo (Print (angle (list 0 0) so)) kc (+ kc Ldai)
          oo (Princ (strcat "\n=" (rtos kc 2 8) " " (rtos (car d1) 2 8) " " (rtos (cadr d1) 2 8) " " (rtos goc 2 7)))
    )
    (Princ (strcat "\n" (rtos kc 2 8) " " (rtos (car d1) 2 8) " " (rtos (cadr d1) 2 8) " " (rtos goc 2 7)))
    (Princ (strcat "\nG01 X" (rtos (car d1) 2 8) " Y" (rtos (cadr d1) 2 8) " A" (rtos goc 2 7)) kq)
  )
  (close kq)
  (Princ (strcat "\nFile ket qua: \"" file_name "\"")) (princ)

kết quả góc sai anh ạ

  • Vote giảm 2

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Vào lúc 31/10/2020 tại 17:16, DuongTrungHuy đã nói:

; Day Ban

 

  (setvar "Osmode" 0)(Setvar "orthomode" 0)(setvar "cmdecho" 0)
  (setq file_name (getfiled "Xuat du lieu" "Toa_do_diem_va_goc" "txt" 1))
  (setq kq (open file_name "w") nd 10 kc 0.0 2pi (* 2.0 pi)
        e1 (car (entsel "\nChon Spline: ")) 
        Ldai (/ (vlax-curve-getDistAtParam e1 (vlax-curve-getEndParam e1)) nd)
  )
  (Repeat (1+ nd)
    (setq d1 (vlax-curve-getPointAtDist e1 kc) so (vlax-curve-getFirstDeriv e1 kc) goc (+ (angle (list 0 0) so) (/ pi 2.0))
          oo (if (> goc 2pi)(setq goc (- goc 2pi)))
          oo (Princ (strcat "\n**" (rtos kc 2 8) " " (rtos (car d1) 2 8) " " (rtos (cadr d1) 2 8) " " (rtos goc 2 7)))
          oo (Print (angle (list 0 0) so)) kc (+ kc Ldai)
          oo (Princ (strcat "\n=" (rtos kc 2 8) " " (rtos (car d1) 2 8) " " (rtos (cadr d1) 2 8) " " (rtos goc 2 7)))
    )
    (Princ (strcat "\n" (rtos kc 2 8) " " (rtos (car d1) 2 8) " " (rtos (cadr d1) 2 8) " " (rtos goc 2 7)))
    (Princ (strcat "\nG01 X" (rtos (car d1) 2 8) " Y" (rtos (cadr d1) 2 8) " A" (rtos goc 2 7)) kq)
  )
  (close kq)
  (Princ (strcat "\nFile ket qua: \"" file_name "\"")) (princ)

anh ơi cái trình lisp này của em có thể chuyển sang file.ARX không ạ

  • Vote giảm 2

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Vào lúc 31/10/2020 tại 17:16, DuongTrungHuy đã nói:

; Day Ban

 

  (setvar "Osmode" 0)(Setvar "orthomode" 0)(setvar "cmdecho" 0)
  (setq file_name (getfiled "Xuat du lieu" "Toa_do_diem_va_goc" "txt" 1))
  (setq kq (open file_name "w") nd 10 kc 0.0 2pi (* 2.0 pi)
        e1 (car (entsel "\nChon Spline: ")) 
        Ldai (/ (vlax-curve-getDistAtParam e1 (vlax-curve-getEndParam e1)) nd)
  )
  (Repeat (1+ nd)
    (setq d1 (vlax-curve-getPointAtDist e1 kc) so (vlax-curve-getFirstDeriv e1 kc) goc (+ (angle (list 0 0) so) (/ pi 2.0))
          oo (if (> goc 2pi)(setq goc (- goc 2pi)))
          oo (Princ (strcat "\n**" (rtos kc 2 8) " " (rtos (car d1) 2 8) " " (rtos (cadr d1) 2 8) " " (rtos goc 2 7)))
          oo (Print (angle (list 0 0) so)) kc (+ kc Ldai)
          oo (Princ (strcat "\n=" (rtos kc 2 8) " " (rtos (car d1) 2 8) " " (rtos (cadr d1) 2 8) " " (rtos goc 2 7)))
    )
    (Princ (strcat "\n" (rtos kc 2 8) " " (rtos (car d1) 2 8) " " (rtos (cadr d1) 2 8) " " (rtos goc 2 7)))
    (Princ (strcat "\nG01 X" (rtos (car d1) 2 8) " Y" (rtos (cadr d1) 2 8) " A" (rtos goc 2 7)) kq)
  )
  (close kq)
  (Princ (strcat "\nFile ket qua: \"" file_name "\"")) (princ)

anh cho em hỏi, trình bày thuật toán của chương trình này như nào ạ ?

 

  • Vote giảm 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
18 giờ trước, phat1998 đã nói:

anh cho em hỏi, trình bày thuật toán của chương trình này như nào ạ ?

 

Chào Bạn.

Mình ko hiểu câu hỏi bạn. Bạn muốn hiểu ý tưởng để đưa ra chương trình mình đã viết hay sao?

 

Chào 

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

tức là khi em đi bảo vệ đồ án, em sẽ phải trình bày chương trình này giải quyết cái gì

từ đầu vào là 1 curve chương trình sẽ cho đầu ra là tọa độ và góc

vậy để trình bày điều này cần có thuật toán dạng như sơ đồ khối ấy ạ

chứ mình không thể show lisp lên rồi giải thích từng dòng được

  • Vote giảm 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
24 phút trước, phat1998 đã nói:

tức là khi em đi bảo vệ đồ án,...

Chào,

 

Cười, à tức ý là trình bày ý tưởng hở.

 

Cái này lâu quá mình cũng quên mất thế nào. Sợ cuối năm mình hơi bận đó Bạn.

 

Chào nhé!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Vào lúc 31/10/2020 tại 17:16, DuongTrungHuy đã nói:

; Day Ban

 

  (setvar "Osmode" 0)(Setvar "orthomode" 0)(setvar "cmdecho" 0)
  (setq file_name (getfiled "Xuat du lieu" "Toa_do_diem_va_goc" "txt" 1))
  (setq kq (open file_name "w") nd 10 kc 0.0 2pi (* 2.0 pi)
        e1 (car (entsel "\nChon Spline: ")) 
        Ldai (/ (vlax-curve-getDistAtParam e1 (vlax-curve-getEndParam e1)) nd)
  )
  (Repeat (1+ nd)
    (setq d1 (vlax-curve-getPointAtDist e1 kc) so (vlax-curve-getFirstDeriv e1 kc) goc (+ (angle (list 0 0) so) (/ pi 2.0))
          oo (if (> goc 2pi)(setq goc (- goc 2pi)))
          oo (Princ (strcat "\n**" (rtos kc 2 8) " " (rtos (car d1) 2 8) " " (rtos (cadr d1) 2 8) " " (rtos goc 2 7)))
          oo (Print (angle (list 0 0) so)) kc (+ kc Ldai)
          oo (Princ (strcat "\n=" (rtos kc 2 8) " " (rtos (car d1) 2 8) " " (rtos (cadr d1) 2 8) " " (rtos goc 2 7)))
    )
    (Princ (strcat "\n" (rtos kc 2 8) " " (rtos (car d1) 2 8) " " (rtos (cadr d1) 2 8) " " (rtos goc 2 7)))
    (Princ (strcat "\nG01 X" (rtos (car d1) 2 8) " Y" (rtos (cadr d1) 2 8) " A" (rtos goc 2 7)) kq)
  )
  (close kq)
  (Princ (strcat "\nFile ket qua: \"" file_name "\"")) (princ)

anh ơi em ms phát hiện 1 vấn đề đó là giả sử đường cong có điểm xuất phát là A , điểm cuối là B thì giá trị góc thu được khác với đường cong cũng như trên nhưng điểm xuát phát là B và điểm cuối là A.

Tức là  lm cách nào để ta các hướng của vector tiếp tuyến không ảnh hưởng đến kết quả được không ạ. 

ta chỉ cần thu giá trị góc giữa 2 đường thẳng tiếp tuyến và đường 0x

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
6 phút trước, phat1998 đã nói:

anh ơi em ms phát hiện...

Chào bạn

Mình đi ctác xa.

Hnào về nhé

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay

×