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

[Hỏi] Cùng nhau học LISP

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

Bạn sửa 2 dòng sau:

Dòng 1

(if (/= "" (setq s (getstring "\nTen diem :" )))

Thành

(if (and (/= "" (setq s (getstring "\nTen diem :" ))) (/= "" (setq cd (getreal "\nCao do: "))))

Và dòng 2

 

(write-line (strcat s "\t" (rtos (car pt) 2 3) "\t" (rtos (cadr pt) 2 3)) f)

Thành

(write-line (strcat s "\t" (rtos (car pt) 2 3) "\t" (rtos (cadr pt) 2 3) "\t" (rtos cd 2 3)) f)

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

Bác Hải giải thích các hàm này nha: (setq p7 (vlax-curve-getEndPoint arc2))

(command "Pline" (nth 1(acet-geom-intersectwith arc2 d1 3)) "a" "S"

p7 (nth 0(acet-geom-intersectwith arc2 d2 3)) "L" p3 "a" "s" p6 p2 "l" "c"

). Mình chưa hiểu lắm

 

1). (vlax-curve-getEndPoint arc2) : lấy điểm cuối của đường cong arc2

2). (acet-geom-intersectwith arc2 d1 3) : lấy danh sách các giao điểm của đường arc2 và đường d1. Số 3 là xét đến cả việc kéo dài cả 2 đường arc2 và d1 khi tìm điểm giao.

Còn lại thì chắc là dễ với bạn rồi.

Thân thương!

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

Bạn sửa 2 dòng sau:

Dòng 1

(if (/= "" (setq s (getstring "\nTen diem :" )))

Thành

(if (and (/= "" (setq s (getstring "\nTen diem :" ))) (/= "" (setq cd (getreal "\nCao do: "))))

Và dòng 2

 

(write-line (strcat s "\t" (rtos (car pt) 2 3) "\t" (rtos (cadr pt) 2 3)) f)

Thành

(write-line (strcat s "\t" (rtos (car pt) 2 3) "\t" (rtos (cadr pt) 2 3) "\t" (rtos cd 2 3)) f)

xin chân thành cảm ơn, niếu bạn ở Nha Trang thì trưa đi cà phê với mình 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

 

1). (vlax-curve-getEndPoint arc2) : lấy điểm cuối của đường cong arc2

2). (acet-geom-intersectwith arc2 d1 3) : lấy danh sách các giao điểm của đường arc2 và đường d1. Số 3 là xét đến cả việc kéo dài cả 2 đường arc2 và d1 khi tìm điểm giao.

Còn lại thì chắc là dễ với bạn rồi.

Thân thương!

Thanks kiu bác HA. Những lệnh này nằm trong tài liệu nào vậy bạn? Bạn có thể gởi cho mình xem thêm nha.

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

xin chân thành cảm ơn, niếu bạn ở Nha Trang thì trưa đi cà phê với mình nhé

 

Nhấn "Like this" thay cà phê cũng được, ngộ nhỡ mình ở NT và muốn uống bia thì sao?

  • 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

P/s mọi người : do có nhiều câu hỏi trong 1 topic, mình hợp nhất chủ đề bạn huynhphuongdesigner lập với chủ đề cùng nhau học lisp để 4room đỡ rối.

Thực ra diễn đàn đang có 3 topic dành cho việc hỏi về các chủ đề lisp, mức độ có khác nhau đôi chút (Hỏi về lisp (giải thuật) - Hướng dẫn lập trình lisp (Tut) - Cùng nhau học Lisp (Begin)..)

- Với các topic cần độc lập, các bạn hãy để tiền tố [Hỏi] đằng trước tiêu đề, và yêu cầu những người khác không bàn đến các vấn đề khác ngoài topic, cũng như hỏi câu hỏi khác trong topic của người khác (nếu không liên quan), như bạn trinhngoctri ở trên.

Mong mọi người thông cảm.

Cảm ơn mọi người :)

  • 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

Bia thì mình không biết uống, bác sĩ bảo thế, cái dạ dày của mình không thích 45 độ, khổ thế đấy,

sao bạn giỏi thế mới hỏi đã biết ngay mình mo hết 1 buổi chiều hôm qua mà không được

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

Thanks kiu bác HA. Những lệnh này nằm trong tài liệu nào vậy bạn? Bạn có thể gởi cho mình xem thêm nha.

