Đến nội dung


Hình ảnh
- - - - -

Lỗi về lisp cửa đi


  • Please log in to reply
13 replies to this topic

#1 thanh1401

thanh1401

    biết pan

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

Đã gửi 08 July 2010 - 06:18 PM

Mình tìm lisp vẽ cửa đi ( 1cánh, 2cánh, 3cánh, 4cánh ) đã lâu, và cũng tìm đc nhiều lisp về nó nhưng không lisp nào sử dụng đc.
Đây là code, các bác xem dùm em cái, xem tại sao k dùng đc nhé :
+ Vẽ cửa đi 1 cánh :

(defun c:c1 (/ p1 p2 p3 p4 p5 daicua x y)
(setq osm (getvar "osmode"))
(setq p1 (getpoint "\nHay vao diem goc cua: ")

p2 (getpoint p1 "\nHay vao diem mut cua: ")
p3 (getpoint p1 "\nHay vao huong cua: ")
daicua (distance p1 p2)
x (car p1)
y (car (cdr p1))
x 25
y daicua
p4 (list x y)
p5 (list daicua 0)
)
(setvar "OSMODE" 0)
(if (l3d_khongthanghang p1 p2 p3)
(progn
(command ".UCS" "3" p1 p2 p3)
(command ".rectangle" "0,0" p4)
(command ".Arc" p5 "C" "0,0" p4)
(command ".UCS" "P")
)
(princ "\n3 diem nhap vao khong duoc thang hang")
)
(setvar "osmode" osm)
)


+ Cửa đi 2 cánh :

(defun c:c2 (/ p1 p2 p3 p4 p5 daicua x y)
(setq osm (getvar "osmode"))
(setq p1 (getpoint "\nHay vao diem goc cua: ")
p2 (getpoint p1 "\nHay vao diem mut cua: ")
p3 (getpoint p1 "\nHay vao huong cua: ")
daicua (/ (distance p1 p2) 2.0)
x (car p1)
y (car (cdr p1))
x 25
y daicua
p4 (list x y)
p5 (list daicua 0)
)
(setvar "OSMODE" 0)
(if (l3d_khongthanghang p1 p2 p3)
(progn
(command ".UCS" "3" p1 p2 p3)
(command ".rectangle" "0,0" p4)
(command ".Arc" p5 "C" "0,0" p4)
(command ".UCS" "P")

(command ".UCS" "3" p2 p1 p3)
(command ".rectangle" "0,0" p4)
(command ".Arc" p5 "C" "0,0" p4)
(command ".UCS" "P")

)

(princ "\n3 diem nhap vao khong duoc thang hang")
)
(setvar "osmode" osm)
)


+ Cửa đi 4 cánh :

(defun c:c4 (/ p1 p2 p3 p4 p5 daicua x y)
(setq osm (getvar "osmode"))
(setq p1 (getpoint "\nHay vao diem goc cua: ")
p2 (getpoint p1 "\nHay vao diem mut cua: ")
p3 (getpoint p1 "\nHay vao huong cua: ")
daicua (/ (distance p1 p2) 4.0)
x (car p1)
y (car (cdr p1))
x 25
y daicua
p4 (list x y)
p5 (list daicua 0)
)
(setvar "OSMODE" 0)
(if (l3d_khongthanghang p1 p2 p3)
(progn

(setq diem1 (diemgiua p1 (diemgiua p1 p2)))
(setq diem2 (diemgiua p1 p2))
(setq diem3 (diemgiua p2 (diemgiua p1 p2)))

(command ".UCS" "3" p1 p2 p3)
(command ".rectangle" "0,0" p4)
(command ".Arc" p5 "C" "0,0" p4)
(command ".UCS" "P")

(command ".UCS" "3" diem1 p2 p3)
(command ".rectangle" "0,0" p4)
(command ".Arc" p5 "C" "0,0" p4)
(command ".UCS" "P")

(command ".UCS" "3" p2 p1 p3)
(command ".rectangle" "0,0" p4)
(command ".Arc" p5 "C" "0,0" p4)
(command ".UCS" "P")

(command ".UCS" "3" diem3 p1 p3)
(command ".rectangle" "0,0" p4)
(command ".Arc" p5 "C" "0,0" p4)
(command ".UCS" "P")

)

(princ "\n3 diem nhap vao khong duoc thang hang")
)
(setvar "osmode" osm)
)


Khi mình sử dụng thì " Unknow command "XX" .Press F1 for help.". Ai có lisp về cửa đi thì cho mình xin với. Hoặc có thể xem giúp mình lisp trên bị sai ở đâu nhé. mình đang rất cần....thanks vì đã đọc bài của mình.À có thể lisp của các bác khác, vì thế nếu có thể thì cho mình xin kèm cả hướng dẫn sử dụng nhé. mình là Kiến năm2 thôi, vì thế còn non kinh nghiệm lắm.
  • 0

#2 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 08 July 2010 - 09:54 PM

