Đến nội dung


Hình ảnh
- - - - -

[Nhờ chỉnh sửa]lisp đánh số thứ tự


  • Please log in to reply
5 replies to this topic

#1 t031285

t031285

    biết vẽ rectang

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

Đã gửi 08 September 2011 - 08:49 PM

Mình down trên diễn đàn 1lisp đánh số thứ tự rất hay nhưng khi tạo ra số thứ tự nó mặc định lấy text style standard ,về layer thì lấy theo layer hiện hành nhưng trong mục color control không phải là bylayer mà là màu 150.Nay e nhờ các bác sửa giúp lisp sẽ lấy text style text style hiện hành và layer thì sẽ là layer TEXT đã có sẵn trên bản vẽ.

(defun c:thutu(/ H I KC PHUONG PT SOCUOI SODAU TDX TDY)
(setq h (getreal "\n Co chu: "))
(setq pt (getpoint "\n Chon vi tri danh so: "))
(setq sodau (getreal "\n So thu tu dau: "))
(setq socuoi (getreal "\n So thu tu cuoi: "))
(setq phuong (getstring "\n Phuong <X,Y>: "))
(setq kc (getreal "\n Khoang cach giua cac so: "))
(setq i sodau)
(while (<= i socuoi)
(if (= i sodau)
(progn
(setq tdy (cadr pt))
(setq tdx (car pt))
(entmake(list(cons 0 "TEXT")(cons 10 (list tdx tdy 0.0))(cons 40 h)(cons 62 150)(cons 1 (rtos i 2 0))))
)
(if (or (= phuong "x")(= phuong "X"))
(progn
(setq tdx (+ tdx kc))
(entmake(list(cons 0 "TEXT")(cons 10 (list tdx tdy 0.0))(cons 40 h)(cons 62 150)(cons 1 (rtos i 2 0))))
)
(progn
(setq tdy (- tdy kc))
(entmake(list(cons 0 "TEXT")(cons 10 (list tdx tdy 0.0))(cons 40 h)(cons 62 150)(cons 1 (rtos i 2 0))))
)
)
)
(setq i (1+ i))
)
)

Chân thành cảm ơn trước.
  • 0

#2 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5685 Bài viết
Điểm đánh giá: 2606 (tuyệt vời)

Đã gửi 08 September 2011 - 09:31 PM

Bạn xóa hết đoạn này đi :(cons 62 150)
  • 1

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#3 t031285

t031285

    biết vẽ rectang

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

Đã gửi 08 September 2011 - 09:38 PM

Bạn xóa hết đoạn này đi :(cons 62 150)

Còn về TEXT STYLE và gán các số thứ tự này thành layer có tên là TEXT nữa.Mong các bác quan tâm giúp đỡ.
  • 0

#4 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5685 Bài viết
Điểm đánh giá: 2606 (tuyệt vời)

Đã gửi 08 September 2011 - 10:06 PM

Mình không còn CAD ở đây nên nói bo vậy. bạn thêm đoạn này :

(if (not (tblsearch "Layer" "Text"))(command "-layer" "N" "Text" ""))
(setq sty (getvar "Textstyle"))

vào dưới dòng này :

