Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
lp_hai

[Hỏi] hỏi về hàm assoc

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

Cái này em ko hiểu. Mong các Pác chỉ giùm:

Khi em đánh dòng code này vào command line:

(assoc 0 (entget(car(entsel)))) và chọn đối tượng là Mtext

->> (0 . "MTEXT")

khi em gõ:

(cons 0 "MTEXT") thì nó cũng có kết quả là (0 . "MTEXT")

Vậy mà khi em so sánh thế này:

(=(assoc 0 (entget(car(entsel)))) (cons 0 "MTEXT"))

thì nó ko T mà là nil????

Mong các pác chỉ giùm em sai ở chổ nào. Vì em muốn dùng cái này để lọc dt trong tập hợp chọn trước.

  • 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

Cái này em ko hiểu. Mong các Pác chỉ giùm:

Khi em đánh dòng code này vào command line:

(assoc 0 (entget(car(entsel)))) và chọn đối tượng là Mtext

->> (0 . "MTEXT")

khi em gõ:

(cons 0 "MTEXT") thì nó cũng có kết quả là (0 . "MTEXT")

Vậy mà khi em so sánh thế này:

(=(assoc 0 (entget(car(entsel)))) (cons 0 "MTEXT"))

thì nó ko T mà là nil????

Mong các pác chỉ giùm em sai ở chổ nào. Vì em muốn dùng cái này để lọc dt trong tập hợp chọn trước.

Bạn phải dùng hàm equal chứ không thể hàm =. Hàm = không thể so sánh danh sách.

  • 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 phải dùng hàm equal chứ không thể hàm =. Hàm = không thể so sánh danh sách.

Thanks pác.

Cho em hỏi luôn, vậy hàm so sánh khác nhau thì sao? kiểu như /=

  • 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

Thanks pác.

Cho em hỏi luôn, vậy hàm so sánh khác nhau thì sao? kiểu như /=

Có hàm phủ định NOT

Phủ định của cái đúng là sai

Phủ định cái sai là đúng :rolleyes:

  • 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

Có hàm phủ định NOT

Phủ định của cái đúng là sai

Phủ định cái sai là đúng :rolleyes:

Ko được pác ah!

Hay là em bị sai cú pháp? :angry:

Command: (NOT (assoc 0 (entget(car(entsel)))) (cons 0 "MTEXT"))

Select object: ; error: too many arguments

  • 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

Ko được pác ah!

Hay là em bị sai cú pháp? :angry:

Command: (NOT (assoc 0 (entget(car(entsel)))) (cons 0 "MTEXT"))

Select object: ; error: too many arguments

Bạn phải viết như vầy :

(NOT (equal(assoc 0 (entget(car(entsel)))) (cons 0 "MTEXT")))

 

Hàm not chỉ có 1 đối số thôi

  • 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 phải viết như vầy :

(NOT (equal(assoc 0 (entget(car(entsel)))) (cons 0 "MTEXT")))

 

Hàm not chỉ có 1 đối số thôi

hehhehe. Cảm ơn cả nhà!

  • 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 phải viết như vầy :

(NOT (equal(assoc 0 (entget(car(entsel)))) (cons 0 "MTEXT")))

Hàm not chỉ có 1 đối số thôi

Hình như thêm cả:

(NULL (equal(assoc 0 (entget(car(entsel)))) (cons 0 "MTEXT")))

và:

(= nil (equal(assoc 0 (entget(car(entsel)))) (cons 0 "MTEXT")))

Nhưng chưa hiểu 3 thằng (not...) , (null...) , (= nil...) khác nhau ở chỗ nào, và dùng thằng nào hay hơn?

  • 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

nếu để lọc text hay MTEXT thì dùng (setq ss (ssget "X" (list(cons 0 "TEXT"))))

thanks pác. Nhưng mà ý em là lọc dt trong một tập dt đã có rồi. VD tập lúc đầu là ABC, bây giờ em muốn tập ss là AB.

  • 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

thanks pác. Nhưng mà ý em là lọc dt trong một tập dt đã có rồi. VD tập lúc đầu là ABC, bây giờ em muốn tập ss là AB.

Hề hề hề,

