Đến nội dung


Hình ảnh
- - - - -

[Yêu cầu] Vẽ hình chữ nhật


  • Please log in to reply
19 replies to this topic

#1 quan08

quan08

    biết vẽ pline

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

Đã gửi 17 September 2011 - 05:42 PM

Nhờ các bác viết giùm e đoạn lisp vẽ hình chữ nhật cho nhập điểm chèn,bề rộng,chiều cao như file đính kèm dưới đây:
http://www.cadviet.c...drawing1_88.dwg
Mong các bác bớt chút thời gian giúp e.Chân thành cảm ơn trước.
  • 0

#2 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 17 September 2011 - 07:03 PM

Day ban.

 

(defun c:hcn (/ p1 p2 p3 p4 p5 p6 p7 h B)
(if (and
(setq h (getreal "\nH:"))
(setq b (getreal "\nb:"))
(setq p3 (getpoint "\nPoint:"))
)
(progn

(setq p2 (polar p3 (* pi 0.5) (+ h 21))
p1 (polar p2 (* pi 1.75) 66)
p4 (polar p3 0 B)
p5 (polar p4 (* pi 0.5) h)
p6 (polar p5 pi (+ b 21))
p7 (polar p6 (* pi 1.75) 66))
(command "pline" p1 p2 p3 p4 p5 p6 p7 "")
(princ)
)
)
)

  • 1

#3 quan08

quan08

    biết vẽ pline

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

Đã gửi 18 September 2011 - 07:34 AM

Day ban.



(defun c:hcn (/ p1 p2 p3 p4 p5 p6 p7 h B)
(if (and
(setq h (getreal "\nH:"))
(setq b (getreal "\nb:"))
(setq p3 (getpoint "\nPoint:"))
)
(progn

(setq p2 (polar p3 (* pi 0.5) (+ h 21))
p1 (polar p2 (* pi 1.75) 66)
p4 (polar p3 0 B)
p5 (polar p4 (* pi 0.5) h)
p6 (polar p5 pi (+ b 21))
p7 (polar p6 (* pi 1.75) 66))
(command "pline" p1 p2 p3 p4 p5 p6 p7 "")
(princ)
)
)
)

Cảm ơn bạn nhưng có 1 lỗi là khi vẽ 1 hình chữ nhật kích thước bất kỳ thì ra đúng như yêu cầu,hình thứ n cùng kích thước với hình đầu thì lisp vẫn thực hiện đúng nhưng khi vẽ hình chữ nhật kích thước khác thì bị lỗi vẽ hcn không đúng yêu cầu.Mong bạn và các bác xem giúp.Thanks.
  • 0

#4 mr.nguyen08ql

mr.nguyen08ql

    biết lệnh text

  • Members
  • PipPipPipPip
  • 279 Bài viết
Điểm đánh giá: 59 (tàm tạm)

Đã gửi 18 September 2011 - 08:21 AM

Day ban.



(defun c:hcn (/ p1 p2 p3 p4 p5 p6 p7 h B)
(if (and
(setq h (getreal "\nH:"))
(setq b (getreal "\nb:"))
(setq p3 (getpoint "\nPoint:"))
)
(progn

(setq p2 (polar p3 (* pi 0.5) (+ h 21))
p1 (polar p2 (* pi 1.75) 66)
p4 (polar p3 0 B)
p5 (polar p4 (* pi 0.5) h)
p6 (polar p5 pi (+ b 21))
p7 (polar p6 (* pi 1.75) 66))
(command "pline" p1 p2 p3 p4 p5 p6 p7 "")
(princ)
)
)
)

Bác gì ơi ! giờ bác thêm một đoạn lisp để gán layer và dim cho hình trên được không !
  • 0

#5 cd2k44

cd2k44

    Edu level: li5

  • Members
  • PipPipPipPipPipPipPip
  • 648 Bài viết
Điểm đánh giá: 121 (tàm tạm)

Đã gửi 18 September 2011 - 09:12 AM

Bác gì ơi ! giờ bác thêm một đoạn lisp để gán layer và dim cho hình trên được không !

Đầy mình gửi bạn lisp này,nó gán layer thep làm layer để vẽ hình chữ nhật

(defun c:hcn ()
(setq luubatdiem (getvar "osmode"))
(setvar "osmode" 0)
(command "undo" "begin")
(command "-layer" "m" "thep" "c" "1" "" "l" "" "" "")
(setq W (getreal "\n nhap chieu rong(mm):")
H (getreal "\n nhap chieu cao(mm):")
P1 (getpoint "\n chon diem chuan:")
P2 (polar P1 0.00 W)
P3 (polar P2 (/ pi 2) H)
P4 (polar P3 pi W)
p5 (polar p4 (/ pi 2) 21)
p6 (polar p5 (* pi 1.75) 66)
p7 (polar p4 pi 21)
p8 (polar p7 (* pi 1.75) 66)
)
(command "pline" p8 p7 p4 p3 p2 p1 p4 p5 p6 "")
(setvar "osmode" luubatdiem)
(command "undo" "end")
(princ)
)


  • 2

