Đến nội dung


Hình ảnh
5 stars - based on 24598 reviews
* * * - - 3 Bình chọn

Hướng dẫn lập trình Lisp


  • Please log in to reply
493 replies to this topic

#461 cumeo7887

cumeo7887

    Chưa sử dụng CAD

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

Đã gửi 06 January 2016 - 04:26 PM

Bác ssg gửi cho em lại link download được không? Link trên die rồi. Em mới tham gia gia đình Cadviet nên còn nhiều thứ phải học lắm. Thanks bác ssg!


  • 0

#462 Superlong

Superlong

    biết vẽ arc

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

Đã gửi 20 March 2016 - 09:31 PM

em muốn tạo pline kín từ 2 pline không giao nhau nhưng khi chạy thử thì báo lỗi ssget mọi ng giải thích giùm em với
 

(defun c:yeah
(setq lst (ssget))
(SETQ DT1 (NTH 0 lst)
dt2 (nth 1 lst))
(setq td1 (acet-geom-vertex-list dt1)
td2 (acet-geom-vertex-list dt2))
(setq ss1 (nth 0 td1)
ss2 (nth 1 td2))
(acet-pline-make (list ss1 ss2)))


  • 0

#463 thitluocday

thitluocday

    biết zoom

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

Đã gửi 07 April 2016 - 08:36 AM

