Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
Đăng nhập để thực hiện theo  
quangthanhdu

Hiệu chỉnh chiều dài của đoạn thẳng !!!

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

Em muốn làm cho các đoạn thẳng dài ra hoặc ngắn lại (như trong bản vẽ, từ hình 1 có thể tạo thành hình 2 hoặc hình 3), có cách nào làm nhanh được việc này không?

Chân thành cảm ơn!!!

 

http://up.4share.vn/f/5766646366666763/chieu dai coc.dwg

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
Em muốn làm cho các đoạn thẳng dài ra hoặc ngắn lại (như trong bản vẽ, từ hình 1 có thể tạo thành hình 2 hoặc hình 3), có cách nào làm nhanh được việc này không?

Chân thành cảm ơn!!!

 

http://up.4share.vn/f/5766646366666763/chieu dai coc.dwg

 

Bạn hãy dùng lệnh Len = Lengthen với tham số f.

:leluoi:

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ó cái lisp nào làm nhanh việc này không hả máy anh? chứ dùng tham số f chọn thì trong trường hợp đoạn cong thì không khả thi.

Bạn sử dụng cái này thử nhé :

(defun c:Clen(/ ss pl cdai ent pcl pch)
 (vl-load-com)
 (if (setq ss (ssget '((0 . "LINE") (8 . "2"))))
 (progn
 (setq i -1
pl (car(entsel "\n Pick vao tim duong  PLINE :"))
cdai (getreal "\n Khoang cach can thay doi :")
 )
 (while (setq ent (ssname ss (setq i (1+ i))))
   (setq pcl (vlax-curve-getClosestPointTo pl (vlax-curve-getstartpoint ent)))
   (if (	   (distance (vlax-curve-getendpoint   ent) pcl)
)
     (setq pch (vlax-curve-getstartpoint ent))
     (setq pch (vlax-curve-getendpoint   ent))
   )
   (vl-cmdf "LENGTHEN" "de" cdai pch "")
 )
 ))
 (princ)
)

  • Vote tăng 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
Bạn sử dụng cái này thử nhé :

(defun c:Clen(/ ss pl cdai ent pcl pch)
 (vl-load-com)
 (if (setq ss (ssget '((0 . "LINE") (8 . "2"))))
 (progn
 (setq i -1
pl (car(entsel "\n Pick vao tim duong  PLINE :"))
cdai (getreal "\n Khoang cach can thay doi :")
 )
 (while (setq ent (ssname ss (setq i (1+ i))))
   (setq pcl (vlax-curve-getClosestPointTo pl (vlax-curve-getstartpoint ent)))
   (if (< (distance (vlax-curve-getstartpoint ent) pcl)
   (distance (vlax-curve-getendpoint   ent) pcl)
)
     (setq pch (vlax-curve-getstartpoint ent))
     (setq pch (vlax-curve-getendpoint   ent))
   )
   (vl-cmdf "LENGTHEN" "de" cdai pch "")
 )
 ))
 (princ)
)

 

Hay Quá.

Nhưng có một điều mà tớ vẩn không rõ...là vì sao khi mình áp dụng lệnh Clen đó cho các đối tượng khác thì không được, trog khi nếu dùng lệnh Matchprop để sao chép thuộc tính của đối tượng màu vàng trong bản vẽ sang cho đối tuợng mới thì lại thực hiện đuợc?! Có phải trong đoạn Lisp chỉ định nghĩa cho một Layer nhất định?? Có cách nào khác để ứng dụng nó cho mọi đối tuợng không..Tue_NV? Cám ơn nhiều 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
Hay Quá.

Nhưng có một điều mà tớ vẩn không rõ...là vì sao khi mình áp dụng lệnh Clen đó cho các đối tượng khác thì không được, trog khi nếu dùng lệnh Matchprop để sao chép thuộc tính của đối tượng màu vàng trong bản vẽ sang cho đối tuợng mới thì lại thực hiện đuợc?! Có phải trong đoạn Lisp chỉ định nghĩa cho một Layer nhất định?? Có cách nào khác để ứng dụng nó cho mọi đối tuợng không..Tue_NV? Cám ơn nhiều nhé!

Ừ, đúng rồi

Để áp dụng cho các đối tượng LINE, bạn thay dòng :

(if (setq ss (ssget '((0 . "LINE") (8 . "2"))))

(progn

(setq i -1

.......

thành dòng :

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

(progn

(setq i -1

......

  • 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
Ừ, đúng rồi

Để áp dụng cho các đối tượng LINE, bạn thay dòng :

(if (setq ss (ssget '((0 . "LINE") (8 . "2"))))

(progn

(setq i -1

.......

thành dòng :

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

(progn

(setq i -1

......

 

Cám ơn nhiều 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
Ừ, đúng rồi

Để áp dụng cho các đối tượng LINE, bạn thay dòng :

(if (setq ss (ssget '((0 . "LINE") (8 . "2"))))

(progn

(setq i -1

.......

thành dòng :

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

(progn

(setq i -1

......

 

Lisp hay Pác à.

Tuy nhiên em thấy có mấy điều mong muốn thế này:

1.Lúc chọn tim đường Pline thì fải là Snap bắt điểm chứ không fải dạng select

2.Pác cho thêm mấy sự lựa chọn giống lựa chọn gốc của lệnh Lengthen

3.Khi đã chọn tim Pline rồi thì nên có lựa chọn thêm hoặc bớt chiều dài theo hướng nào.

:leluoi:

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  

×