Để lọc kiểu này có các hàm (vl-remove-if....)hay (vl-remove-if-not ...)cũng hay ra phết. Chịu khó cắp cập theo bác Ketxu mấy bữa, bác ấy bày cho thì có mà dùng suốt đời chả hết. Hề hề hề,.... Dưng mà phải chuyển các tập đối tượng thành list các đối tượ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

thanks pác. Nhưng mà ý em là lọc dt trong một tập dt đã có rồi. VD tập lúc đầu là ABC, bây giờ em muốn tập ss là AB.

Vậy bạn có 2 cách cơ bản :

- 1 là xét tập ABC, nếu thằng nào bằng C thì xóa => Còn lại tập AB. Cách này dùng khi tập ABC bạn không cần nữa => K phải tạo biến trung gian

- 2 là xét tập ABC, nếu thằng nào bằng A hoặc B (Khác C) thì nhét vào 1 tập mới => Được tập mới AB. Cách này hợp lý khi bạn vẫn cần giữ nguyên tập ABC ban đầu để thao tác các việc khác.

 

Nếu đã có list tập ss (gồm các ename) thì nên dùng vl-remove hoặc vl-remove-if, vl-remove-if-not, còn nếu không, bạn hãy chạy vòng lặp qua ssname để kiểm tra điều kiện thôi ^^

 

@bác Bình : vỡ mũi em ^^

  • 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àn, đọc lại từ đầu đến cuối topic này thấy có một chuyện... vui, ghi lại để các MOD xem có vui không nhé?

1). 1 câu hỏi, được vote 1 dấu +

2). 1 câu hỏi, được vote 1 dấu +

3). 1 câu nói em làm bị lỗi, được vote 1 dấu +

4). 1 câu cám ơn người khác, được vote 1 dấu +

5). 1 câu vừa cám ơn vừa hỏi, được vote 1 dấu +

Vị chi, 5 câu hỏi của 1 người, được 1 người khác vote 5 cái +, sướng ghê, và vui ghê!

Hôm qua, thấy bác Thaistreetz cho Cadviet 1 thư viện các hàm entmake, muốn vote, tự nhiên hết quota, lãng xẹt, hôm nay mới vote cho bác ấy.

Lần sau hỏi cho mau... giàu! :excl:

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

Theo Ketxu biết thì là do bạn Hoan2182 đang trả nợ bạn lp_hai vụ đố vui có thưởng, nên không có gì là lạ cả, bác ĐVH cứ yên chí nhớn :lol:

  • 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

@Tue_NV: không biết Bác đang nghĩ gì?

@Ketxu: hoá ra là thế, điều này đáng hoan nghênh.

@lp_hai+hoan: sr 2 bạn nhé.

Tóm lại: tất cả góp ý đều vì sự lành mạnh và phát triển của CadViet.

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àn, đọc lại từ đầu đến cuối topic này thấy có một chuyện... vui, ghi lại để các MOD xem có vui không nhé?

1). 1 câu hỏi, được vote 1 dấu +

2). 1 câu hỏi, được vote 1 dấu +

3). 1 câu nói em làm bị lỗi, được vote 1 dấu +

4). 1 câu cám ơn người khác, được vote 1 dấu +

5). 1 câu vừa cám ơn vừa hỏi, được vote 1 dấu +

Vị chi, 5 câu hỏi của 1 người, được 1 người khác vote 5 cái +, sướng ghê, và vui ghê!

Hôm qua, thấy bác Thaistreetz cho Cadviet 1 thư viện các hàm entmake, muốn vote, tự nhiên hết quota, lãng xẹt, hôm nay mới vote cho bác ấy.

Lần sau hỏi cho mau... giàu! :excl:

hehhehe. Bác làm em hổ thẹn wá! Chắc tại cái Avatar "gợi cảm" ý mà! Heehehehee, ai biểu bác Hoan nhà ta hào phóng treo thưởng lớn wá. hôm wa tới giờ mới lên đây để vote cho các ý kiến giúp đở em.nên có chậm trễ.

Mà sao hnay em + mới có 2 cái là hết quota rồi cà??

  • 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

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
Đăng nhập để thực hiện theo  

×