Đến nội dung


Hình ảnh
- - - - -

Load Lisp Cad Của Lisp Cad


  • Please log in to reply
18 replies to this topic

#1 Tào Tháo

Tào Tháo

    biết zoom

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

Đã gửi 23 November 2015 - 12:26 PM

tình hình là e đang tìm hiểu về lisp cad, mong mọi người giúp đỡ với !!!!!!. e đang thử viết 1 lisp mà tới lệnh đó nó phải gọi 1 lisp khác mà e có trước nhưng nó lại ko thể goi lisp đó ra được

vd: (command "dimlinear" pcc32 pcc36 "t" "" kt9 "");1 (command "kk" pcc1 "");2  (command "dimlinear" pk4 pk3 "t" "" kt3 ""); 3 /trong đó kk là lệnh của lisp e đã có trước, câu lệnh số 2 ko thể thực hiện đươc và nó chạy qua câu số 3 luôn


  • 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 23 November 2015 - 12:52 PM

 (command "c:kk" pcc1 "")


  • 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


#3 anti lazy

anti lazy

    biết lệnh erase

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

Đã gửi 23 November 2015 - 01:15 PM

Không thấy mặt mũi hàm kk, biến pcc1 là gì thì bó tay


  • 1

#4 Tào Tháo

Tào Tháo

    biết zoom

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

Đã gửi 23 November 2015 - 02:21 PM

 (command "c:kk" pcc1 "")

sao vẩn ko đc anh ơi a còn cách nào khác ko ??? hjzhjz


  • 0

#5 Tào Tháo

Tào Tháo

    biết zoom

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

Đã gửi 23 November 2015 - 02:32 PM

Không thấy mặt mũi hàm kk, biến pcc1 là gì thì bó tay

kk la để gọi 1 lisp bất kỳ ra,biến pcc1 la 1 tọa độ mình đã xđịnh trước thôi

mà lisp kk của mình thì ko cần xđịnh trước tọa độ


  • 0

#6 Tr.CongSon

Tr.CongSon

    biết lệnh array

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

Đã gửi 23 November 2015 - 04:01 PM

kk la để gọi 1 lisp bất kỳ ra,biến pcc1 la 1 tọa độ mình đã xđịnh trước thôi

mà lisp kk của mình thì ko cần xđịnh trước tọa độ

 

Post đoạn code của bạn lên mọi người xem mặt mũi thế nào mới giúp được bạn à :V

Nhớ kèm đoạn code kk gì đó nữa nhé ^^


  • -1

#7 Tào Tháo

Tào Tháo

    biết zoom

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

Đã gửi 23 November 2015 - 04:37 PM

 (command "c:kk" pcc1 "")

Command: c:kk Unknown command "C:KK".
 Press F1 for help.
\ Command: \
Command: kk \
Unknown command "KK".
 Press F1 for help.Command: nil / cad báo thế đó a ơi

  • 0

#8 Tào Tháo

Tào Tháo

    biết zoom

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

Đã gửi 23 November 2015 - 06:30 PM

Post đoạn code của bạn lên mọi người xem mặt mũi thế nào mới giúp được bạn à :V

Nhớ kèm đoạn code kk gì đó nữa nhé ^^

(command "-layer" "m" "_mss.bao" "")
  (setq ss (ssadd))                    
  (command "line" pstart t1 "")         
  (ssadd (entlast) ss)                 
  (command "line" pstart t2 "")
  (command "in" "")
"in" là lisp in nhiều bản vẽ, ở mình muốn vẽ ra 1 hình chữ nhật rồi dùng lệnh "in" để in luôn bản vẽ

  • 0

#9 Tr.CongSon

Tr.CongSon

    biết lệnh array

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

Đã gửi 23 November 2015 - 07:19 PM

 

(command "-layer" "m" "_mss.bao" "")
  (setq ss (ssadd))                    
  (command "line" pstart t1 "")         
  (ssadd (entlast) ss)                 
  (command "line" pstart t2 "")
  (command "in" "")
"in" là lisp in nhiều bản vẽ, ở mình muốn vẽ ra 1 hình chữ nhật rồi dùng lệnh "in" để in luôn bản vẽ

 

 

