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

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

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

hmt    11

Chào mọi người, e có down lại lisp này. ko hiểu sao load lên cad 2013 lại báo lỗi" error: bad argument type: numberp: nil" khi chọn điểm đặt mặt cắt. Nhờ mọi ng xem giúp :) thank all

;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/topic/2480-huong-dan-lap-trinh-lisp/page-23
(defun C:VMC(/ a b c p1 p2 p3 p4 p5 p6 p7 p8 p9 osm)
(setq osm (getvar "osmode"))
;;;Nhap so lieu
(setq
a(getreal"\nBE RONG MAT DUONG a=")
b(getreal"\nBE RONG HE b=")
c(getreal"\nCHENH CAO BO VIA c=")
p1(getpoint"\nCHON DIEM DAT: ")
;;;Tinh toa do
p2(polar p1 0.0 (+(* 2 a) (* 2 b) /cool.png' class='bbc_emoticon' alt='B)' />))
p3(polar p2 (/ pi 2) 1)
p4(polar p3 (+(atan 0.02) pi) (/ b (cos(atan 0.02))))
p5(polar p4 (+ pi (/ pi 2)) c)
p6(polar p5 (- pi (atan 0.02)) (/ a (cos(atan 0.02))))
p7(polar p6 (+ pi (atan 0.02)) (/ a (cos(atan 0.02))))
p8(polar p7 (/ pi 2) c)
p9(polar p8 (- pi (atan 0.02)) (/ b (cos(atan 0.02))))
)
;;;Set object snap OFF
(setvar "osmode" 0)
;;;ve mat cat
(command "pline" p1 p2 p3 p4 p5 p6 p7 p8 p9 "c")
(setvar "osmode" osm))

  • Vote giảm 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

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.com/upfiles/Relax_1.zip

 

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

 

sao tôi không Download được nó báo lỗi 404

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

sao tôi không Download được nó báo lỗi 404

 

Tình hình rằng thì mà là , sau khi bấm chuột  vào chữ Download , em cũng thấy nó lòi ra  cái thông báo sau:

11837_xxxxa.png

 

Buồn ...cưới  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
cumeo7887    0

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!

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

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

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

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

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

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

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

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
 

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ự 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.com/upfiles/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

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

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

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
Nguyen Hoanh    4.524

Để 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.

  • 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
HDT    3

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.

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
ndtnv    396
HDT    3

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.

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


×