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

Thaistreetz

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

    905
  • Đã tham gia

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

  • Ngày trúng

    28

Cộng đồng

535 (tốt)

About Thaistreetz

  • Cấp bậc
    biết lệnh adcenter

Thông tin hồ sơ

  • Giới tính
    Male
  • Vị trí
    HN-QN-HD

Khách truy cập Tiểu sử gần đây

16.411 chế độ xem tiểu sử
  1. Thaistreetz

    Edit trực tiếp text Attribute trong block

    Trong block có sử dụng nhiều text attribute thì việc gõ ed để sửa nội dung hơi vất vả một chút. Đây là đoạn code để edit trực tiếp vào các text attribute do ta chọn bằng cách pick chuột. (defun c:edt () (while (setq att (car(nentsel "\nChon text Attribute :"))) (if (= (dxf 0 att) "ATTRIB") (progn (setq TagName (dxf 2 att) TagVal (dxf 1 att) BlName (dxf 330 att)) (if (setq NewVal (getstring 5 (strcat "\nNhap gia tri moi cho " TagName " <" TagVal "> : ")) ) (putAtt BlName TagName NewVal));if );progn );if );while (princ) );end ;------------------------------------------------------------------------------------------ (defun dxf(id ent) (cdr (assoc id (entget ent)))) ;------------------------------------------------------------------------------------------ (defun putAtt (BlName TagName NewVal / AttName EntDxf dk) (setq AttName (entnext BlName ) dk 1) (while (and AttName dk) (if (equal (assoc 0 (entget AttName )) '(0 . "SEQEND")) (setq AttName nil ) (if (= (cdr (assoc 2 (entget AttName ))) TagName ) ; <-- Your Attribute name (progn (setq EntDxf (entget AttName ) dk nil) (setq EntDxf (subst (cons 1 NewVal ) (assoc 1 (entget AttName )) EntDxf ) ) (entmod EntDxf ) (entupd BlName ) (setq AttName (entnext AttName )) );progn (setq AttName (entnext AttName )) );if );if );while );end Tuy nhiên lisp này phải gõ nội dung cần thay đổi ở dòng command. Giờ em muốn thực hiện việc này thông qua một hộp thoại. hộp thoại đó có 2 nút Cancel và OK. Xin nhờ các huynh viết hộ cái này, em không có rành khoản này lắm.
×