Đến nội dung


Hình ảnh
- - - - -

đổi thuộc tính cho text


  • Please log in to reply
8 replies to this topic

#1 cadthanyeu

cadthanyeu

    biết zoom

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

Đã gửi 05 October 2008 - 11:57 AM

Tôi mới làm quen với lisp. Tôi xin hỏi các bạn là : tôi muốn thay đổi thuộc tính (Heihght = 5, textstyle= vnarial) tất cả các đối tượng text thuộc lớp "hoten" trong bản vẽ thì viết lisp như thế nào ? tôi đã viết lệnh sau nhưng không được. Tôi không biết dùng hàm gì để thay dổi được tất cả các text thuộc lớp "hoten" trong bản vẽ.
các bạn xem giúp tôi nhé.

(setq ent(ssget "x" (list (cons 8 "hoten")(cons 0 "TEXT"))))
(setq n(sslength ent))
(command "text" "j" "C" "" "0" n )
  • 0

#2 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 06 October 2008 - 03:56 PM

Tôi mới làm quen với lisp. Tôi xin hỏi các bạn là : tôi muốn thay đổi thuộc tính (Heihght = 5, textstyle= vnarial) tất cả các đối tượng text thuộc lớp "hoten" trong bản vẽ thì viết lisp như thế nào ? tôi đã viết lệnh sau nhưng không được. Tôi không biết dùng hàm gì để thay dổi được tất cả các text thuộc lớp "hoten" trong bản vẽ.
các bạn xem giúp tôi nhé.

(setq ent(ssget "x" (list (cons 8 "hoten")(cons 0 "TEXT"))))
(setq n(sslength ent))
(command "text" "j" "C" "" "0" n )

Mình nghĩ rằng không nhất thiết phải sử dụng Lisp, bạn hãy dùng lệnh filter trong AutoCad.
Để thay đổi đối tượng thì đầu tiên bạn phải lựa chọn đối tượng
Command : filter
Bạn Add to list :
layer = hoten
Text Style name = vnarial
Text Height = 5
Object = Text
Bạn lưu cách chọn lựa này theo một tên nào đó trong hộp Save As sau đó Apply chọn đối tượng là xong
  • 0

#3 cadthanyeu

cadthanyeu

    biết zoom

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

Đã gửi 08 October 2008 - 10:59 AM

Mình nghĩ rằng không nhất thiết phải sử dụng Lisp, bạn hãy dùng lệnh filter trong AutoCad.
Để thay đổi đối tượng thì đầu tiên bạn phải lựa chọn đối tượng
Command : filter
Bạn Add to list :
layer = hoten
Text Style name = vnarial
Text Height = 5
Object = Text
Bạn lưu cách chọn lựa này theo một tên nào đó trong hộp Save As sau đó Apply chọn đối tượng là xong

Tôi cũng biết lệnh Change text (CHT) trong acad nhưng tôi muốn hỏi cách viết mã lisp để học hỏi về nhôn ngữ lisp.
- ttôi đã biết được mã lisp để chọn tất cả các text trong lớp "HOten" nhưng không biết đoạn mã nào để thay đổi tất cả thuộc tính của chúng.
Các bạn gíup tôi với nhé .
  • 0

#4 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 09 October 2008 - 10:37 AM

Tôi cũng biết lệnh Change text (CHT) trong acad nhưng tôi muốn hỏi cách viết mã lisp để học hỏi về nhôn ngữ lisp.
- ttôi đã biết được mã lisp để chọn tất cả các text trong lớp "HOten" nhưng không biết đoạn mã nào để thay đổi tất cả thuộc tính của chúng.
Các bạn gíup tôi với nhé .

Text có rất nhiều thuộc tính. Bạn nói chung chung quá. Bạn có thể nói rõ hơn được không?
  • 0

#5 ssg

ssg

    biết lệnh adcenter

  • Vip
  • PipPipPipPipPipPipPip
  • 1228 Bài viết
Điểm đánh giá: 1087 (rất tốt)

Đã gửi 09 October 2008 - 03:54 PM

