Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
Đăng nhập để thực hiện theo  
thanh1401

Lỗi về lisp cửa đi

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

thanh1401    0

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.

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
duy782006    1.374
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.

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
Tue_NV    3.841
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)
)

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
thanh1401    0
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á

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
Tue_NV    3.841
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

  • Vote tăng 2

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
thanh1401    0
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 :

69371397.jpg

Chỉ giúp mình xem mình sai ở đâu nhé....

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
Tue_NV    3.841
Đâ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.com/upfiles/2/cua.lsp

  • Vote tăng 2

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
thanh1401    0
Bạn thử apload và sử dụng file Lisp này :

File của bạn đây :

http://www.cadviet.com/upfiles/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...

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
Tue_NV    3.841
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?

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

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

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
Oohlala    2

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

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

Đăng nhập để thực hiện theo  

×