bác nào có file Relax_1.zip send em xin nhé, link trên die mất rồi :(


  • 0

#464 Superlong

Superlong

    biết vẽ arc

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

Đã gửi 07 April 2016 - 09:44 AM

trong câu lệnh (write-line) thì làm thế nào để cho kết quả xuất ra lần lượt theo cột từ trái qua phải

vd: (setq cot1 (+ 1 1)
cot2 (+ 1 2)
cot3 (+1 3))

 

làm sao có thể đưa giá trị của các biến cot1-3 vào write-line để kết quả cho ra phân biệt theo cột  thứ tự lần lượt các cột từ trái qua phải để open = excel có thể dễ thao tác hơn chứ nếu nối chuỗi lại thì nó vẫn nằm trong 1 ô thôi


  • 0

#465 tien2005

tien2005

    biết lệnh hatchedit

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

Đã gửi 07 April 2016 - 12:24 PM

trong câu lệnh (write-line) thì làm thế nào để cho kết quả xuất ra lần lượt theo cột từ trái qua phải

vd: (setq cot1 (+ 1 1)
cot2 (+ 1 2)
cot3 (+1 3))

 

làm sao có thể đưa giá trị của các biến cot1-3 vào write-line để kết quả cho ra phân biệt theo cột  thứ tự lần lượt các cột từ trái qua phải để open = excel có thể dễ thao tác hơn chứ nếu nối chuỗi lại thì nó vẫn nằm trong 1 ô thôi

để wite-line 1 string vào excel thành các cột Bạn phải nối các string đó lại như sau

(setq str (strcat "noi dung cot 1" "\t" "noi dung cot 2" "\t" "noi dung cot 3"))


  • 0

#466 Superlong

Superlong

    biết vẽ arc

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

Đã gửi 08 April 2016 - 09:51 PM

có lệnh nào tạo 1 file excel vào vị trí được ghi ra sẳn trong câu lệnh vd "c:\......." mà chỉ tạo file thôi chứ ko tự mở file ra (ý mình là tạo trong âm thầm ^^)
để tip theo dùng lệnh open  theo đường dẫn đó và ghi dữ liệu vào file đó không
 


  • 0

#467 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5543 Bài viết
Điểm đánh giá: 2669 (tuyệt vời)

Đã gửi 08 April 2016 - 10:27 PM

Link, bài 1285

http://www.cadviet.c...-coding/page-65


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Và đừng làm điều ngược lại.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#468 tientaiutc2612

tientaiutc2612

    biết pan

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

Đã gửi 24 May 2016 - 04:49 PM

Tự tay mình lập một chương trình Lisp có gì khác so với nhờ ai đó làm? Chưa cần xét kết quả, điểm khác nhau rất cơ bản là bạn sẽ có được cái cảm giác rất là khoái chí (không thể diễn tả) khi chạy thử chương trình.
Ssg lập topic này không ngoài mục đích tạo điều kiện cho các bạn tự mình tìm hiểu và khám phá cái cảm giác "khoái chí không thể diễn tả" nói trên.
Với tinh thần "Share is Receive", ssg cũng mong các bạn đã thành thạo Lisp quan tâm giúp đỡ các bạn mới để cộng đồng Lisp của CadViet ngày càng đông vui và tạo được nhiều chương trình hữu ích.
Để bắt đầu, ssg post lại một bài viết cũ, nhưng có lẽ vẫn còn mới đối với một số bạn. Hy vọng sẽ giúp được chút gì đó cho các bạn mới tiếp cận với Lisp:

http://www.cadviet.c...les/Relax_1.zip

Download, giải nén rồi đọc file *.doc

 

link die hay sao mà e k tải đc bác ah


  • 0

#469 HDT

HDT

    biết zoom

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

Đã gửi 06 June 2016 - 11:14 AM

Chào các bác!

 

Em đang viết một cái list, nhưng em muốn lấy các thông số của một đối tượng để gán vào biến thì phải làm thế nào ạ.

 

Ví dụ:

            + Chiều dài đoạn thẳng, tọa độ End X, End Y,…

            + Chiều cao của text, màu của text,…

            + Hoặc với đối tượng phức hợp gồm nhiều đối tượng khác như viewport bên layout (gồm Pline và Veiwport): Em muốn lấy tỷ lệ scare của viewport thì phải làm thế nào ạ.

 

Hóng thánh :3

Cảm ơn các bác đã đọc bài viết của em.

Dạ… Em xin hết ạ. :3


  • 0
.........................................................................................................................................................................
Hoàng Đình Thắng
Cơ quan: Phòng Thiết kế 1 - Công ty Cổ phần Tư vấn Xây dựng công trình Giao thông 5.
Địa chỉ: 229 Trường Chinh, Quận Thanh Khê, TP Đà Nẵng.
DĐ: 01654525566
Fax: 0511. 3842415

#470 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

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

Đã gửi 07 June 2016 - 07:03 AM

Để biết các group code của 1 đối tượng, bạn dùng lệnh (entget (car (entsel))

Khi đa biết code của nội dung cần lấy, bạn dùng mã (cdr (assoc code (entget ent))) trong đó code là mã code cần lấy (vd 0, 1, 10, 11...) còn ent ename đối tượng, có được nhờ hàm (car (entsel)) hoặc ssname.
  • 1

#471 HDT

HDT

    biết zoom

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

Đã gửi 23 June 2016 - 10:55 AM

Các bác cho em hỏi làm thế nào để biến x nhận dữ liệu đã nhập lần ngày trước đó khi ta k không nhập giá trị cho lần sau cho nó. Cám ơn các bác.


  • 0
.........................................................................................................................................................................
Hoàng Đình Thắng
Cơ quan: Phòng Thiết kế 1 - Công ty Cổ phần Tư vấn Xây dựng công trình Giao thông 5.
Địa chỉ: 229 Trường Chinh, Quận Thanh Khê, TP Đà Nẵng.
DĐ: 01654525566
Fax: 0511. 3842415

#472 conankid

conankid

    biết vẽ rectang

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

Đã gửi 24 June 2016 - 10:33 AM

Link die rồi.ai có tài liệu nào để viết Lisp cho em xin với ạ! cảm ơn nhiều !


  • 0

Chẳng biết ngày mai có ra sao

Mà có ra sao cũng chẳng sao.


#473 ndtnv

ndtnv

    biết lệnh divide

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

Đã gửi 24 June 2016 - 03:35 PM

Học theo các link này thì cũng đủ khả năng để sửa lisp sưu tầm hoặc viết các lisp đơn giản

http://www.cadviet.c...0-hoc-autolisp/

http://www.cadviet.c...lap-trinh-lisp/

http://www.cadviet.c...-nhau-hoc-lisp/

http://www.cadviet.c...y-tuong-coding/


  • 0

#474 HDT

HDT

    biết zoom

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

Đã gửi 07 July 2016 - 02:51 PM

Xin các bác chỉ giáo cho.

Hàm nào trong Lisp thay đổi giá trị text trong Dimension ạ.

Cảm ơn các bác nhiều.


  • 0
.........................................................................................................................................................................
Hoàng Đình Thắng
Cơ quan: Phòng Thiết kế 1 - Công ty Cổ phần Tư vấn Xây dựng công trình Giao thông 5.
Địa chỉ: 229 Trường Chinh, Quận Thanh Khê, TP Đà Nẵng.
DĐ: 01654525566
Fax: 0511. 3842415

#475 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5543 Bài viết
Điểm đánh giá: 2669 (tuyệt vời)

Đã gửi 07 July 2016 - 04:22 PM

Bạn lấy mã DXF của text trong dim, chú ý dim nguyên thủy và dim đã edit, sau đó dùng hàm entmod để thay đổi.


  • 1

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Và đừng làm điều ngược lại.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#476 HDT

HDT

    biết zoom

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

Đã gửi 14 July 2016 - 09:57 AM

Nhưng em muốn đưa một giá trị từ một biến a vào trong cái record, nó cứ báo lỗi bad DXF group miết à.

Cụ thể là em là em viết đoạn lisp này k biết sai ở chỗ mô:

(setq ES (entsel) LIST (entget (car ES)) LIST (subst '(1 . a) '(1 . "") LIST))

Có cách gì để đưa biến vào trong record không ạ.


  • 0
.........................................................................................................................................................................
Hoàng Đình Thắng
Cơ quan: Phòng Thiết kế 1 - Công ty Cổ phần Tư vấn Xây dựng công trình Giao thông 5.
Địa chỉ: 229 Trường Chinh, Quận Thanh Khê, TP Đà Nẵng.
DĐ: 01654525566
Fax: 0511. 3842415

#477 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5543 Bài viết
Điểm đánh giá: 2669 (tuyệt vời)

Đã gửi 14 July 2016 - 10:30 AM

Nhưng em muốn đưa một giá trị từ một biến a vào trong cái record, nó cứ báo lỗi bad DXF group miết à.

Cụ thể là em là em viết đoạn lisp này k biết sai ở chỗ mô:

(setq ES (entsel) LIST (entget (car ES)) LIST (subst '(1 . a) '(1 . "") LIST))

Có cách gì để đưa biến vào trong record không ạ.

Bạn không thể viết '(1 . a) mà bạn phải viết (cons 1 a), giải thích hơi khó hiểu tí nhưng dần bạn sẽ hiểu.


  • 1

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Và đừng làm điều ngược lại.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#478 HDT

HDT

    biết zoom

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

Đã gửi 14 July 2016 - 10:43 AM

Mình đã dùng hàm (cons 1 a). Mình đã hiểu. Cái a phải là chuỗi. Mình chuyển nó sang chuỗi thì nó đã nhận. Cảm ơn bạn.

Cảm giác viết xong 1 cái Lisp thật là phê :3


  • 0
.........................................................................................................................................................................
Hoàng Đình Thắng
Cơ quan: Phòng Thiết kế 1 - Công ty Cổ phần Tư vấn Xây dựng công trình Giao thông 5.
Địa chỉ: 229 Trường Chinh, Quận Thanh Khê, TP Đà Nẵng.
DĐ: 01654525566
Fax: 0511. 3842415

#479 HDT

HDT

    biết zoom

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

Đã gửi 14 July 2016 - 04:42 PM

Cho em hỏi làm sao để thêm 1 list vào 1 list phức hợp có sẵn ạ. Tìm hoài có cái add_list mà hình như không phải.


  • 0
.........................................................................................................................................................................
Hoàng Đình Thắng
Cơ quan: Phòng Thiết kế 1 - Công ty Cổ phần Tư vấn Xây dựng công trình Giao thông 5.
Địa chỉ: 229 Trường Chinh, Quận Thanh Khê, TP Đà Nẵng.
DĐ: 01654525566
Fax: 0511. 3842415

#480 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5543 Bài viết
Điểm đánh giá: 2669 (tuyệt vời)

Đã gửi 14 July 2016 - 04:48 PM

Dùng cons hoặc append. Còn nếu thêm vào 1 vị trí định sẵn thì phải viết hàm.


  • 1

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Và đừng làm điều ngược lại.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.