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

Chia đoạn thẳng bằng cách pick điểm

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

Chào các bạn, thường chia một đoạn thẳng thành các đoạn nhỏ có kích thước tuỳ chọn bằng Div hoặc Me. Giờ mình muốn chia như vậy nhưng k bằng cách chọn đường thẳng mà pick chọn 2 đầu của đoạn thẳng thì làm thế nào? Ví dụ đoạn thẳng dài 1000m nhưng mình muốn chia đoạn 20m trong 1000m đó thôi thì pick đầu và cuối của đoạn 20 và nó chia đoạn đó thôi. Chân thành cảm ơn.

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, 790312 đã nói:

Chào các bạn, thường chia một đoạn thẳng thành các đoạn nhỏ có kích thước tuỳ chọn bằng Div hoặc Me. Giờ mình muốn chia như vậy nhưng k bằng cách chọn đường thẳng mà pick chọn 2 đầu của đoạn thẳng thì làm thế nào? Ví dụ đoạn thẳng dài 1000m nhưng mình muốn chia đoạn 20m trong 1000m đó thôi thì pick đầu và cuối của đoạn 20 và nó chia đoạn đó thôi. Chân thành cảm ơn.

 

Trong đoạn 20m đó, bạn muốn chia theo số đoạn hay theo khoảng cách ?

+ Nếu là khoảng cách có thể search lisp xdiv.lsp

+ Nếu là số đoạn thì.... phải viết code 1 tí.

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

cad: Dùng lệnh Lengthen để chỉnh độ dài thành 20 rồi Div hoặc Me

lisp:

(defun c:test (/ ANG D D1 E ENT I KEY LAYER LS N P1 P2 P3 PE PS)
  (setq ent (entsel "\nChon phia can chia")
    p1 (cadr ent)
    e (entget (car ent))
    layer (cdr (assoc 8 e))
    ps (cdr (assoc 10 e))
    pe (cdr (assoc 11 e))
    ls (list ps pe)
    d (getdist "Chieu dai can chia"))
  (if (> (distance ps p1) (distance pe p1)) (setq ls (REVERSE ls)))
  (setq p1 (car ls)
    ang (angle (car ls) (cadr ls)))
  (initget 1 "Measure Divide")
  (setq key (GETKWORD "Divide hay Measure ?"))
  (cond
    ((= key "Measure")(setq d1 (getdist "\nKhoang cach chia:") n (fix (/ d d1))))
    ((= key "Divide")(setq n (getint "\nSo khoang chia") d1 (/ d (itoa n))))
    )

(setq    i 0)
  (repeat n
    (setq p2 (polar p1 ang (* i d1))
      p3 (polar p1 ang (* (+ 1 i) d1)))
    (entmake (list (cons 0 "line")(cons 10 p2) (cons 11 p3)(cons 8 layer)))
       
    (setq i (1+ 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

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  

×