Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
Đăng nhập để thực hiện theo  
khanh phong

Nhờ Sửa Giúp Lisp Của Att Text Vừa Insert

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

(defun C:gra( / p1 st ss ht entx )
(setq osm (getvar "osmode"))
(setq uni (getvar "insunits"))
(setq atd (getvar "attdia"));1
(ACET-ERROR-INIT (LIST (LIST "OSMODE" 0) T))
(setvar "attdia" 0)
(setvar "insunits" 6)
(setvar "cmdecho" 0)
(vl-cmdf "clayer" "ANNOTATION" )
(initget "G C") (setq st (getkword "\nTEXT: <Grass/Concrete (C. S/W)>: "))
(if (= st "G") (setq st "GRASS")
(if (= st "C") (setq st "CONCRETE (C. S/W)")))
(command "_.insert" "TEXT01" (getpoint "\n\\U+0110i\\U+1EC3m \\U+0111\\U+1EB7t TEXT:") 1 1 (getpoint "\nGóc quay: ") st)

(setq dt (entget (entnext (car (entlast)))))
(entmod (subst (cons 40 0.5) (assoc 40 dt) dt))

(setvar "osmode" osm)
(setvar "insunits" uni)
(setvar "attdia" atd)
(setvar "cmdecho" 1)
(ACET-ERROR-RESTORE)
(princ)
)

Đoạn code trên chỉ insert được text mà không thay đổi được chiều cao text attribute, mong các anh chị chỉnh giúp.

Cám ơn các anh chị 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

Copy lisp mà ko hiểu thì làm sao viết được. Heizzzz.

 

1. Đặt biến cục bộ lung ku tung ---> chứng tỏ copy ko hiểu :D

2. Đặt góc mà lại chọn hàm getpoint----->cũng là ko hiểu :D

3. Xử lý block_att mà trực tiếp ---> cũng là ko hiểu. :D

 

Nghiên cứu học hỏi thêm nhé.

Đây là lisp sửa ở trên ^_^

(defun c:gra (/ atd dt osm p1 st uni)
  (setq osm (getvar "osmode"))
  (setq uni (getvar "insunits"))
  (setq atd (getvar "attdia"))		;1
  (acet-error-init (list (list "OSMODE" 0) t))
  (setvar "attdia" 0)
  (setvar "insunits" 6)
  (setvar "cmdecho" 0)
;;;  (vl-cmdf "clayer" "ANNOTATION")
  (initget "G C")
  (setq st (getkword "\nTEXT: <Grass/Concrete (C. S/W)>: "))
  (if (= st "G")
    (setq st "GRASS")
    (if	(= st "C")
      (setq st "CONCRETE (C. S/W)")
    )
  )
  (command
    "_.insert"
    "TEXT01"
    (setq p1 (getpoint "\n\\U+0110i\\U+1EC3m \\U+0111\\U+1EB7t TEXT:"))
    1
    1
    (angle p1 (getpoint p1 "\nGóc quay: "))
    st
  )

  (setq dt (entnext (entlast)))
  (if (/= (cdr (assoc 0 (entget dt))) "SEQEND")
    (progn
      (entmod
	(subst (cons 40 0.5) (assoc 40 (entget dt)) (entget dt))
      )
      (entupd dt)
    )
  )
  (setvar "osmode" osm)
  (setvar "insunits" uni)
  (setvar "attdia" atd)
  (setvar "cmdecho" 1)
  (acet-error-restore)
  (princ)
)

  • Vote tăng 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

 

Copy lisp mà ko hiểu thì làm sao viết được. Heizzzz.

 

1. Đặt biến cục bộ lung ku tung ---> chứng tỏ copy ko hiểu :D

2. Đặt góc mà lại chọn hàm getpoint----->cũng là ko hiểu :D

3. Xử lý block_att mà trực tiếp ---> cũng là ko hiểu. :D

 

Nghiên cứu học hỏi thêm nhé.

Đây là lisp sửa ở trên ^_^


Cám ơn anh Bee nhiều, anh sửa xong chay rất tốt, em mới làm quen với lisp nên đa số em học theo các bài viết của trên diễn đàn này là nhiều, còn muốn thành thục các cấu trúc lệnh thì còn lâu lắm em mới tới lv đó. Thanks anh nhiều 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

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  

×