Mình tìm lisp vẽ cửa đi ( 1cánh, 2cánh, 3cánh, 4cánh ) đã lâu, và cũng tìm đc nhiều lisp về nó nhưng không lisp nào sử dụng đc.
Đây là code, các bác xem dùm em cái, xem tại sao k dùng đc nhé :
....................
(if (l3d_khongthanghang p1 p2 p3)
...........
Khi mình sử dụng thì " Unknow command "XX" .Press F1 for help.". Ai có lisp về cửa đi thì cho mình xin với. Hoặc có thể xem giúp mình lisp trên bị sai ở đâu nhé. mình đang rất cần....thanks vì đã đọc bài của mình.À có thể lisp của các bác khác, vì thế nếu có thể thì cho mình xin kèm cả hướng dẫn sử dụng nhé. mình là Kiến năm2 thôi, vì thế còn non kinh nghiệm lắm.

Bạn sưu tầm thiếu đoạn kiểm tra tính thẳng hàng của 3 điểm nên hắn ko chạy được là đúng rồi.
  • 0

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


#3 thanh1401

thanh1401

    biết pan

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

Đã gửi 09 July 2010 - 06:57 AM

Vậy hướng dẫn mình cách sửa đi. Mình đang cần gấp mà. hoặc cho mình lisp đó luôn đc k?
  • 0

#4 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 09 July 2010 - 08:27 AM

Vậy hướng dẫn mình cách sửa đi. Mình đang cần gấp mà. hoặc cho mình lisp đó luôn đc k?

Cho thì Tue_NV không có. Nhưng Tue_NV viết cho bạn.
Bạn chép code này vào và chạy với Lisp của bạn
Hàm này Tue_NV viết cho bạn Sony2007, nay có dịp ứng dụng rồi :D
Hàm l3d_khongthanghang trả về T (true) nếu 3 điểm thẳng hàng; trả về nil nếu 3 điểm không thẳng hàng

(defun l3d_khongthanghang (p p1 p2 / dis)
(setq p1 (trans p1 0 1) p2 (trans p2 0 1)
dis (distance p1 p2)
)

(if (or (= (+ (distance p1 p) (distance p p2)) dis)
(= (+ (distance p p1) dis) (distance p p2))
(= (+ (distance p2 p) dis) (distance p p1))
)
T nil
)
(princ)
)

và lệnh vẽ cửa đi 4 cánh : c4 thiếu hàm diemgiua
Tue_NV bổ sung cho bạn luôn

(defun diemgiua(p11 p22)
(list (/ (+ (car p11) (car p22)) 2)
(/ (+ (cadr p11) (cadr p22)) 2)
0.0)
)

  • 0

#5 thanh1401

thanh1401

    biết pan

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

Đã gửi 09 July 2010 - 09:23 AM

Bạn chép code này vào và chạy với Lisp của bạn
Hàm này Tue_NV viết cho bạn Sony2007, nay có dịp ứng dụng rồi :D
Hàm l3d_khongthanghang trả về T (true) nếu 3 điểm thẳng hàng; trả về nil nếu 3 điểm không thẳng hàng
[/color]


Mình không hiểu lắm bạn à !. Chép code đó vào trực tiếp code lisp của mình hay thay thế 1 đoạn code nào đó của mình ?.Hay load song song lisp của mình và lisp của bạn vào cad ?.Mình k rành về ngôn ngữ Lisp nên bạn hướng dẫn vậy mình cũng k biết.
Dù sao cũng cảm ơn bạn vì đã giúp đỡ
Nếu ai có thể giúp mình 1 lisp vẽ cửa đi "hoàn thiện" thì tốt quá
  • 0

#6 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 09 July 2010 - 09:34 AM

Mình không hiểu lắm bạn à !. Chép code đó vào trực tiếp code lisp của mình hay thay thế 1 đoạn code nào đó của mình ?.Hay load song song lisp của mình và lisp của bạn vào cad ?.Mình k rành về ngôn ngữ Lisp nên bạn hướng dẫn vậy mình cũng k biết.
Dù sao cũng cảm ơn bạn vì đã giúp đỡ
Nếu ai có thể giúp mình 1 lisp vẽ cửa đi "hoàn thiện" thì tốt quá

Bạn hãy chép 2 đoạn code của Tue_NV ở trên và dán (paste) vào cuối code của bạn -> Tức là thêm vào đó. Load Lisp và thực hiện lệnh. Chúc thành công
  • 2

#7 thanh1401

thanh1401

    biết pan

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

Đã gửi 09 July 2010 - 09:49 AM

Bạn hãy chép 2 đoạn code của Tue_NV ở trên và dán (paste) vào cuối code của bạn -> Tức là thêm vào đó. Load Lisp và thực hiện lệnh. Chúc thành công

Đây là đoạn code mình làm theo bạn (tức là chèn code của bạn vào dưới đoạn code của mình) :

(defun c:c1 (/ p1 p2 p3 p4 p5 daicua x y)
(setq osm (getvar "osmode"))
(setq p1 (getpoint "\nHay vao diem goc cua: ")

p2 (getpoint p1 "\nHay vao diem mut cua: ")
p3 (getpoint p1 "\nHay vao huong cua: ")
daicua (distance p1 p2)
x (car p1)
y (car (cdr p1))
x 25
y daicua
p4 (list x y)
p5 (list daicua 0)
)
(setvar "OSMODE" 0)
(if (l3d_khongthanghang p1 p2 p3)
(progn
(command ".UCS" "3" p1 p2 p3)
(command ".rectangle" "0,0" p4)
(command ".Arc" p5 "C" "0,0" p4)
(command ".UCS" "P")
)
(princ "\n3 diem nhap vao khong duoc thang hang")
)
(setvar "osmode" osm)
)

(defun l3d_khongthanghang (p p1 p2 / dis)
(setq p1 (trans p1 0 1) p2 (trans p2 0 1)
dis (distance p1 p2)
)

(if (or (= (+ (distance p1 p) (distance p p2)) dis)
(= (+ (distance p p1) dis) (distance p p2))
(= (+ (distance p2 p) dis) (distance p p1))
)
T nil
)
(princ)
)


Nhưng khi thực hiện lệnh "C1" thì vẫn là "Unknow comand....".
chú ý: Mình đã load rồi :
Hình đã gửi
Chỉ giúp mình xem mình sai ở đâu nhé....
  • 0

#8 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 10 July 2010 - 08:11 AM

Đây là đoạn code mình làm theo bạn (tức là chèn code của bạn vào dưới đoạn code của mình) :
Nhưng khi thực hiện lệnh "C1" thì vẫn là "Unknow comand....".
chú ý: Mình đã load rồi :
Chỉ giúp mình xem mình sai ở đâu nhé....

Bạn thử apload và sử dụng file Lisp này :
File của bạn đây :
http://www.cadviet.c...files/2/cua.lsp
  • 2

#9 thanh1401

thanh1401

    biết pan

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

Đã gửi 10 July 2010 - 11:41 AM

Bạn thử apload và sử dụng file Lisp này :
File của bạn đây :
http://www.cadviet.c...files/2/cua.lsp


Bạn thử chưa vậy ? không hiểu sao vẫn k đc. các lisp khác t vẫn sử dụng bình thường. k hiểu sao cái lisp này lại k đc. hay tại cad t hỏng rồi k biết...
  • 0

#10 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 10 July 2010 - 11:44 AM

Bạn thử chưa vậy ? không hiểu sao vẫn k đc. các lisp khác t vẫn sử dụng bình thường. k hiểu sao cái lisp này lại k đc. hay tại cad t hỏng rồi k biết...

Tr­ước khi post bài thì Tue_NV đã test cả rồi. Không hiểu bạn bị lỗi gì nữa?????
Khi chạy Lisp -> thì hiện ra gì vậy bạn?
  • 1

#11 thanh1401

thanh1401

    biết pan

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

Đã gửi 12 July 2010 - 11:46 AM

Tr­ước khi post bài thì Tue_NV đã test cả rồi. Không hiểu bạn bị lỗi gì nữa?????
Khi chạy Lisp -> thì hiện ra gì vậy bạn?


Khi thực hiện lệnh " C1" thì nó báo lỗi "Unknow command.." như sai lệnh thôi. cũng k rõ nữa. để mình cài lại cad xem sao. hix
  • 0

#12 leanhlong_pro

leanhlong_pro

    biết pan

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

Đã gửi 12 October 2010 - 07:58 AM

Khi thực hiện lệnh " C1" thì nó báo lỗi "Unknow command.." như sai lệnh thôi. cũng k rõ nữa. để mình cài lại cad xem sao. hix



em cũng đã dùng thử cái lisp của anh tue_nv .lisp dùng rất tốt, vậy mà bác lại ko dùng đuợc.lạ thật đấy, chắc cad của bác lỗi rồi.anh TUE_ne ơi, cái lisp dùng tốt rồi, nhưng mà cái khung cửa nhìn nó đơn giản quá, em muốn nó giống như kiểu cửa trong thư viện, vậy có cách nào để giải quyết không anh. thank a
  • 0

#13 nghau90

nghau90

    biết vẽ circle

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

Đã gửi 03 October 2014 - 09:22 AM

e dùng lisp này ok. nhưng mỗi lần dùng lệnh là bị tắt hết bắt điểm. lại load lại từ đầu


  • 0

#14 Oohlala

Oohlala

    biết zoom

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

Đã gửi 20 May 2015 - 05:25 PM

Bạn hãy chép 2 đoạn code của Tue_NV ở trên và dán (paste) vào cuối code của bạn -> Tức là thêm vào đó. Load Lisp và thực hiện lệnh. Chúc thành công

bạn có thể chỉnh sửa lisp này để nó tạo ra cửa có khuôn và ở dạng block như trong thư viện ko


  • 0