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

Nhờ sửa lisp với hàm IF

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

Như tiêu đề ạ, em nhờ các anh chỉnh sửa giúp em sao cho lisp này chạy mượt mà và gọn ạ. Lisp này vẫn chạy nhưng hơi... ngu (tất nhiên là do người viết :(().

Mục tiêu của nó là: Nếu layer A tồn tại trong bản vẽ thì chuyển các đối tượng về layer A. Nếu không thì tạo layer A rồi chuyển đối tượng về layer A.

Em cảm ơn các anh!

Quote

(Defun c:TEST()
(if (tblsearch "layer" "DINHTT")
 (
  (Prompt "\nSelect objects >>> DINHTT")
  (Setq CHUYEN (Ssget))
  (command "chprop" CHUYEN "" "la" "DINHTT"  "")
 )
 (
  (setq HIENHANH (getvar "clayer"))
  (Prompt "\nSelect objects >>> DINHTT  ")
  (Setq CHUYEN (Ssget))
  (COMMAND "-layer" "M" "DINHTT" "C" "1" "" "L" "CONTINUOUS" "" "")
  (command "chprop" CHUYEN "" "la" "DINHTT"  "")
  (setvar "clayer" HIENHANH)
 )
)
(princ))

 

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


(Defun c:TEST()
 (setq HIENHANH (getvar "clayer"))
 (Prompt "\nSelect objects >>> DINHTT")
 (Setq CHUYEN (Ssget))
 (if (not (tblsearch "layer" "DINHTT"))
  (COMMAND "-layer" "M" "DINHTT" "C" "1" "" "L" "CONTINUOUS" "" ""))
 (command "chprop" CHUYEN "" "la" "DINHTT"  "")
 (setvar "clayer" HIENHANH)
 (princ))

  • Like 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

Sẵn tiện cho phép hỏi hàm IF (Học viết lisp) cấp độ vỡ lòng

1. BIEUTHUC1 cho ra kết quả tại dòng                            COMMAND: ("ABC")

Vậy mình muốn gán biến n2 là nội dung của dòng command là ABC mà không được..

Sai sai ở chỗ nào mà mình không hiểu

 

Mình có 1 đoạn code (thực hành phép so sanh) như sau:

(defun C:BT1 ( / GT1 GT2 GT3)
  (setq n1 ABC)
  (setq n2 
;;THUC THI TRUY VAN GIA TRI 
(defun BIEUTHUC1 (/   ...........)
 .......
(defun c:LS1()
(BIEUTHUC1)
)
)
;;
(if (= n1 n2) 
;;; THỰC THI LỆNH BT1
)
)
)

;;;;;;;;;;;;;;;;;;;;;;

Xin sửa bài giúp. XIn cảm ơn 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

Không hiểu bạn hỏi gì cho lắm. Nhưng:

(setq n1 ABC) thì là gán biến n1 bằng biến ABC. Muốn gán biến n1 bằng chuỗi ABC thì (setq n1 "ABC").

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  

×