#6 cd2k44

cd2k44

    Edu level: li5

  • Members
  • PipPipPipPipPipPipPip
  • 648 Bài viết
Điểm đánh giá: 121 (tàm tạm)

Đã gửi 18 September 2011 - 09:14 AM

Cảm ơn bạn nhưng có 1 lỗi là khi vẽ 1 hình chữ nhật kích thước bất kỳ thì ra đúng như yêu cầu,hình thứ n cùng kích thước với hình đầu thì lisp vẫn thực hiện đúng nhưng khi vẽ hình chữ nhật kích thước khác thì bị lỗi vẽ hcn không đúng yêu cầu.Mong bạn và các bác xem giúp.Thanks.

Cái này theo mình do bạn vẽ hình chữ nhật trước rồi vẽ tiếp các hình chữ nhật khác,trong lisp không tắt chế độ bắt điềm nên bị lỗi thôi.Bài viết dưới mình đã chỉnh lại rồi đó bạn
  • 0

#7 mr.nguyen08ql

mr.nguyen08ql

    biết lệnh text

  • Members
  • PipPipPipPip
  • 279 Bài viết
Điểm đánh giá: 59 (tàm tạm)

Đã gửi 18 September 2011 - 09:17 AM

Đầy mình gửi bạn lisp này,nó gán layer thep làm layer để vẽ hình chữ nhật


(defun c:hcn ()
(setq luubatdiem (getvar "osmode"))
(setvar "osmode" 0)
(command "undo" "begin")
(command "-layer" "m" "thep" "c" "1" "" "l" "" "" "")
(setq W (getreal "\n nhap chieu rong(mm):")
H (getreal "\n nhap chieu cao(mm):")
P1 (getpoint "\n chon diem chuan:")
P2 (polar P1 0.00 W)
P3 (polar P2 (/ pi 2) H)
P4 (polar P3 pi W)
p5 (polar p4 (/ pi 2) 21)
p6 (polar p5 (* pi 1.75) 66)
p7 (polar p4 pi 21)
p8 (polar p7 (* pi 1.75) 66)
)
(command "pline" p8 p7 p4 p3 p2 p1 p4 p5 p6 "")
(setvar "osmode" luubatdiem)
(command "undo" "end")
(princ)
)

khi mình tạo ra 3 layer thì mình muốn gán 1 trong 1 la đó vào đối tượng thì làm thế nào đc ahm, hihihi Dã tâm của em là đang tập gán layer và Dim cho đối tượng.
  • 0

#8 cd2k44

cd2k44

    Edu level: li5

  • Members
  • PipPipPipPipPipPipPip
  • 648 Bài viết
Điểm đánh giá: 121 (tàm tạm)

Đã gửi 18 September 2011 - 09:22 AM

Bạn muốn thê hiện các dim như thế nào chứ bạn.Như bản vẽ mẫu hay sao.Nếu vậy thì loằng ngoằng trong bản vẽ quá,không ứng dụng thực tế lắm
  • 0

#9 mr.nguyen08ql

mr.nguyen08ql

    biết lệnh text

  • Members
  • PipPipPipPip
  • 279 Bài viết
Điểm đánh giá: 59 (tàm tạm)

Đã gửi 18 September 2011 - 09:38 AM

Bạn muốn thê hiện các dim như thế nào chứ bạn.Như bản vẽ mẫu hay sao.Nếu vậy thì loằng ngoằng trong bản vẽ quá,không ứng dụng thực tế lắm

không cần phức tập quá đâu bác, chỉ cần đo dim ra hiện số là đc, rồi tạo màu Text cho dim, kiểu đường.. thế thui, với cái ý trên nữa đó là nếu có nhiều layer thì mình muốn gán đối tượng cho 1 layer nào đó thì làm sao đc ! thanh
  • 0

#10 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5685 Bài viết
Điểm đánh giá: 2606 (tuyệt vời)

Đã gửi 18 September 2011 - 09:52 AM

Sử dụng Command dim với 3 đối số tiếp theo là điểm đầu, điểm cuối, điểm gióng dim thôi bạn :)
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#11 mr.nguyen08ql

mr.nguyen08ql

    biết lệnh text

  • Members
  • PipPipPipPip
  • 279 Bài viết
Điểm đánh giá: 59 (tàm tạm)

Đã gửi 18 September 2011 - 10:06 AM

Sử dụng Command dim với 3 đối số tiếp theo là điểm đầu, điểm cuối, điểm gióng dim thôi bạn :)

Nói không phức tạp nhưng nó cũng cần : kiểu đường gióng, kiểu text, màu text.. và quan trọng là khi Dim mình thường phải chỉnh tỷ lệ về chiều cao text.. để hợp lý. Anh ket làm cho em một đoạn mẫu Lisp : vẻ 1 đoạn thẳng ra gán nó co layer tạo ra, đo dim hoàn chỉnh đc không? Thank
  • 0

#12 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5685 Bài viết
Điểm đánh giá: 2606 (tuyệt vời)

