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

Thay đổi kích thước hang loạt của các đường line

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

Tôi có 1 bản vẽ có số lượng đường line giống nhau( trong bình đồ tuyến, đường chỉ tên cọc). Tôi muốn làm cho chiều dài các đoạn thẳng này thay đổi kích thước. Có ai có cách nào không chỉ dùm với. ThankS, mong sớm nhận được trà lờ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ôi có 1 bản vẽ có số lượng đường line giống nhau( trong bình đồ tuyến, đường chỉ tên cọc). Tôi muốn làm cho chiều dài các đoạn thẳng này thay đổi kích thước. Có ai có cách nào không chỉ dùm với. ThankS, mong sớm nhận được trà lời

Thay đổi như thế nào bạn?

 

Có 2 cách thay đổi chiều dài:

- cách thứ nhất là tương đối là tăng % theo chiều dài cũ.

- Cách thứ 2 là tăng thành 1 chiều dài cố định.

 

Có 3 kiểu điểm gốc:

- điểm gốc là điểm xuất phát của line.

- điểm gốc là điểm kết thúc của line.

- điểm gốc là điểm giữa của line.

 

Bạn muốn cái nà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
Thay đổi như thế nào bạn?

 

Có 2 cách thay đổi chiều dài:

- cách thứ nhất là tương đối là tăng % theo chiều dài cũ.

- Cách thứ 2 là tăng thành 1 chiều dài cố định.

 

Có 3 kiểu điểm gốc:

- điểm gốc là điểm xuất phát của line.

- điểm gốc là điểm kết thúc của line.

- điểm gốc là điểm giữa của line.

 

Bạn muốn cái nào?

Các đương line này tạo ra trong chương trình nova. Làm cho các đường thẳng thay đổi ( giảm). Điểm gốc là ở giữa đoạn thẳng đ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
Các đương line này tạo ra trong chương trình nova. Làm cho các đường thẳng thay đổi ( giảm). Điểm gốc là ở giữa đoạn thẳng đi

 

Lệnh SCL - Scale Line dưới đây sẽ làm điều bạn muốn. Nó sẽ scale các line với điểm chèn là trung điểm và theo tỷ lệ bạn nhập vào.

 

(defun c:scl ( / ss tyle)
 (defun sl(ent / tt p1 p2 p1m p2m)
   (setq
     tt (entget ent)
     p1 (cdr (assoc 10 tt))
     p2 (cdr (assoc 11 tt))
     p1m (polar p1 (angle p1 p2) (* (distance p1 p2) tyle))
     p2m (polar p2 (angle p2 p1) (* (distance p1 p2) tyle))
     tt (subst (cons 10 p1m) (cons 10 p1) tt)
     tt (subst (cons 11 p2m) (cons 11 p2) tt)
   )
   (entmod tt)
 )
 (setq
   ss	 (ssget '((0 . "LINE")))
   tyle (* (+ (getreal "\nTy le scale line: ") 1.0) 0.5)
 )
 (sudung sl ss)
 (princ)
)

(defun sudung (ham ss / sodt index entdt soapp)
 (setq	sodt  (cond
	(ss (sslength ss))
	(t 0)
      )
soapp 0
index 0
 )
 (repeat sodt
   (setq entdt	(ssname ss index)
  index	(1+ index)
   )
   (if	(ham entdt)
     (setq soapp (1+ soapp))
   )
 )
 soapp
)
(princ "\nSCL - Scale Line, free lisp from CADViet.com")
(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
Lệnh SCL - Scale Line dưới đây sẽ làm điều bạn muốn. Nó sẽ scale các line với điểm chèn là trung điểm và theo tỷ lệ bạn nhập vào.

 

(defun c:scl ( / ss tyle)
 (defun sl(ent / tt p1 p2 p1m p2m)
   (setq
     tt (entget ent)
     p1 (cdr (assoc 10 tt))
     p2 (cdr (assoc 11 tt))
     p1m (polar p1 (angle p1 p2) (* (distance p1 p2) tyle))
     p2m (polar p2 (angle p2 p1) (* (distance p1 p2) tyle))
     tt (subst (cons 10 p1m) (cons 10 p1) tt)
     tt (subst (cons 11 p2m) (cons 11 p2) tt)
   )
   (entmod tt)
 )
 (setq
   ss	 (ssget '((0 . "LINE")))
   tyle (* (+ (getreal "\nTy le scale line: ") 1.0) 0.5)
 )
 (sudung sl ss)
 (princ)
)

(defun sudung (ham ss / sodt index entdt soapp)
 (setq	sodt  (cond
	(ss (sslength ss))
	(t 0)
      )
soapp 0
index 0
 )
 (repeat sodt
   (setq entdt	(ssname ss index)
  index	(1+ index)
   )
   (if	(ham entdt)
     (setq soapp (1+ soapp))
   )
 )
 soapp
)
(princ "\nSCL - Scale Line, free lisp from CADViet.com")
(princ)

Thanksss. Nhân đây cho hỏi bác luôn là cơ sở để tạo các lisp này là thế nào vậy. Em mới biết lấy của mấy bác về thôi chứ chưa biết bắt đầu như thế nào. Mấy bài về lisp của bác em cung xem rối nhưng không biết cụ thể lắm. Mong chỉ giáo! Em đi ngủ đây. Cảm ơn bác vì luôn nhiệt tình với anh em trong diễn đà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

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


×