Đến nội dung


Hình ảnh
- - - - -

Thay đổi nội dung text cực nhanh


  • Please log in to reply
2 replies to this topic

#1 tchinh371

tchinh371

    biết zoom

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

Đã gửi 28 May 2008 - 08:39 PM

Chào cả nhà,
Em là lính mới trong diễn đàn, cũng đang tò te làm một vài líp đơn giản để phục vụ công việc. Em viết được đọan líp này pót lên cho các anh em sài thử: Nó được dùng để lấy nội dung của text 1 gắn cho 1 hoặc nhiều text khác; hoặc lấy 1 nội dung của 1 nhóm text gắn cho 1 nhóm text khác có số phần tử tương ứng. (cái này ứng dụng tuyệt với cho mấy bác trểin khai bản vẽ, ghi chú bản vẽ đó). Mong được chỉ giáo thêm

;--------------------------------------------
(defun c:tre(/ nguon n1 n2 d1 txt1 txt2 ) ;-------------------------- text replace
(prompt "\nChon text(s) lam nguon: ")
(setq nguon (ssget))
(prompt "\nChon text(s) muon thay doi: ")
(setq dich (ssget))
(setq n1 (sslength nguon)) (princ)
(setq n2 (sslength dich)) (princ)
(if (= 1 n1)
(progn
(setq d1 0)
(while (< d1 n2)
(setq txt1 (entget (ssname nguon 0)))
(setq txt2 (entget (ssname dich d1)))
(setq txt2 (subst (assoc 1 txt1) (assoc 1 txt2) txt2 ))
(entmod txt2)
(setq d1 (+ 1 d1))
)
)
(progn
(if (/= n1 n2)
(progn ;---
(prompt "\nNguon va dich khong tuong duong. Lenh khong thuc hien duoc")
(princ)
) ;---

(progn ;---
(setq d1 0)
(while (< d1 n1)
(setq txt1 (entget (ssname nguon d1)))
(setq txt2 (entget (ssname dich d1)))
(setq txt2 (subst (assoc 1 txt1) (assoc 1 txt2) txt2 ))
(entmod txt2)
(setq d1 (+ 1 d1))
)
);---
) ; Ket thuc if
)
); Ket thuc if
(princ)
) ;Ket thuc ham
;--------------------------------------------
  • 0
""AutoCAD đã có công tạo LISP, chúng ta hãy cùng nhau phát triển LISP"

#2 tranchan

tranchan

    biết lệnh break

  • Members
  • PipPipPipPip
  • 221 Bài viết
Điểm đánh giá: 93 (tàm tạm)

Đã gửi 28 May 2008 - 09:16 PM

(prompt "\nNguon va dich khong tuong duong. Lenh khong thuc hien duoc")


Vậy cũng chưa hoàn thiện lắm Bác Hoành có lisp đổi text mà ko fụ thuộc vào sl hai nhóm text. Mà ko biêt khi đổi thì sẽ đổi theo
phần tử tương ứng thứ tự trong 2 nhóm à?? Vd
như a1 đổi cho b1
  • 0

#3 tchinh371

tchinh371

    biết zoom

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

Đã gửi 29 May 2008 - 08:51 PM

Vậy cũng chưa hoàn thiện lắm Bác Hoành có lisp đổi text mà ko fụ thuộc vào sl hai nhóm text. Mà ko biêt khi đổi thì sẽ đổi theo
phần tử tương ứng thứ tự trong 2 nhóm à?? Vd
như a1 đổi cho b1


Chính xác, bạn hiểu đúng đó.
VD: Bạn có ghi chú các lọai thép trong kết cấu 2DK 14, 5DK 20, 3DK 16 .... bạn muốn đổi tất cả thành 7DK 18 thì dùng option 1: Chọn 1 text nguồn ( 7 DK 18) rồi chọn tất cả các text còn lại để thay đổi.
Option 2: bạn có các text chi tiết "Chi tiết mặt cắt A-A", "Chi tiết Hoa sắt", "Chi tiết xây ốp tường" "Chi tiết trang trí D4" trong bản vẽ .... Bạn muốn thay đổi nội dung các text "mặt đứng", :Mặt cát A-A", "Mặt bằng trệt", "Mặt bên" trong khung tên bản vẽ. Khi đó bạn sẽ chọn "Chi tiết mặt cắt A-A", "Chi tiết Hoa sắt", "Chi tiết xây ốp tường" "Chi tiết trang trí D4" làm nguồn, đích là "mặt đứng", :Mặt cát A-A", "Mặt bằng trệt", "Mặt bên", Lệnh sẽ thay đổi theo các thứ tự tương ứng.
  • 1
""AutoCAD đã có công tạo LISP, chúng ta hãy cùng nhau phát triển LISP"