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

#481 HDT

HDT

    biết zoom

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

Đã gửi 15 July 2016 - 10:39 AM

Cho em hỏi:

      Em có một dotted pair như sau: (0 . "LINE")

      Tại sao dùng hàm cdr thì nó trả về "LINE" (đáng nhẽ là: ("LINE") chứ)

      Còn dùng hàm cadr thì nó báo lỗi bad argument type: consp "LINE" (đáng nhẽ trả về : "LINE" chứ)

Rất mong được các anh giải đáp.


  • 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

#482 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 15 July 2016 - 11:12 AM

Cho em hỏi:

      Em có một dotted pair như sau: (0 . "LINE")

      Tại sao dùng hàm cdr thì nó trả về "LINE" (đáng nhẽ là: ("LINE") chứ)

      Còn dùng hàm cadr thì nó báo lỗi bad argument type: consp "LINE" (đáng nhẽ trả về : "LINE" chứ)

Rất mong được các anh giải đáp.

Dotted pair là 1 kiểu list đặc biệt nên nó thế  :lol:

Lý luận "đáng lẽ phải thế này thế nọ" của bạn cũng không đúng, vì trong dotted pair còn có dấu chấm (.) chứ không phải chỉ là '(0 "LINE").

Vì đặc biệt nên thậm chí (length '(0 . "LINE")) >> error, trong khi (length '(0 "LINE") >> 2


  • 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ờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

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


#483 HDT

HDT

    biết zoom

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

Đã gửi 17 July 2016 - 11:26 AM

Em muốn lấy diện tích của 1 pline kín. Sao trong danh sách record của nó không có nhỉ.

Các anh giúp em vớ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

#484 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 17 July 2016 - 11:32 AM

Hàm này là cơ bản, nên tự tìm trong các hàm lisp chứ nhỉ?
(vla-get-area obj)


  • 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ờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

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


#485 HDT

HDT

    biết zoom

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

Đã gửi 17 July 2016 - 11:37 AM

Làm phiền anh nói rõ tên đầy đủ được không ạ. Em mới học Lisp tập tõm thôi.

Cảm ơn anh


  • -1
.........................................................................................................................................................................
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

#486 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 17 July 2016 - 11:42 AM

Ví dụ:

(vla-get-area (vlax-ename->vla-object (car (entsel "\nChon doi tuong de lay dien tich: "))))


  • 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ờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

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


#487 Giả Vờ Thôi

Giả Vờ Thôi

    Chưa sử dụng CAD

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

Đã gửi 18 July 2016 - 05:35 PM

chào các bậc tiền bối

mình có một file autocad 2007 mà không mở được các bác giúp em với ạ

http://www.cadviet.c.../154054_moi.dwg


  • 0

#488 HDT

HDT

    biết zoom

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

Đã gửi 22 July 2016 - 02:32 PM

Ví dụ:

(vla-get-area (vlax-ename->vla-object (car (entsel "\nChon doi tuong de lay dien tich: "))))

Anh Hà có tài liệu học lisp của các hàm trên không, em có 2 tập tự học auto Lisp nhưng không thể tìm ra các hàm trên. Mong anh chỉ giáo và chia sẻ. Em cảm ơn ạ. :)))))))))))


  • 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

#489 conghvh

conghvh

    Chưa sử dụng CAD

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

Đã gửi 15 February 2017 - 01:48 PM

Cảm ơn ssg đã mở chủ đề này !
  • 0

#490 nhatx2

nhatx2

    Chưa sử dụng CAD

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

Đã gửi 15 March 2017 - 04:02 PM

[quote name='tuan_thietkedien' post='53000' date='Mar 21 2009, 15:20']Chào anh SSG
Trước tiên em đã dùng thử vl-string-translate, và viết được 2 cái lisp sau
1. Lisp chuyển ABC thành 123
.......................

2. Lisp chuyển ABC tiếng Anh thành ABC tiếng Nhật.

(defun c:hk ( / e d nd td )
;;; (setq chuoi_tim (getstring t "Enter string to search for: ")
;;; chuoi_thaythe (getstring t "Enter string to replace with: "))
(setq chuoi_tim "A"
chuoi_thaythe "A")
(setq e (car(entsel))
d (entget e)
nd (cdr(assoc 1 d))
td (vl-string-subst chuoi_thaythe chuoi_tim nd)
d (subst (cons 1 td) (assoc 1 d) d)
)
(entmod d)
(princ)
)