Các hàm VLAX : trong help của Cad đã có.

Các hàm ACET: lưu truyền trong dân gian, chưa tìm ra tài liệu. Nhưng trên CADViet đã có bài giới thiệu khá nhiều về các hàm này, bạn chịu khó tìm nhé. Hoặc siêu hơn thì tự vào các file lsp trong thư mục express của cad, mở nó ra và tự tìm hiểu, mênh mông bát ngát.

Thân thương!

  • 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

Bạn sửa 2 dòng sau:

Dòng 1

(if (/= "" (setq s (getstring "\nTen diem :" )))

Thành

(if (and (/= "" (setq s (getstring "\nTen diem :" ))) (/= "" (setq cd (getreal "\nCao do: "))))

Và dòng 2

 

(write-line (strcat s "\t" (rtos (car pt) 2 3) "\t" (rtos (cadr pt) 2 3)) f)

Thành

(write-line (strcat s "\t" (rtos (car pt) 2 3) "\t" (rtos (cadr pt) 2 3) "\t" (rtos cd 2 3)) f)

Hề hề hề,

Bác DoanVanHa ơi, bác định giả nhời ai thì bác nên có cái trích dẫn của người đó chứ nó không đầu không đuôi thế này, thiệt là khổ lắm lắm vì chả biết chỗ mô mà mò. Sở dĩ mình muốn vầy là để còn kiếm tí mót về làm vốn, nhưng bác cất kỹ quá chả mót được.

Hề hề hề,

Chúc bác vui và luôn mạ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

NHỜ ANH EM VIẾT LISP NÀY NHÉ.

là thế này. Khi mình kích chuột vô các Mốc A, Mốc B, Mốc C v.v.....(Block) thì các thông sô được xuất sang *.txt hay excel gì cũng được. xin chân thành cảm ơn

 

TÊN K. CÁCH GÓC CAO DỘ

A 0 0 5.935

B 30.371 1620 28' 38" 5.800

C 28.499 0 6.321

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

Bia thì mình không biết uống, bác sĩ bảo thế, cái dạ dày của mình không thích 45 độ, khổ thế đấy,

sao bạn giỏi thế mới hỏi đã biết ngay mình mo hết 1 buổi chiều hôm qua mà không được

Hề hề hề,

Bác ấy giỏi vì bác ấy "THÍCH UỐNG BIA".

Bạn mò cả buổi chiều vì bạn "KHÔNG BIẾT UỐNG" do "bác sĩ bảo thế". Mà bác sĩ thì làm sao mà giỏi Lisp được?????

Hề hề hề,

Nếu bạn cứ chịu khó nghe lời " bác sĩ " như vầy thì e rằng sẽ còn lâu lâu bạn mới theo kịp bác ấy được và lần sau bạn sẽ còn phải mò cả ngày chứ chả phải mò một buổi chiều đâu.

Hề hề hề......

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

Hề hề hề,

Bác DoanVanHa ơi, bác định giả nhời ai thì bác nên có cái trích dẫn của người đó chứ nó không đầu không đuôi thế này, thiệt là khổ lắm lắm vì chả biết chỗ mô mà mò. Sở dĩ mình muốn vầy là để còn kiếm tí mót về làm vốn, nhưng bác cất kỹ quá chả mót được.

Hề hề hề,

Chúc bác vui và luôn mạnh.

Chào bác 3 Hề!

1). Tôi bị 1 cái lỗi mouse kỳ quặc: vào "trả lời" là chuột chết, vào "sửa" hoặc "sử dụng trình soạn thảo đầy đủ" thì chuột sống, nên bực mình chơi "sử dụng trình soạn thảo đầy đủ" luôn, thành ra thiếu trích dẫn. Ngay bài viết này tôi cũng phải dùng mẹo: vào "trả lời" để có trích dẫn, rồi gởi, sau đó vào "sửa" để viết lại đây.

2). Tôi đã viết cho bạn ấy ngay dưới bài viết của bạn ấy, mà tự dưng bây giờ không thấy nó nữa, thành ra ai đọc cũng như cụt đầu cụt đuôi vậy mới tức chứ.

3). Bác nói hơi bị ngược đời: tôi mót bác chứ sao bác mót tôi?

Thân thương!

  • 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

NHỜ ANH EM VIẾT LISP NÀY NHÉ.

