Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
2 replies to this topic

#1 khanh phong

khanh phong

    biết zoom

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

Đã gửi 05 December 2016 - 08:19 PM

(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.


  • 0

#2 Bee

Bee

    biết lệnh chamfer

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

Đã gửi 05 December 2016 - 08:39 PM

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)
)


  • 1

#3 khanh phong

khanh phong

    biết zoom

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

Đã gửi 05 December 2016 - 09:21 PM

 

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 !


  • 0