(defun c:thutu(/ H I KC PHUONG PT SOCUOI SODAU TDX TDY)

Rồi thêm vào đằng sau tất cả đoạn

(cons 0 "TEXT")

đoạn này :

(cons 7 sty)(cons 8 "Text")


  • 1

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#5 t031285

t031285

    biết vẽ rectang

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

Đã gửi 09 September 2011 - 09:03 AM

Mình không còn CAD ở đây nên nói bo vậy. bạn thêm đoạn này :

vào dưới dòng này :

Rồi thêm vào đằng sau tất cả đoạnđoạn này :

Mình đã làm theo như bạn nói nhưng mở cad lên là tại con trỏ chuột hiện dòng Requires numeric valua.command: Xong cad báo lỗi rồi thoát ra luôn.Dưới đây là đoạn lisp mình đã sửa theo như bạn nói:
 
(defun c:thutu(/ H I KC PHUONG PT SOCUOI SODAU TDX TDY)
if (not (tblsearch "Layer" "S. TEXT"))(command "-layer" "N" "S. TEXT" ""))
(setq sty (getvar "Textstyle"))
(setq h (getreal "\n Co chu: "))
(setq pt (getpoint "\n Chon vi tri danh so: "))
(setq sodau (getreal "\n So thu tu dau: "))
(setq socuoi (getreal "\n So thu tu cuoi: "))
(setq phuong (getstring "\n Phuong <X,Y>: "))
(setq kc (getreal "\n Khoang cach giua cac so: "))
(setq i sodau)
(while (<= i socuoi)
(if (= i sodau)
(progn
(setq tdy (cadr pt))
(setq tdx (car pt))
(entmake(list(cons 0 "TEXT")(cons 7 sty)(cons 8 "S. TEXT")(cons 10 (list tdx tdy 0.0))(cons 40 h)(cons 1 (rtos i 2 0))))
)
(if (or (= phuong "x")(= phuong "X"))
(progn
(setq tdx (+ tdx kc))
(entmake(list(cons 0 "TEXT")(cons 7 sty)(cons 8 "S. TEXT")(cons 10 (list tdx tdy 0.0))(cons 40 h)(cons 1 (rtos i 2 0))))
)
(progn
(setq tdy (- tdy kc))
(entmake(list(cons 0 "TEXT")(cons 7 sty)(cons 8 "S. TEXT")(cons 10 (list tdx tdy 0.0))(cons 40 h)(cons 1 (rtos i 2 0))))
)
)
)
(setq i (1+ i))
)
)

  • 0

#6 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 09 September 2011 - 10:46 AM

Mình đã làm theo như bạn nói nhưng mở cad lên là tại con trỏ chuột hiện dòng Requires numeric valua.command: Xong cad báo lỗi rồi thoát ra luôn.Dưới đây là đoạn lisp mình đã sửa theo như bạn nói:


(defun c:thutu(/ H I KC PHUONG PT SOCUOI SODAU TDX TDY)
if (not (tblsearch "Layer" "S. TEXT"))(command "-layer" "N" "S. TEXT" ""))
(setq sty (getvar "Textstyle"))
(setq h (getreal "\n Co chu: "))
(setq pt (getpoint "\n Chon vi tri danh so: "))
(setq sodau (getreal "\n So thu tu dau: "))
(setq socuoi (getreal "\n So thu tu cuoi: "))
(setq phuong (getstring "\n Phuong <X,Y>: "))
(setq kc (getreal "\n Khoang cach giua cac so: "))
(setq i sodau)
(while (<= i socuoi)
(if (= i sodau)
(progn
(setq tdy (cadr pt))
(setq tdx (car pt))
(entmake(list(cons 0 "TEXT")(cons 7 sty)(cons 8 "S. TEXT")(cons 10 (list tdx tdy 0.0))(cons 40 h)(cons 1 (rtos i 2 0))))
)
(if (or (= phuong "x")(= phuong "X"))
(progn
(setq tdx (+ tdx kc))
(entmake(list(cons 0 "TEXT")(cons 7 sty)(cons 8 "S. TEXT")(cons 10 (list tdx tdy 0.0))(cons 40 h)(cons 1 (rtos i 2 0))))
)
(progn
(setq tdy (- tdy kc))
(entmake(list(cons 0 "TEXT")(cons 7 sty)(cons 8 "S. TEXT")(cons 10 (list tdx tdy 0.0))(cons 40 h)(cons 1 (rtos i 2 0))))
)
)
)
(setq i (1+ i))
)
)

Trước hàm if phải có dấu (
Bạn bị lỗi này :
(if (not (tblsearch "Layer" "S. TEXT"))(command "-layer" "N" "S. TEXT" ""))
....
  • 2