Đã gửi 18 September 2011 - 10:12 AM

không cần phức tập quá đâu bác, chỉ cần đo dim ra hiện số là đc, rồi tạo màu Text cho dim, kiểu đường.. thế thui, với cái ý trên nữa đó là nếu có nhiều layer thì mình muốn gán đối tượng cho 1 layer nào đó thì làm sao đc ! thanh

Nói không phức tạp nhưng nó cũng cần : kiểu đường gióng, kiểu text, màu text.. và quan trọng là khi Dim mình thường phải chỉnh tỷ lệ về chiều cao text.. để hợp lý. Anh ket làm cho em một đoạn mẫu Lisp : vẻ 1 đoạn thẳng ra gán nó co layer tạo ra, đo dim hoàn chỉnh đc không? Thank

mr sang topic Hướng dẫn lập trình lisp nhé
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#13 mr.nguyen08ql

mr.nguyen08ql

    biết lệnh text

  • Members
  • PipPipPipPip
  • 279 Bài viết
Điểm đánh giá: 59 (tàm tạm)

Đã gửi 18 September 2011 - 10:19 AM

mr sang topic Hướng dẫn lập trình lisp nhé

Ok. thank anh! tại ban đầu em đang muốn hỏi từ cái yêu cầu của bác bên trên nên tiện hỏi luôn !
  • 0

#14 tungbatu

tungbatu

    biết zoom

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

Đã gửi 18 September 2011 - 10:36 AM

bạn nào có biết ấn vào đâu trên diễn đàn để gửi bài không chỉ mình với ,vào phần hướng dẫn nó không hiện lên ảnh mò mãi cũng không thấy đâu, thông cảm nha mình cũng ít lên diễn đàn
  • 0

#15 790312

790312

    biết lệnh fillet

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

Đã gửi 18 September 2011 - 11:11 AM

Chắc ý chủ thớt vẽ cốt đai đây.
Mình thêm dòng :
(command "fillet" "r" "90")
(command "fillet" "p" "l")

dưới dòng
(command "pline" p8 p7 p4 p3 p2 p1 p4 p5 p6 "")
Sao nó chỉ bo được 3 góc,nhờ các bác xem giúp bo luôn góc kia giống file đính kèm giùm mình.
http://www.cadviet.c...drawing1_89.dwg
Thanks.
  • 1

#16 quan08

quan08

    biết vẽ pline

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

Đã gửi 18 September 2011 - 03:16 PM

Cảm ơn các bác đã giúp đỡ e.Cám ơn diễn đàn rất nhiều.
  • 0

#17 790312

790312

    biết lệnh fillet

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

Đã gửi 18 September 2011 - 09:31 PM

Chắc ý chủ thớt vẽ cốt đai đây.
Mình thêm dòng :
(command "fillet" "r" "90")
(command "fillet" "p" "l")
dưới dòng
(command "pline" p8 p7 p4 p3 p2 p1 p4 p5 p6 "")
Sao nó chỉ bo được 3 góc,nhờ các bác xem giúp bo luôn góc kia giống file đính kèm giùm mình.
http://www.cadviet.c...drawing1_89.dwg
Thanks.

Không ai giúp được mình sao?Mong nhận được sự giúp đỡ của các bác!!!!!!!!!
  • 0

#18 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 19 September 2011 - 10:00 AM

bạn kiểm ra lại bán kính R có quá lớn không?
  • 1

#19 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1359 (rất tốt)

Đã gửi 19 September 2011 - 10:21 AM

Chắc ý chủ thớt vẽ cốt đai đây.
Mình thêm dòng :
(command "fillet" "r" "90")
(command "fillet" "p" "l")
dưới dòng
(command "pline" p8 p7 p4 p3 p2 p1 p4 p5 p6 "")
Sao nó chỉ bo được 3 góc,nhờ các bác xem giúp bo luôn góc kia giống file đính kèm giùm mình.
http://www.cadviet.c...drawing1_89.dwg
Thanks.

(command "pline" p8 p7 p3 p2 p1 p5 p6 "")
Bỏ p4 đi thì nó bo ầm ầm cho bạn.
Lý do vìcó điểm p4 nên bán kính bo ị vượt phân đoạn nên ko bo được. Thực chất bạn ko cần xác định p4 làm cái giề
  • 1

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#20 lp_hai

lp_hai

    biết lệnh measure

  • Members
  • PipPipPipPipPipPip
  • 456 Bài viết
Điểm đánh giá: 202 (khá)

Đã gửi 19 September 2011 - 10:47 AM

bạn kiểm ra lại bán kính R có quá lớn không?

đúng vậy, chiều dài đoạn thép móc có 66 mà R=90 thì làm sao bo??
Mình cũng xin hỏi chủ Topic là bạn vẽ hình thép đai này ứng dụng thực tế hay để học hỏi lisp? Bởi cái R90 là quá lớn, ai mà bẻ thép như vậy.
Bạn có thể nội suy ra chính xác các điểm tại vị trí móc thép rồi vẽ PL (có thể chứa arc)
  • 0
Hình đã gửi