Nếu bạn đang học Lisp thì mình khuyên bạn nên viết hàm con cho tiện sử dụng và dùng được ở nhiều đoạn lísp khác nhau ^^

ví dụ  của bạn: Viết hàm con (defun IN (tham số / biến cục bộ) nội_dung_hàm)

Khi sử dụng thì chỉ cần code là: (IN tham số)

 

Đoạn code của bạn thì muốn vẽ HCN rồi in theo khung HCN vừa vẽ thì bạn chỉ cần COde:

(setq p1 (getpoint)
 p2 (getcorner p1))
(command "_.rectangle" p1 p2)
(In (entlast))
 
Trong đó hàm IN có đối số là ename của HCN ^^
 
P/s: Sao mình lại bị trừ điểm ở bài trước vậy nhỉ :(

  • 1

#10 Tào Tháo

Tào Tháo

    biết zoom

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

Đã gửi 23 November 2015 - 09:16 PM

 

Nếu bạn đang học Lisp thì mình khuyên bạn nên viết hàm con cho tiện sử dụng và dùng được ở nhiều đoạn lísp khác nhau ^^

ví dụ  của bạn: Viết hàm con (defun IN (tham số / biến cục bộ) nội_dung_hàm)

Khi sử dụng thì chỉ cần code là: (IN tham số)

 

Đoạn code của bạn thì muốn vẽ HCN rồi in theo khung HCN vừa vẽ thì bạn chỉ cần COde:

(setq p1 (getpoint)
 p2 (getcorner p1))
(command "_.rectangle" p1 p2)
(In (entlast))
 
Trong đó hàm IN có đối số là ename của HCN ^^
 
P/s: Sao mình lại bị trừ điểm ở bài trước vậy nhỉ :(

 

cảm ơn bạn rất nhiều về đoạn code trên nhưng mình vẫn muốn gọi lisp đó ra luôn, mình đã tìm và thử nhiều cách rồi mà ko đc hjzhjz


  • 0

#11 ndtnv

ndtnv

    biết lệnh minsert

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

Đã gửi 26 November 2015 - 03:59 PM

Bạn xem hàm in cần các tham số nào để gọi cho phù hợp.

Sau đây là 2 VD:

(defun k1 ()
(command "point"))
(defun k2 (p)
(command "point" p))

Hàm k1 không có tham số nên khi gọi:

(k1)

c/trình vẽ 1 điểm do user pick

Hàm k2 có tham số là 1 point, khi gọi

(k2 '(0 0 0))

c/trình vẽ 1 điểm tại (0 0 0)

Nếu gọi sai kiểu hoặc số lượng tham số, sẽ báo lỗi:

(k2 "a")

(k2 '(0 0 0) '(1 0 0))

 

Nếu chưa làm được, hãy đưa lisp in của bạn lên


  • 0

#12 Tào Tháo

Tào Tháo

    biết zoom

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

Đã gửi 26 November 2015 - 05:41 PM

Bạn xem hàm in cần các tham số nào để gọi cho phù hợp.

Sau đây là 2 VD:

(defun k1 ()
(command "point"))
(defun k2 (p)
(command "point" p))

Hàm k1 không có tham số nên khi gọi:

(k1)

c/trình vẽ 1 điểm do user pick

Hàm k2 có tham số là 1 point, khi gọi

(k2 '(0 0 0))

c/trình vẽ 1 điểm tại (0 0 0)

Nếu gọi sai kiểu hoặc số lượng tham số, sẽ báo lỗi:

(k2 "a")

(k2 '(0 0 0) '(1 0 0))

 

Nếu chưa làm được, hãy đưa lisp in của bạn lên

http://www.cadviet.c...plmp1072017.rar

hình như bạn hiểu sai ý mình rồi

ở đay khi mình đang viết 1 lisp mà tới đó thay vì mình gọi lệnh 

(command "circle" v1 5 "") ; để vẽ 1 hình tròn có bán kính = 5 tại điểm v1

thì mình lại muốn gọi 1 lisp khác cụ thể là lisp (in bản vẽ) ở trên hoặc 1 lisp bất kỳ nào khác

(command "in" "")

nhưng cad ko hiểu bỏ qua lệnh (command "in" "") và thực hiện lệnh tiếp theo mà lisp này mình đã " ap " vào trước đó rồi

tóm lại mình chỉ muốn gọi đc 1 lisp khác lên bằng cách viết 1 lệnh nào đó của lisp

thanks bạn


  • 0

#13 ndtnv

ndtnv

    biết lệnh minsert

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

Đã gửi 27 November 2015 - 07:42 AM

Tôi không hiểu sai, nhưng do từ đầu bạn không gửi lisp của bạn dùng.

Trên đó là là 2 VD, trong lisp khai báo là:

(defun k1 ..) thì khi gọi là (k1)

Trong vlx của bạn gửi, là file đã biên dịch, khai báo là

(defun C:in ..) thì khi gọi là (C:in)

Nhưng lệnh này khi chạy dùng dialog nên không giao tham số kiểu

(command "kk" pcc1 "") được, mà phải biết trong đó c/trình gọi hàm in của cad như thế nào

Tìm cách gọi hàm in trong vlx đó (nếu có) có thể còn lâu hơn tự viết hàm in riêng.

 

PS: Rất nhiều mem mới hay hỏi nhưng không đưa đầy đủ các dữ kiện kiểu này.

Tôi lấy VD 1 người hỏi muốn vào internet phải làm thế nào? (qua điện thoại)

Vì ở VN đa số người dùng Win nên sẽ trả lời là Bấm vào biểu tượng Internet Explorer.

Nếu người hỏi không biết tiếng Anh thì phải tốn thời gian mô tả icon hoặc đánh vần Internet Explorer.

Tuy nhiên điều này chưa chắc làm được vì có thể trên máy đó dùng trình duyệt khác như Firefox hoặc Chrome ... mà icon không có trên desktop hoặc taskbar. 

Còn nếu người hỏi dùng HDH Mac mà người được hỏi chưa dùng máy Mac thì xem như tịt.

Tuy nhiên trong truờng hợp này, nếu người hỏi nói là đang dùng máy Mac, người được hỏi có thể gg cho câu trả lời là Safari

Tương tự câu hỏi của bạn, không đưa file lên, lệnh in thì hỏi kk nên tôi cũng đã nghĩ là hàm kk do bạn viết.


  • 0

#14 dinhthucr

dinhthucr

    Chưa sử dụng CAD

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

Đã gửi 27 November 2015 - 09:40 AM

Minh cũng đang bị lỗi như vầy nhưng làm như các bác cmt vẫn lỗi bác nào có hướng dẫn chi tiết hơn không


  • 0

#15 Tào Tháo

Tào Tháo

    biết zoom

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

Đã gửi 02 December 2015 - 09:35 PM

Tôi không hiểu sai, nhưng do từ đầu bạn không gửi lisp của bạn dùng.

Trên đó là là 2 VD, trong lisp khai báo là:

(defun k1 ..) thì khi gọi là (k1)

Trong vlx của bạn gửi, là file đã biên dịch, khai báo là

(defun C:in ..) thì khi gọi là (C:in)

Nhưng lệnh này khi chạy dùng dialog nên không giao tham số kiểu

(command "kk" pcc1 "") được, mà phải biết trong đó c/trình gọi hàm in của cad như thế nào

Tìm cách gọi hàm in trong vlx đó (nếu có) có thể còn lâu hơn tự viết hàm in riêng.

 

PS: Rất nhiều mem mới hay hỏi nhưng không đưa đầy đủ các dữ kiện kiểu này.

Tôi lấy VD 1 người hỏi muốn vào internet phải làm thế nào? (qua điện thoại)

Vì ở VN đa số người dùng Win nên sẽ trả lời là Bấm vào biểu tượng Internet Explorer.

Nếu người hỏi không biết tiếng Anh thì phải tốn thời gian mô tả icon hoặc đánh vần Internet Explorer.

Tuy nhiên điều này chưa chắc làm được vì có thể trên máy đó dùng trình duyệt khác như Firefox hoặc Chrome ... mà icon không có trên desktop hoặc taskbar. 

Còn nếu người hỏi dùng HDH Mac mà người được hỏi chưa dùng máy Mac thì xem như tịt.

Tuy nhiên trong truờng hợp này, nếu người hỏi nói là đang dùng máy Mac, người được hỏi có thể gg cho câu trả lời là Safari

Tương tự câu hỏi của bạn, không đưa file lên, lệnh in thì hỏi kk nên tôi cũng đã nghĩ là hàm kk do bạn viết.

ok cảm ơn bác đã chỉ bảo, e mới tham gia nên chưa có kinh nghiệm đăng bài trên diễn đàn mong bác bỏ qua, e đã thử theo cách của bác mà cũng ko đc, mong bác chỉ bảo thêm về vấn đề này với hjzhjz


  • 0

#16 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 03 December 2015 - 08:08 AM

Cần giải thích thì mọi người giải thích cả rồi. Tôi làm cái ví dụ chạy 1 lệnh lisp bằng một lệnh lisp khác đơn giản bạn xem có hiểu không chứ mọi người cũng ko biết thêm cái kiểu gì nửa. Bài viết bị ko hiển thị hết bạn nhấn vào trả lời để xem đủ nội dung nhé!

(defun c:lenhmot ()

(setq diemve (getpoint "Chon diem"))
(command ".circle" "_non" diemve 30)
(princ)
)
(defun c:lenhhai ()
(setq diemve (getpoint "Chon diem"))
(command ".circle" "_non" diemve 30)
(command ".change" "last" "" "p" "c" 10 "")
(princ)
)
(defun c:lenhba ()
(c:lenhmot)
(command ".change" "last" "" "p" "c" 10 "")
(c:lenhmot)
(princ)
)

  • 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


#17 Tào Tháo

Tào Tháo

    biết zoom

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

Đã gửi 05 December 2015 - 09:44 AM

 

Cần giải thích thì mọi người giải thích cả rồi. Tôi làm cái ví dụ chạy 1 lệnh lisp bằng một lệnh lisp khác đơn giản bạn xem có hiểu không chứ mọi người cũng ko biết thêm cái kiểu gì nửa. Bài viết bị ko hiển thị hết bạn nhấn vào trả lời để xem đủ nội dung nhé!

(defun c:lenhmot ()

(setq diemve (getpoint "Chon diem"))
(command ".circle" "_non" diemve 30)
(princ)
)
(defun c:lenhhai ()
(setq diemve (getpoint "Chon diem"))
(command ".circle" "_non" diemve 30)
(command ".change" "last" "" "p" "c" 10 "")
(princ)
)
(defun c:lenhba ()
(c:lenhmot)
(command ".change" "last" "" "p" "c" 10 "")
(c:lenhmot)
(princ)
)

 

ok e đã làm đc thanks a nhiều!!!

cho e hỏi thêm câu nữa nha a,

a chỉ e cách xác định toa độ trong 3d, cụ thể là 1 hình hộp chữ nhật, x,y,z là kích thước mình nhập vào đễ vẽ đc hình CN đó trong 3d cad nha a


  • 0

#18 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 05 December 2015 - 10:08 AM

Một điểm 3d xác định trong lisp như sau:

(list x y z)

Trong đó x y z là tọa độ tương ứng trục x y và z

Ví dụ lisp vẽ box kích thước x=1 y=2 và z=3 tại điểm chọn bằng lisp"

Bài viết bị ko hiển thị hết bạn nhấn vào trả lời để xem đủ nội dung nhé!

(defun c:lenhbon ()

(setq diemve (getpoint "Chon diem"))
(command "box" "_non" diemve "_non" (list (+ 1 (car diemve))(+ 2 (cadr diemve))(+ 3 (caddr diemve))) "")    
(princ)

)  


  • 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


#19 Tào Tháo

Tào Tháo

    biết zoom

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

Đã gửi 05 December 2015 - 10:47 AM

Một điểm 3d xác định trong lisp như sau:

(list x y z)

Trong đó x y z là tọa độ tương ứng trục x y và z

Ví dụ lisp vẽ box kích thước x=1 y=2 và z=3 tại điểm chọn bằng lisp"

Bài viết bị ko hiển thị hết bạn nhấn vào trả lời để xem đủ nội dung nhé!

(defun c:lenhbon ()

(setq diemve (getpoint "Chon diem"))
(command "box" "_non" diemve "_non" (list (+ 1 (car diemve))(+ 2 (cadr diemve))(+ 3 (caddr diemve))) "")    
(princ)

)  

thanks a nhiều


  • 0