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

lisp vẽ và hatch theo yêu cầu

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

em thường xuyên phải vẽ nhiều hình vuông, chữ nhật, tròn, elíp, hoặc hình bất kì khép kín sau đó phải đi hatch mất rất nhiều thời gian. bác nào có thể giúp em một lisp như sau:

- vẽ hình chữ nhật=kết quả hình chữ nhật được hatch "brass" scale tự chọn phù hợp với hình chữ nhật.

 

- vẽ hình elíp= kết quả elíp được hatch "ar-sand" scale tự chọn phù hợp với elíp được vẽ.

 

- vẽ hình tròn tương tự như hình elíp.

- vẽ hình bất kì khép kín= kết quả hình bất kì khép kín được hatch "ansi37" scale tự chọn phù hợp với hình được vẽ.

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 THƯỜNG XUYÊN PHẢI VẼ NHIỀU HÌNH VUÔNG, CHỮ NHẬT, TRÒN, ELÍP, HOẶC HÌNH BẤT KÌ KHÉP KÍN SAU ĐÓ PHẢI ĐI HATCH MẤT RẤT NHIỀU THỜI GIAN. BÁC NÀO CÓ THỂ GIÚP EM MỘT LISP NHƯ SAU:

- VẼ HÌNH CHỮ NHẬT=KẾT QUẢ HÌNH CHỮ NHẬT ĐƯỢC HATCH "BRASS" SCALE TỰ CHỌN PHÙ HỢP VỚI HÌNH CHỮ NHẬT.

 

- VẼ HÌNH ELÍP= KẾT QUẢ ELÍP ĐƯỢC HATCH "AR-SAND" SCALE TỰ CHỌN PHÙ HỢP VỚI ELÍP ĐƯỢC VẼ.

 

- VẼ HÌNH TRÒN TƯƠNG TỰ NHƯ HÌNH ELÍP.

- VẼ HÌNH BẤT KÌ KHÉP KÍN= KẾT QUẢ HÌNH BẤT KÌ KHÉP KÍN ĐƯỢC HATCH "ANSI37" SCALE TỰ CHỌN PHÙ HỢP VỚI HÌNH ĐƯỢC VẼ.

 

Thế nào là 'PHÙ HỢP' hả bạn. Bạn hãy nói rõ hơn, có hình thì càng tố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
Thế nào là 'PHÙ HỢP' hả bạn. Bạn hãy nói rõ hơn, có hình thì càng tốt.

phù hợp ở đây là hình hatch phù hợp với hình được vẽ, như hình vẽ bên dưới tuỳ theo kích thước của hình chữ nhật, tròn, elip. nếu ta lisp cho nhập giá trị scale của hatch thì càng tốt.

14673027ka6.jpg

86357794df1.jpg

60529198iw3.jpg

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
phù hợp ở đây là hình hatch phù hợp với hình được vẽ, như hình vẽ bên dưới tuỳ theo kích thước của hình chữ nhật, tròn, elip. nếu ta lisp cho nhập giá trị scale của hatch thì càng tốt.

14673027ka6.jpg

86357794df1.jpg

60529198iw3.jpg

Bạn có thể đưa ra 1 công thức được không?

 

Tức là tỷ lệ giữa hatch scale và diện tích hatch?

 

Hoặc bạn hãy upload 1 file dwg lên diễn đàn, tôi sẽ tính tỷ lệ này và viết lisp giúp bạ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
Bạn có thể đưa ra 1 công thức được không?

 

Tức là tỷ lệ giữa hatch scale và diện tích hatch?

 

Hoặc bạn hãy upload 1 file dwg lên diễn đàn, tôi sẽ tính tỷ lệ này và viết lisp giúp bạn.

ĐÂY LÀ FILE CỦA EM BÁC CỨ CHO TỈ LỆ GIỮA HATCH VÀ DIỆN TÍCH HATCH NHƯ VẬY LÀ ĐƯỢC.

BÁC CHO MÀU ĐỎ NHƯ VẬY NHÉ! BÁC GIÚP EM VỚI NHÉ!!!

FILE MAU CUA EM DAY

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 LÀ FILE CỦA EM BÁC CỨ CHO TỈ LỆ GIỮA HATCH VÀ DIỆN TÍCH HATCH NHƯ VẬY LÀ ĐƯỢC.

BÁC CHO MÀU ĐỎ NHƯ VẬY NHÉ! BÁC GIÚP EM VỚI NHÉ!!!