bạn ơi cho hỏi đoạn code trên nếu bổ sung thêm ký tự ''B'' , ''C'' ...,''X'',.. vào chuoi_tim và chuoi_thaythe nữa được không cho mình xin với, cảm ơn nhiều!


  • 0

#491 nhatx2

nhatx2

    Chưa sử dụng CAD

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

Đã gửi 15 March 2017 - 04:05 PM

Chào bạn Tuanthietkedien
Mình đã cài rồi mà tại sao cái chữ CAD-2008 Tiếng Nhật vẫn không hiện được
chữ CAD-2008 tiếng Nhật nó ra như cũ thế này : \M+18262\M+18260\M+18263\M+1815B\M+18251\M+1824F\M+1824F\M+18257
và theo mình suy luận như trên :
Tức là chữ C trong tiếng Nhựt tương đương với chữ \M+18262 (trong tiếng Anh)
Tức là chữ A trong tiếng Nhựt tương đương với chữ \M+18260 (trong tiếng Anh)
Tức là chữ D trong tiếng Nhựt tương đương với chữ \M+18263 (trong tiếng Anh)
Không hiểu sao chữ Nhật nó không hiện. Và mình đã viết đoạn Lisp này và đã chạy thành công.
Bạn thử xem nhé :

(defun c:STRR()

(Setq stri (entget(car(entsel))))

(setq str (cdr(assoc 1 stri)))

(setq n (strlen str) i 1 te "")

(while (<= i n)



(setq te1 (substr str i 1))



(if (= te1 "A") (setq te1 "\\M+18260"))

(if (= te1 "B") (setq te1 "\\M+18261"))

(if (= te1 "C") (setq te1 "\\M+18262"))

(if (= te1 "D") (setq te1 "\\M+18263"))

(setq te (strcat te te1))



(setq i (+ i 1))



)



(setq stri (subst (cons 1 te) (assoc 1 stri) stri))

(entmod stri)

)
LISP chỉ chuyển các kí tự : "A" "B" "C" "D" tiếng Anh sang kiểu gõ tiếng Nhựt.
Cái chữ \\M+18260 chính là chữ "A" trong tiếng Nhựt đó.

Dòng (if (= te1 "A") (setq te1 "\\M+18260"))
thì "A" là kí tự tìm thấy và "\\M+18260" (chính là chữ "A") tiếng Nhựt.
Và bạn hãy thay "\\M+18260" (chữ "A") của Tiếng Nhật do mình bị lỗi Font

Bạn hãy bổ sung thêm kí tự tìm thấy và kí tự thay thế để hoàn thành tốt công việc của bạn.

Bạn hãy chạy thử và cho biết ý kiến nhé.
Chúc thành công. cry.gif

 

bạn có lisp chuyển ngược từ kiểu gỏ tiếng Nhật sang tiếng Anh ko cho mình xin với, cảm ơn nhiều!


  • 0

#492 Lê Bá Đạt

Lê Bá Đạt

    Chưa sử dụng CAD

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

Đã gửi 20 March 2017 - 11:18 AM

Nhờ bác nào viết giùm em cái lisp như thế này được không ạ.
em đang ghi text độ dài cho các đoạn ống, mà em đang thủ công dim rồi tạo text ghi nên lâu ạ.
Cụ thể em cần lisp như thế này:

Lệnh - chọn điểm đầu "cách" chọn điểm cuối "cách"  Nhập tiền tố "cách" Nhập hậu tố "cách" chọn điểm đầu, cuối làm chân text sẽ ra text cần ạ.


  • 0

#493 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5712 Bài viết
Điểm đánh giá: 2633 (tuyệt vời)

Đã gửi 20 March 2017 - 11:45 AM

Tại sao bạn không tạo Dimstyle tắt Extension và Dimension Line (supress), tiền tố hậu tố như bạn muốn rồi Dim ?
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#494 Lê Bá Đạt

Lê Bá Đạt

    Chưa sử dụng CAD

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

Đã gửi 19 April 2017 - 11:50 AM

Các Bác cho em hỏi, em có 2 cái lisp đo chiều dài ghi đè lên text. Một cái đo đường line với 1 cái đo đường ML. không hiểu sao cái đo đường ML nó lại làm nhảy vị trí của text khi sửa nó. Bác nào chỉ hộ em được không ạ.http://www.cadviet.c..._co_san_d_l.lsphttp://www.cadviet.c...hap_tien_to.lsp


  • 0