Chuyển đến nội dung
Diễn đàn CADViet

master_worse

Nhà quảng cáo
  • Số lượng nội dung

    168
  • Đã tham gia

  • Lần ghé thăm cuối

  • Ngày trúng

    1

Bài đăng được đăng bởi master_worse


  1. Cám ơn bác Giabach. Đúng là đoạn code trên khong có ý nghĩa trong thực tế nhưng em cần có nó để phát triển cái Lisp của em.

    Ví dụ như trên bản đồ địa chính có các layer tên chủ, loại đất, diện tích bây giờ em muốn lập bảng thống kê gồm 1 cột tên chủ, 1 cột diện tích, 1 cột loại đất thì phải có đoạn code này. Mong bác giúp

    Cái lisp của bác hình như còn lỗi gì đó. Nó chạy đến chỗ "bảng thống kê" rồi trở về dòng Command. Bác xem lại dùm em nhé.

    Xin phép lão tiền bối gia_bach

     

    (setq database (ssget "X" '((-4 . "< AND")(0 . "Text")(8 . "tchu,dchi,dthoai")(-4 . "AND >"))))

    bỏ khoảng trắng chỗ in đậm

     

    ((= lay_name "tchu") (setq hoten (append (list noidung) hoten)))

    ((= lay_name "dchi") (setq diachi (append (list noidung) diachi)))

    ((= lay_name "dthoai") (setq sdthoai (append (list noidung) sdthoai)))

     

    chỗ gạch dưới có phân biệt chữ hoa và chữ thường

     

    Coi chừng Tên ông này cắm nhầm địa chỉ bà kia

     

    ------------------------------------------

    PS: Cho hỏi làm sao để đưa tên lão tiền bối gia_bach vào sau chữ Trích dẫn


  2. Xin phép bác NGUYEN HOANH

     

    (defun CHANGE-LAYER (_TYPE LAYER / OBJS)
    (setq OBJS (ssget "X" (list (cons 0 _TYPE))))
    (if (not (tblsearch "layer" LAYER))
     (command ".layer" "m" LAYER "")
    );_ end if
    (command ".chprop" OBJS "" "la" LAYER "")
    (princ)
    );_ end defun
    (defun C:D2D (/ OBJS) (CHANGE-LAYER "DIMENSION" "DIM"))
    (defun C:H2H (/ OBJS) (CHANGE-LAYER "HATCH" "HATCH"))
    (defun C:B2B (/ OBJS) (CHANGE-LAYER "INSERT" "BLOCK"))
    (defun C:T2T (/ OBJS) (CHANGE-LAYER "*TEXT" "TEXT"))

    • Vote tăng 10

  3. Vậy mình UP bản vẽ và 1 đọan Lisp minh họa mong ban giabach giúp mình nhé. Thanks

    http://www.cadviet.com/upfiles/2/gan.rar

    (defun c:gan (/ hoten diachi sdthoai)
    (setq hoten(ssget "X"(list (cons 0 "Text")(cons 8 "tchu"))))
    (setq diachi(ssget "X"(list(cons 0 "Text")(cons 8 "dchi"))))
    (setq sdthoai(ssget "X"(list(cons 0 "Text")(cons 8 "dthoai"))))
    (princ hoten ",   " diachi ",   " sdthoai)
    )

    Xin phép lão tiền tiền bối giabach nha!

    Có phải ý bạn là

    TRUNGNGAMY Gửi vào Sep 25 2009, 16:0

    bạn này chắc muốn tạo 1 danh sách trong đó mỗi phần tử gồm có 3 thành phần như trên đó mà.

    hay ...

    Bạn Up file chi có

    NGUYỄN VĂN A

    QUẬN 10-TP HCM

    0909999999

    và đọn code trên thì lão giabach chắc cũng không hiểu đâu :cheers:


  4. - Bản vẽ A có một Text (gọi là nguồn)

    - Bản vẽ B, C ... có rất nhiều text (gọi là đích) có các nội dung không giống nhau

    - Sau khi thực hiện lệnh [chọn đối tượng nguồn >enter> chọn các đối tựong đích >enter> ]thì các đối tượng đích sẽ có nội dung của đối tượng nguồn.

    (giống lệnh lisp match text trên diễn đàn nhưng cho dùng tổ hợp phím CTRL+Tab để chọn đối tượng trên bản vẽ khác)

    Các tiền bối giúp em được không


  5. Các anh, các chị cho em hỏi:

    Làm sao có thể tạo 1 tập chọn chứa các đối tượng của nhiều bản vẽ (file)?

    Xử lý, cập nhật các đối tượng này có như bình thường không?

    Tks!!!

     

    Hôm nay! Cả nhà đi vắng à!

    Ngày mai (20/09/2009) mấy anh chị di cafe xong về chỉ em nha!

     

    23/09/2009: topic này bị bỏ hoang rồi sao?????????? :cheers:


  6. Xin "múa rìu qua mằt thợ":

     

    (defun NUMATXT(/ ss ss_num ss_txt)

    (setq ss (ssget '((0 . "TEXT"))))

    (setq ss_num (ssadd)) ; tập chứa các string là number

    (setq ss_txt (ssadd)) ; tập chứa các string là text

    (Setq i 0)

    (while (< i (sslength ss))

    (setq ss_i (ssname ss i))

    (setq str_i (cdr(assoc 1 (entget ss_i))))

    (if (distof str_i)

    (ssadd ss_i ss_num)

    (ssadd ss_i ss_txt)

    )

    (setq i (1+ i))

    )

    )

     

    "kiểm tra trước khi sử dụng"


  7. [ quote]Cho mình hỏi thêm cái này 1 tí nữa đi!

    (defun c:XXX( / sst ent old tt)

    (defun c:cv( sst / ent old tt)

    (defun c:XXX( / sst ent old tt)

    Sau tên hàm là mình liệt kê tất cả các biến ra phải ko?

    Cho mình hỏi ý nghĩa và vị trí của dấu / đó là gì?

    Có phải sau dấu / là các biến cục bộ được giải phóng khi hàm kết thúc không, còn trước dấu / là biến toàn cục phải ko?

     

    Mình vẫn chưa hiểu lắm biến nào cần giải phóng và biến nào ko cần giải phóng nữa?[ /quote]

     

    sau dấu / là các biến cục bộ được giải phóng khi hàm kết thúc

    còn trước dấu / là các tham số cần thiết khi gọi hàm

     

    nên sử dụng biến cục bộ, để không ảnh hưỡng đến các hàm khác nếu vô tình ta đặt trùng tên biến cho 2 hàm khác nhau.


  8. Không biết đúng ý bạn không?

    (defun C:CHANGEALLSTYLEWITHVNARIALN (/ CUR_TEXTSTYLE TEXTSTYLE_LIST I TEXTSTYLE_I)

    (setq CUR_TEXTSTYLE (getvar "TEXTSTYLE"))

    (setq TEXTSTYLE_LIST (list (cdr (nth 1 (tblnext "STYLE" t)))))

    (while (tblnext "STYLE")

    (setq TEXTSTYLE_LIST (append TEXTSTYLE_LIST (list (cdr (nth 1 (tblnext "STYLE"))))))

    ) ;_ end while

    (setq I 0)

    (while (< I (length TEXTSTYLE_LIST))

    (setq TEXTSTYLE_I (nth I TEXTSTYLE_LIST))

    (command "-style" TEXTSTYLE_I "VNARIALN.TTF" "" "" "" "" "")

    (setq I (1+ I))

    ) ;_ end while

    (setvar "TEXTSTYLE" CUR_TEXTSTYLE)

    ) ;_ end defun

     

    nếu đúng đổi tên lệnh cho ngắn lại mà sử dụng


  9. Làm thế nào để có thể chạy một ứng dụng giữa 2 hay nhiều bản vẽ (giống như lệnh MATCHPROP).

    Ví dụ:

    - Bản vẽ A có một Text (gọi là nguồn)

    - Bản vẽ B, C ... có rất nhiều text (gọi là đích) có các nội dung không giống nhau

    - Sau khi thực hiện lệnh thì các đối tượng đích sẽ có nội dung của đối tượng nguồn.

    Các cao thủ chỉ em với.

×