Tôi mới làm quen với lisp. Tôi xin hỏi các bạn là : tôi muốn thay đổi thuộc tính (Heihght = 5, textstyle= vnarial) tất cả các đối tượng text thuộc lớp "hoten" trong bản vẽ thì viết lisp như thế nào ? tôi đã viết lệnh sau nhưng không được. Tôi không biết dùng hàm gì để thay dổi được tất cả các text thuộc lớp "hoten" trong bản vẽ.
các bạn xem giúp tôi nhé.

(setq ent(ssget "x" (list (cons 8 "hoten")(cons 0 "TEXT"))))
(setq n(sslength ent))
(command "text" "j" "C" "" "0" n )

Bạn thử làm bài này trước đã:

Thay đổi height của MỘT ĐỐI TƯỢNG TEXT bất kỳ nào đó đang có trên bản vẽ.
  • 0

#6 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1435 Bài viết
Điểm đánh giá: 1426 (rất tốt)

Đã gửi 10 October 2008 - 03:04 PM

Tôi mới làm quen với lisp. Tôi xin hỏi các bạn là : tôi muốn thay đổi thuộc tính (Heihght = 5, textstyle= vnarial) tất cả các đối tượng text thuộc lớp "hoten" trong bản vẽ thì viết lisp như thế nào ? tôi đã viết lệnh sau nhưng không được. Tôi không biết dùng hàm gì để thay dổi được tất cả các text thuộc lớp "hoten" trong bản vẽ.
các bạn xem giúp tôi nhé.
......................

Bạn thử LISP này xem sao :
;;;; Doi thuoc tinh chieu cao va kieu TEXT 
(defun C:doi_text (/ ss lst ent)
(setq ss (ssget "X" (list (cons 8 "hoten")(cons 0 "TEXT")))
lst (ss2ent ss))
(if (not (tblsearch "style" "vnarial"))
(command "-style" "vnarial" "" "" "" "" "" "" "") )
(repeat (length lst)
(setq ent (entget (car lst))
lst (cdr lst)
ent (subst (cons 40 5) (assoc 40 ent) ent)
ent (subst (cons 7 "vnarial") (assoc 7 ent) ent)
)
(entmod ent)
)
(princ)
)

(defun ss2ent (ss / sodt index lstent)
(setq sodt (if ss (sslength ss) 0)
index 0
)
(repeat sodt
(setq ent (ssname ss index)
index (1+ index)
lstent (cons ent lstent)
)
)
(reverse lstent)
)


  • 0

#7 cadthanyeu

cadthanyeu

    biết zoom

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

Đã gửi 17 October 2008 - 09:22 AM

Bạn thử LISP này xem sao :

;;;; Doi thuoc tinh chieu cao va kieu TEXT 
(defun C:doi_text (/ ss lst ent)
(setq ss (ssget "X" (list (cons 8 "hoten")(cons 0 "TEXT")))
lst (ss2ent ss))
(if (not (tblsearch "style" "vnarial"))
(command "-style" "vnarial" "" "" "" "" "" "" "") )
(repeat (length lst)
(setq ent (entget (car lst))
lst (cdr lst)
ent (subst (cons 40 5) (assoc 40 ent) ent)
ent (subst (cons 7 "vnarial") (assoc 7 ent) ent)
)
(entmod ent)
)
(princ)
)

(defun ss2ent (ss / sodt index lstent)
(setq sodt (if ss (sslength ss) 0)
index 0
)
(repeat sodt
(setq ent (ssname ss index)
index (1+ index)
lstent (cons ent lstent)
)
)
(reverse lstent)
)


  • 0

#8 cadthanyeu

cadthanyeu

    biết zoom

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

Đã gửi 17 October 2008 - 09:23 AM

Bạn ơi lisp này sao tôi chạy không được,bạn xem lại giúp tôi nhé.
  • 0

#9 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1435 Bài viết
Điểm đánh giá: 1426 (rất tốt)

Đã gửi 17 October 2008 - 10:47 AM

Bạn ơi lisp này sao tôi chạy không được,bạn xem lại giúp tôi nhé.


Khi chạy, CAD thông báo lỗi gì hả bạn ?

Bạn kiểm tra : bản vẽ của bạn có Đối tượng Text trên lớp Hoten không ?
  • 0