FILE MAU CUA EM DAY

 

Tên lệnh là SHH (Scale hatch):

(setq lsthatch '(("ANSI37" . 0.929259338) ("AR-SAND" . 18.3594989) ("ANSI33" . 1.3465935)))

(defun c:shh ()
 (defun sh (ent)
   (setq tt	(entget ent)
  hname	(cdr (assoc 2 tt))
   )
   (if	(setq g (assoc hname lsthatch))
     (progn
(command ".area" "o" ent)
(setq dt  (getvar "area")
      msc (cdr g)
      nsc (/ (sqrt dt) msc)	      
)
(command ".hatchedit" ent "p" "" nsc "")
     )
   )
 )
 (setq ss (ssget '((0 . "HATCH"))))
 (sudung sh 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
)

  • 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ên lệnh là SHH (Scale hatch):

(setq lsthatch '(("ANSI37" . 0.929259338) ("AR-SAND" . 18.3594989) ("ANSI33" . 1.3465935)))

(defun c:shh ()
 (defun sh (ent)
   (setq tt	(entget ent)
  hname	(cdr (assoc 2 tt))
   )
   (if	(setq g (assoc hname lsthatch))
     (progn
(command ".area" "o" ent)
(setq dt  (getvar "area")
      msc (cdr g)
      nsc (/ (sqrt dt) msc)	      
)
(command ".hatchedit" ent "p" "" nsc "")
     )
   )
 )
 (setq ss (ssget '((0 . "HATCH"))))
 (sudung sh 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
)

EM CẢM ƠN BÁC HOÀNH NHÉ!! NHƯNG SAO EM DÙNG CÓ THẤY ĐƯỢC NHƯ Ý EM ĐÂU. HÌNH NHƯ BÁC VẪN CHƯA HIỂU Ý EM, HAY LÀ EM KHÔNG HIỂU ĐOẠN LISP NÀY CỦA BÁC.

Ý CỦA EM LÀ LẬP MỘT LISP MÀ KHI TA VẼ HÌNH CHỮ NHẬT THÌ LẬP TỨC NÓ ĐƯỢC HATCH THEO YÊU CẦU (HATCH "BRASS" VÀ TỶ LỆ GIỮA HATCH VÀ MIỀN DIỆN TÍCH ĐƯỢC HATCH NHƯ TRONG FILE MẪU), TƯƠNG TỰ NHƯ HÌNH TRÒN, ELIP, HAY HÌNH BẤT KỲ. MONG ANH GIÚP.

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 bác có thể tạo HATCH như ý thế này được không ạ : 1.Tạo TEN HATCH ( ví dụ : Ar-sand ) 2. Tạo loại ANNOTIVE ( thay đổi theo từng tỉ lệ, mục đích xài cho mỗi layout ) 3. Tỉ lệ 1:100, 1:50....mục đích có tác dụng với mỗi layout ở tỉ lệ tương ứng. 4.Scale theo tỉ lệ đặt trước ( ví dụ: 50, 100, 200... )

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 CẢM ƠN BÁC HOÀNH NHÉ!! NHƯNG SAO EM DÙNG CÓ THẤY ĐƯỢC NHƯ Ý EM ĐÂU. HÌNH NHƯ BÁC VẪN CHƯA HIỂU Ý EM, HAY LÀ EM KHÔNG HIỂU ĐOẠN LISP NÀY CỦA BÁC.

Ý CỦA EM LÀ LẬP MỘT LISP MÀ KHI TA VẼ HÌNH CHỮ NHẬT THÌ LẬP TỨC NÓ ĐƯỢC HATCH THEO YÊU CẦU (HATCH "BRASS" VÀ TỶ LỆ GIỮA HATCH VÀ MIỀN DIỆN TÍCH ĐƯỢC HATCH NHƯ TRONG FILE MẪU), TƯƠNG TỰ NHƯ HÌNH TRÒN, ELIP, HAY HÌNH BẤT KỲ. MONG ANH GIÚP.

 

 

Bác xem thử đúng ý bác không? Mấy cái khác cứ thương tự.

 

(defun c:c-(/ p r tl)
(command "circle" (setq p (getpoint "\nCIRCLE Specify center point for circle:"))
		  (setq r (getpoint p "\nSpecify radius of circle:"))
 )

(setq tl (fix (/ (distance p r) 100)))

(command "hatch" "AR-SAND" "" "" (entlast) "") 
 )

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

×