Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
8 replies to this topic

#1 hatieu

hatieu

    biết vẽ pline

  • Advance Member
  • PipPip
  • 67 Bài viết
Điểm đánh giá: 13 (tàm tạm)

Đã gửi 23 June 2008 - 09:47 AM

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ẽ.
  • 0
Công ty cổ phần đầu tư và xây dựng AGA
Chuyên tư vấn, cung cấp, thi công hệ vách dựng nhôm kính khổ lớn, cửa nhôm kính,
kính cường lực, vách ngăn, lan can, cầu thang kinh, lam nhôm chăn nắng.
Hot: 0984.985.119

#2 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4105 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 23 June 2008 - 09:54 AM

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.
  • 0

#3 hatieu

hatieu

    biết vẽ pline

  • Advance Member
  • PipPip
  • 67 Bài viết
Điểm đánh giá: 13 (tàm tạm)

Đã gửi 23 June 2008 - 10:30 AM

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.
Hình đã gửi
Hình đã gửi
Hình đã gửi
  • 0
Công ty cổ phần đầu tư và xây dựng AGA
Chuyên tư vấn, cung cấp, thi công hệ vách dựng nhôm kính khổ lớn, cửa nhôm kính,
kính cường lực, vách ngăn, lan can, cầu thang kinh, lam nhôm chăn nắng.
Hot: 0984.985.119

#4 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4105 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 23 June 2008 - 01:07 PM

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.
Hình đã gửi
Hình đã gửi
Hình đã gửi

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.
  • 0

#5 hatieu

hatieu

    biết vẽ pline

  • Advance Member
  • PipPip
  • 67 Bài viết
Điểm đánh giá: 13 (tàm tạm)

Đã gửi 23 June 2008 - 02:59 PM

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
  • 0
Công ty cổ phần đầu tư và xây dựng AGA
Chuyên tư vấn, cung cấp, thi công hệ vách dựng nhôm kính khổ lớn, cửa nhôm kính,
kính cường lực, vách ngăn, lan can, cầu thang kinh, lam nhôm chăn nắng.
Hot: 0984.985.119

#6 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4105 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 23 June 2008 - 04:05 PM

ĐÂ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
)

  • 1

#7 hatieu

hatieu

    biết vẽ pline

  • Advance Member
  • PipPip
  • 67 Bài viết
Điểm đánh giá: 13 (tàm tạm)

Đã gửi 23 June 2008 - 04:38 PM

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.
  • 0
Công ty cổ phần đầu tư và xây dựng AGA
Chuyên tư vấn, cung cấp, thi công hệ vách dựng nhôm kính khổ lớn, cửa nhôm kính,
kính cường lực, vách ngăn, lan can, cầu thang kinh, lam nhôm chăn nắng.
Hot: 0984.985.119

#8 vnanhvu

vnanhvu

    Chưa sử dụng CAD

  • Members
  • Pip
  • 3 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 28 November 2010 - 09:36 PM

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... )
  • 0

#9 npham

npham

    biết lệnh rotate

  • Members
  • PipPipPip
  • 136 Bài viết
Điểm đánh giá: 75 (tàm tạm)

Đã gửi 28 November 2010 - 10:10 PM

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) "")
)

  • 0