Đến nội dung


Hình ảnh

Làm thế nào vẽ nhanh hình này?


  • Please log in to reply
6 replies to this topic

#1 codered8x

codered8x

    biết lệnh copy

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

Đã gửi 17 May 2010 - 10:49 PM

Mình đang làm đồ án, vẽ cái hình này rất lâu và tốn công sức, bạn nào biết cách vẽ nhanh khôg chỉ mình bit với.Tại mình phải vẽ nhiều hình dạng như thế này với số lượng lỗ khoan nạp thuốc thay đổi và mỗi đường chu vi qui định một số lượng lỗ khoan nạp thuốc cho trước, biết kích thước hầm.Thanks!
http://www.cadviet.c...files/2/no1.dwg
  • 0

#2 codered8x

codered8x

    biết lệnh copy

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

Đã gửi 18 May 2010 - 02:09 AM

Không bạn nào giúp mình à?
  • 0

#3 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 18 May 2010 - 06:11 AM

Mình đang làm đồ án, vẽ cái hình này rất lâu và tốn công sức, bạn nào biết cách vẽ nhanh khôg chỉ mình bit với.Tại mình phải vẽ nhiều hình dạng như thế này với số lượng lỗ khoan nạp thuốc thay đổi và mỗi đường chu vi qui định một số lượng lỗ khoan nạp thuốc cho trước, biết kích thước hầm.Thanks!
http://www.cadviet.c...files/2/no1.dwg

Thảo nào việc nối các Spline để DIV hay ME ở chủ đề này của codered8x
Gộp nhiều đường cong thành một đường cong?? cũng là vì lý do ở bài viết này

Như Tue_NV đã trả lời ở Topic theo đường Link trên -> Không thể nối các Spline được.
Nhưng với POLYLINE thì được -> Do đó, ta tìm cách chuyển các Spline thành các Pline sau đó nối với nhau. Khi chuyển Spline thành Pline thì số phân đoạn chia phải đủ nhỏ để PLINE "gần giống" với SPLINE.
Cách chuyển SPLINE thành PLINE : ->>> Có thể sử dụng Lệnh Flatten hoặc có các Lisp đã viết trên diễn đàn
Sau khi nối các Pline -> Sử dụng lệnh ME hay DIV chia các Block trên PLINE vừa nối đó

Lẽ đương nhiên, nếu sử dụng Lisp thì hình vẽ của bạn sẽ được vẽ 1 cách nhanh chóng.
-> Nó sẽ tự động chia và đánh số thứ tự lỗ khoan luôn với điều kiện : khoảng cách giữa lỗ khoan đều nhau hoặc khoảng cách giữa lỗ khoan tuân theo 1 quy luật nào đó. Thời gian này Tue_NV rất bận nên không thể viết được.

Chúc em hoàn thành đồ án thật tốt :cheers:
  • 0

#4 codered8x

codered8x

    biết lệnh copy

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

Đã gửi 18 May 2010 - 10:27 AM

Cảm ơn bác Tuệ, e làm gần được rồi, còn thắc mắc là làm sao để lệnh DIV nó chọn điểm bắt đầu chia là do mình chọn nhỉ?Ví dụ e muốn các lỗ khoan nạp thuốc ở các đường chu vi đều có 1 lỗ nằm trên trục đối xứng của hầm.Thứ 2 là vấn đề đánh số lỗ khoan, có cách nào đánh nhanh không nhỉ chứ đánh thủ công thì lầu quá.
  • 0

#5 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 18 May 2010 - 10:49 AM

Cảm ơn bác Tuệ, e làm gần được rồi, còn thắc mắc là làm sao để lệnh DIV nó chọn điểm bắt đầu chia là do mình chọn nhỉ?Ví dụ e muốn các lỗ khoan nạp thuốc ở các đường chu vi đều có 1 lỗ nằm trên trục đối xứng của hầm.Thứ 2 là vấn đề đánh số lỗ khoan, có cách nào đánh nhanh không nhỉ chứ đánh thủ công thì lầu quá.

1. codered8x muốn thế nào ? lệnh DIV bắt đầu chia là do mình chọn là sao?
Tue_NV nghĩ ý này xem có đúng không nhé?
-> Bẽ gãy 1 điểm tại Pline
-> Chọn 1 đối tượng trong 2 đoạn bẽ gãy đó làm đối tượng chia
-> Bắt đầu chia Block trên đối tượng vừa chọn với điểm bắt đầu chia là điểm bẽ gãy (điểm này do user chọn đầu tiên)
-> Nối 2 đoạn đã bẽ gãy ở trên thành 1 đoạn duy nhất
Phải cái ý này hôn?

2. Đã có nhiều Lisp trên diễn đàn viết về đánh số thứ tự. Bạn có thể sử dụng code này của Tue_NV :

(defun c:dstt(/ dau po po1 ent i)
;copyright by Tue_NV
;(prompt "\n Danh so thu tu dang n/m ")
(setvar "cmdecho" 0)

(setq dau (getint "\n Danh so bat dau (n) :"))

(setq po (getpoint (strcat "\n Cho diem chen cua so : " (itoa dau))) i 1)
(wtxt (itoa dau) po)

(while
(setq po1 (getpoint po (strcat "\n Cho diem chen cua so : " (itoa (+ dau i)) )))

(command "copy" "L" "" po po1)
(setq ent (entget(entlast)))
(setq ent (subst (cons 1 (itoa (+ dau i)) ) (assoc 1 ent) ent))
(entmod ent)
(setq i (1+ i))
(setq po po1)
)
(princ)
)
;
(defun wtxt (txt p / sty d h)
(setq sty (getvar "textstyle")
d (tblsearch "style" sty)
h (cdr (assoc 40 d)))
(entmake (list (cons 0 "TEXT") (cons 7 sty) (cons 1 txt) (cons 10 p) (cons 11 p)
(cons 72 1) (cons 73 2)
(if (> h 0) (cons 40 h) (assoc 40 d)) (assoc 41 d))
)
)

  • 1

#6 minhhaird

minhhaird

    biết pan

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

Đã gửi 18 May 2010 - 01:41 PM

tuyệt vời thank tue-nv nhe! khi nao có cái nào hay hay bay cho anh em với nhé!
  • 0

#7 codered8x

codered8x

    biết lệnh copy

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

Đã gửi 19 May 2010 - 05:42 PM

Okie, cảm ơn bác Tuệ, có lisp của bác e add số rất nhanh.
  • 0