Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
Superlong

Xin Lips Chia Góc Thành Các Phần Bằng Nhau

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

ai có lips vẽ các đường chia góc thành các phần bằng nhau không cho mình xin với

vd: mình có 1 góc được tạo từ 2 đường thẳng giao nhau nay muốn chia thành  N lần bằng cách -> pick điểm giao nhau của 2 đường thẳng ban đầu -> pick điểm thứ nhất của góc -> pick điểm thứ 2 của góc -> nhập số lượng góc muốn chia -> kết quả tự vẽ các đường line để chia góc ban đầu thành nhìu phần bằng nhau vs số lượng đã chọn ban đầu . Tks!

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

Của bạn đây:

 

(defun c:tt  (/ Make-Line mid_point ang ang-i ang-org ang1 ang2 enl1 enl2 int len n ps1 ps2 ss1 ss2)
 (defun Make-Line (p1 p2) (entmakex (list (cons 0 "LINE") (cons 10 p1) (cons 11 p2) (cons 62 3))))
 (defun mid_point (p1 p2) (mapcar '(lambda (a b) (* 0.5 (+ a b))) p1 p2))
 (if (and (princ "\nChon Line 1: ")
          (setq ss1 (ssget "_+.:E:S" '((0 . "LINE"))))
          (princ "\nChon Line 2: ")
          (setq ss2 (ssget "_+.:E:S" '((0 . "LINE")))))
  (progn (setq enl1 (entget (ssname ss1 0))
               enl2 (entget (ssname ss2 0))
               ps1  (list (cdr (assoc 10 enl1)) (cdr (assoc 11 enl1)))
               ps2  (list (cdr (assoc 10 enl2)) (cdr (assoc 11 enl2)))
               len  (* (+ (distance (car ps1) (cadr ps1)) (distance (car ps2) (cadr ps2))) 0.5))
         (if (setq int (inters (car ps1) (cadr ps1) (car ps2) (cadr ps2) nil))
          (progn (setq ang1 (angle int (mid_point (car ps1) (cadr ps1)))
                       ang2 (angle int (mid_point (car ps2) (cadr ps2)))
                       ang  (abs (- ang1 ang2)))
                 (if (> ang pi)
                  (progn (setq ang-org (max ang1 ang2)) (setq ang (- (* 2 pi) ang)))
                  (setq ang-org (min ang1 ang2)))
                 (or (> so_goc_can_chia 2) (setq so_goc_can_chia 2))
                 (initget 6)
                 (and (setq so_goc_can_chia (cond ((getint (strcat "\nSo luong goc can chia <" (itoa so_goc_can_chia) ">: ")))
                                                  (so_goc_can_chia)))
                      (> so_goc_can_chia 1)
                      (setq n so_goc_can_chia)
                      (setq ang-i (/ ang n))
                      (repeat (1- n) (Make-Line int (polar int (+ (* (setq n (1- n)) ang-i) ang-org) len))))))))
 (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

Trường hợp này,  anh chủ thớt có thể  dùng Polar Array cho nó lành, không nên lạm dụng lisp !

 

Thí dụ về chia một góc bất kỳ ra làm 5 phần bằng nhau:

 

11837_lkj.png

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

ở đây việc mình làm lặp đi lặp lại rất nhiều lần nên nếu có lips sẽ đỡ vất vả hơn nhờ quocmanh04tt kiểm tra lại giúp mình với

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

 

 sao mình load lips nó báo Command: ap APPLOAD tt .lsp successfully loaded.

Command: ; error: syntax error

 

Bạn down hay copy? Lỗi download của diễn đàn được nói rất nhiều rồi.

  • Vote tăng 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

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

Đăng nhập để thực hiện theo  

×