là thế này. Khi mình kích chuột vô các Mốc A, Mốc B, Mốc C v.v.....(Block) thì các thông sô được xuất sang *.txt hay excel gì cũng được. xin chân thành cảm ơn

 

TÊN K. CÁCH GÓC CAO DỘ

A 0 0 5.935

B 30.371 1620 28' 38" 5.800

C 28.499 0 6.321

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

NHỜ ANH EM VIẾT LISP NÀY NHÉ.

là thế này. Khi mình kích chuột vô các Mốc A, Mốc B, Mốc C v.v.....(Block) thì các thông sô được xuất sang *.txt hay excel gì cũng được. xin chân thành cảm ơn

 

TÊN K. CÁCH GÓC CAO DỘ

A 0 0 5.935

B 30.371 1620 28' 38" 5.800

C 28.499 0 6.321

Hề hề hề,

Cứ cái mửng này thì còn lâu mới có cái bạn cần.

Hãy chịu khó tìm kiếm trước khi hỏi. Trên diễn đàn đã có khá nhiều lisp về những việc tương tự. Nếu bạn đủ tài thì có thể đọc và sửa các lisp đó theo đúng với yêu cầu của bạn.

Nếu chưa thể làm được như vầy thì hãy post cái lisp mà bạn thấy gần đúng nhất với yêu cầu của bạn cùng với bản vẽ của bạn lên, đồng thời nói rõ chỗ nào cần sửa, mọi người mới giúp được chớ.

Còn nói xuông như bạn thì bố Tây cũng chả biết cái mốc A, mốc B, mốc C, của bạn là cái khỉ mốc gì thì làm sao mà có lisp được.

Hề hề hề,....

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

làm thế nào để mình chèn phai cad lên trên này được. hả bác. xin các bác đừng cười nhé

Hề hề hề,

Hãy đọc kỹ quy định khi tham gia diễn đàn, sẽ biết bạn cần làm gì để post được bài, ảnh, file đính kèm lên diễn đàn......

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

 

Nếu ý bạn là như hình chụp thì làm như sau:

Z enter\ shift + chuột phải chọn Endpoint\ click điểm 1\ shift + chuột phải chọn Endpoint\ click điểm 2

 

ah.png

 

 

Cái này hay đấy, đúng ý rồi. Bây h bác phát triển cái này thành lisp đi để anh em cùng tham khảo và sử dụng trong trường hợp có nhiều Rec. Thanks bác rất nhiều!

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

ấy chết em post thế này thì khó hiểu. thêm :"làm thế nào để đưa khung HCN vừa khít với khung MV bên layout". Làm như trên thì được rồi, bây h nhờ các bác phát triển cái này thành lisp sử dụng cho trường hợp nhiều khung giống nhau.Thanks!

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

Bác Bình mình đã thử theo cách bạn, Cung arc và line không cắt nhau. Heee thiệt là làm khổ bác quá đi.

Hề hề hề,

Bạn hãy kiểm tra lại nhé. Mình đã test thử thì thấy với mọi trường hợp nếu bán kính cung sau khi offset vẫn còn đủ lớn hơn 1/2 chiều dài dây trương cung của bạn thì cái fillet sẽ OK bạn ạ. Còn nếu như bạn offset với khoảng cách o đủ lớn để bàn kính cung còn lại sau offset nhỏ hơn 1/2 chiều dài dây trương cung thì lệnh fillet với r bằng 0 sẽ thua hẳn vì lúc này cung đó sẽ không thể cắt cái đường d1 và d2 của bạn nữa.

Sở dĩ mình nói bạn chọn x bằng o chính là để cho điểm mút thứ hai của đoạn thẳng d1 sẽ luôn nằm trong cung bao sau offset và khi đó bạn fillet cung và doạn d1 sẽ cho ra cái kết quả bạn cần, Chỉ đơn giản như vậy thôi chứ chả có gì cao siêu hay bí hiểm ở đây cả. Dựa vào cái oái oăm của lệnh fillet mà thôi.

Chúc bạn thành công.

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

Nhờ viết lisp

Z enter\ shift + chuột phải chọn Endpoint\ click điểm 1\ shift + chuột phải chọn Endpoint\ click điểm 2

 

ah.png

 

Lisp cho khung chữ nhật bên model trùng khít với khung mview bên layout trong trường hợp có nhiều khung

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


×