Đến nội dung


Hình ảnh
- - - - -

Bỏ số 0 đằng sau dấu phẩy khi thực hiện lisp


  • Please log in to reply
17 replies to this topic

#1 hatieu

hatieu

    biết vẽ pline

  • Advance Member
  • PipPip
  • 67 Bài viết
Điểm đánh giá: 13 (tàm tạm)

Đã gửi 03 November 2010 - 10:09 AM

Đây là đoạn lisp của em nhờ các bác sửa giúp em. Em không biết làm thế nào để hết số 0 đằng sau dấu phẩy được.
(defun dtr (a)
(* pi (/ a 180.0)))
;=====================================================
(defun c:hcn (/ ptc w h dx dy pt1 pt2 pt3 p0 p1 p2 p3 p4 txt siz e1 e2 ten)
(graphscr)
(reset)
(if (= siz nil)
(setq siz (getreal "\nEnter drawing scale:"))
)
(setq ptc (getpoint "\nCorner point:"))
(setq dx (getreal "Enter horizontal dimension of box:"))
(setq dy (getreal "Enter vertical dimension of box:"))
(setq ten (strcase (getstring "Enter name glass:")))
(setq w (- dx 15 )) ;Sửa giúp em đoạn này
(setq h (- dy 15 ));Sửa giúp em đoạn này
(setq pt1 (polar ptc (dtr 0) dx))
(setq pt2 (polar pt1 (dtr 90) dy))
(setq pt3 (polar pt2 (dtr 180) dx))
(setq p0 (polar ptc (dtr 0) (/ dx 2)))
(setq p1 (polar p0 (dtr 90) (/ dy 2)))
(setq p4 (polar p1 (dtr 90) (/ dy 10)))
(setq p2 (polar p4 (dtr 180) (/ dy 5)))
(setq p3 (polar p4 (dtr 0) (/ dy 5)))
(setq txt (* siz 3))
(command "pline" ptc pt1 pt2 pt3 "c")
;============================================
(setq e1 (entlast))
(prompt "_.change")
(command "_.change" e1 "" "p" "c" "3" "")
(command "offset" 7.5 e1 pause "")
(setq e2 (entlast))
(command "erase" e1 "")
;============================================
(command "layer" "m" "text" "c" "7" "" "")
(command "layer" "s" "text" "" "")
(command "text" "j" "mc" p1 txt 0 ten )
(command "layer" "s" "text" "")
(command "text" "j" "mc" p2 txt 0 w \e) ;Sửa giúp em đoạn này
(command "layer" "s" "text" "")
(command "text" "j" "mc" p3 txt 0 h \e) ;Sửa giúp em đoạn này
(command "layer" "s" "text" "")
(command "text" "j" "mc" p4 txt 0 "X" )
(reset1)
(princ)
)
;-----------------------------------
(defun reset()
(setq old_osm (getvar "osmode"))
(setq old_lay (getvar "clayer"))
(setq old_txt (getvar "textstyle"))
(setvar "osmode" 0)
(setvar "textstyle" "romanc")
)
;---------------------------------------
(defun reset1()
(setvar "osmode" old_osm)
(setvar "plinewid" 0.0)
(setvar "textstyle" old_txt)
(command "layer" "s" old_lay "")
)

Đây là kết quả khi thực hiện lệnh lisp này
Hình đã gửi
  • 0
Công ty cổ phần đầu tư và xây dựng AGA
Chuyên tư vấn, cung cấp, thi công hệ vách dựng nhôm kính khổ lớn, cửa nhôm kính,
kính cường lực, vách ngăn, lan can, cầu thang kinh, lam nhôm chăn nắng.
Hot: 0984.985.119

#2 ketui

ketui

    biết vẽ arc

  • Members
  • PipPip
  • 43 Bài viết
Điểm đánh giá: 12 (tàm tạm)

Đã gửi 03 November 2010 - 10:14 AM

Đây là đoạn lisp của em nhờ các bác sửa giúp em. Em không biết làm thế nào để hết số 0 đằng sau dấu phẩy được.

Nếu tự viết lisp thì tìm trên cadviet từ khóa DIMZIN để học lun cách dùng nha.
  • 0

#3 nguyentuyen6

nguyentuyen6

    biết lệnh chamfer

  • Advance Member
  • PipPipPipPip
  • 213 Bài viết
Điểm đánh giá: 124 (tàm tạm)

Đã gửi 03 November 2010 - 10:27 AM

Bạn sửa dòng này là đc:
(command "text" "j" "mc" p2  txt 0 (rtos w 2 0) \e) ;Sá»­a giúp em Ä‘oạn này
      (command "layer" "s" "text" "")
      (command "text" "j" "mc" p3  txt 0 (rtos h 2 0) \e) ;Sá»­a giúp em Ä‘oạn này
  • 2

Lisp In bản vẽ hàng loạt:
http://www.cadviet.c...ndpost&p=139860


#4 hatieu

hatieu

    biết vẽ pline

  • Advance Member
  • PipPip
  • 67 Bài viết
Điểm đánh giá: 13 (tàm tạm)

Đã gửi 03 November 2010 - 11:17 AM

Ok thanks nguyentuyen6. Mình cũng đã nghĩ đến việc dùng hàm rtos nhưng chưa hiểu cấu trúc.Nhưng bây giờ thì mình đã hiểu.
Bạn giúp mình đoạn này để tạo Block.
(setq e1 (entlast))
(prompt "_.change")
(command "_.change" e1 "" "p" "c" "3" "")
(command "offset" 7.5 e1 pause "")
(setq e2 (entlast))
(command "erase" e1 "")
;============================================
(command "layer" "m" "text" "c" "7" "" "")
(command "layer" "s" "text" "" "")
(command "text" "j" "mc" p1 txt 0 ten )
(setq e3 (entlast))
(command "layer" "s" "text" "")
(command "text" "j" "mc" p2 txt 0 (rtos w 2 1) \e)
(setq e4 (entlast))
(command "layer" "s" "text" "")
(command "text" "j" "mc" p3 txt 0 (rtos h 2 1) \e)
(setq e5 (entlast))
(command "layer" "s" "text" "")
(command "text" "j" "mc" p4 txt 0 "X" )
(setq e6 (entlast))
(command "block" ?????????????????????????????)

Trong đó: ten1 là tên của block=ten(wxh), p1 là điểm chèn, e2 e3 e4 e5 e6 là các đối tượng chọn để tạo block
  • 0
Công ty cổ phần đầu tư và xây dựng AGA
Chuyên tư vấn, cung cấp, thi công hệ vách dựng nhôm kính khổ lớn, cửa nhôm kính,
kính cường lực, vách ngăn, lan can, cầu thang kinh, lam nhôm chăn nắng.
Hot: 0984.985.119

#5 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 03 November 2010 - 11:45 AM

Ok thanks nguyentuyen6. Mình cũng đã nghĩ đến việc dùng hàm rtos nhưng chưa hiểu cấu trúc.Nhưng bây giờ thì mình đã hiểu.
Bạn giúp mình đoạn này để tạo Block.
Trong đó: ten1 là tên của block=ten(wxh), p1 là điểm chèn, e2 e3 e4 e5 e6 là các đối tượng chọn để tạo block

Chào bạn hatieu,
Bạn thử cái này nhé.
(command "-block" (getstring T "\n Nhap ten block: ") p1 e2 e3 e4 e5 e6 "")
  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#6 nguyentuyen6

nguyentuyen6

    biết lệnh chamfer

  • Advance Member
  • PipPipPipPip
  • 213 Bài viết
Điểm đánh giá: 124 (tàm tạm)

Đã gửi 03 November 2010 - 11:51 AM

Ok thanks nguyentuyen6. Mình cũng đã nghĩ đến việc dùng hàm rtos nhưng chưa hiểu cấu trúc.Nhưng bây giờ thì mình đã hiểu.
Bạn giúp mình đoạn này để tạo Block.
.....

Trong đó: ten1 là tên của block=ten(wxh), p1 là điểm chèn, e2 e3 e4 e5 e6 là các đối tượng chọn để tạo block


đây bạn ah:
Bạn thay cả đoạn sau nhé:

;============================================
      (setq e1 (entlast))
    (prompt "_.change")
      (command "_.change" e1 "" "p" "c" "3" "")
      (command "offset" 7.5 e1 pause "")
      (setq e2 (entlast))
      (command "erase" e1 "")
(command "layer" "m" "text" "c" "7" "" "")
(command "layer" "s" "text" "" "")
(command "text" "j" "mc" p1 txt 0 ten )
(setq e3 (entlast))
(command "layer" "s" "text" "")
(command "text" "j" "mc" p2 txt 0 (rtos w 2 1) \e)
(setq e4 (entlast))
(command "layer" "s" "text" "")
(command "text" "j" "mc" p3 txt 0 (rtos h 2 1) \e)
(setq e5 (entlast))
(command "layer" "s" "text" "")
(command "text" "j" "mc" p4 txt 0 "X" )
(setq e6 (entlast))
(command "_.BLOCK" ten pt1 e2 e3 e4 e5 e6 ""
"_.INSERT" ten pt1 1 1 0)

    (reset1)
        (princ)
  )
;-----------------------------------

  • 0

Lisp In bản vẽ hàng loạt:
http://www.cadviet.c...ndpost&p=139860


#7 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 03 November 2010 - 01:20 PM

đây bạn ah:

(command "_.BLOCK" e2 e3 e4 e5 e6 "" p1 ten ""
"_.INSERT" ten p1 1 1 0)

Góp ý với bác Bình cùng bạn nguyentuyen va hattieu :
Nên kiểm tra TenBlock đã có trong bản vẽ chưa đã rồi mới tạo Block?
Nếu Tên Block đã tồn tại trong bản vẽ thì cả 2 Lísp của bác Bình và bạn nguyen tuyen sẽ.....

Kiểm tra TenBlock đã có trong bản vẽ chưa bằng hàm tblsearch
  • 3

#8 hatieu

hatieu

    biết vẽ pline

  • Advance Member
  • PipPip
  • 67 Bài viết
Điểm đánh giá: 13 (tàm tạm)

Đã gửi 03 November 2010 - 01:24 PM

Chào bạn hatieu,
Bạn thử cái này nhé.
(command "-block" (getstring T "\n Nhap ten block: ") p1 e2 e3 e4 e5 e6 "")

Ở đây em muốn nhập tên block tự động bằng ten1 (tự động nhập) em dùng hàm strcat để nối chuỗi như bên dưới.
Và em thêm phần sau "insert" ten1 p1 1 1 0 như của Nguyentuyen6
(setq ten1 (strcat ten "-" "("(rtos w 2 1) "-" (rtos h 2 1)")"))
(command "-block" ten1 p1 e2 e3 e4 e5 e6 "" "insert" ten1 p1 1 1 0 )
Và đây là toàn bộ chương chỉnh em mới sửa xong thấy có vẻ như ổn ổn rùi, các bác xem phần nào chưa được hay lắm nhờ các bác tư vấn.
(defun dtr (a)
(* pi (/ a 180.0)))
;=====================================================
(defun c:hcn (/ ptc w h dx dy deta_gap pt1 pt2 pt3 p0 p1 p2 p3 p4 txt siz e1 e2 e3 e4 e5 e6 ten ten1)
(graphscr)
(reset)
(if (= siz nil)
(setq siz (getreal "\nEnter drawing scale:"))
)
(setq ptc (getpoint "\nCorner point:"))
(setq dx (getreal "Enter horizontal dimension of box:"))
(setq dy (getreal "Enter vertical dimension of box:"))
(setq ten (strcase (getstring "Enter name glass:")))
(setq w (- dx 15 ))
(setq h (- dy 15 ))
(setq pt1 (polar ptc (dtr 0) dx))
(setq pt2 (polar pt1 (dtr 90) dy))
(setq pt3 (polar pt2 (dtr 180) dx))
(setq p0 (polar ptc (dtr 0) (/ dx 2)))
(setq p1 (polar p0 (dtr 90) (/ dy 2)))
(setq p4 (polar p1 (dtr 90) (/ dy 10)))
(setq p2 (polar p4 (dtr 180) (/ dy 5)))
(setq p3 (polar p4 (dtr 0) (/ dy 5)))
(setq txt (* siz 3))
(command "pline" ptc pt1 pt2 pt3 "c")
;============================================
(setq e1 (entlast))
(prompt "_.change")
(command "_.change" e1 "" "p" "c" "3" "")
(command "offset" 7.5 e1 pause "")
(setq e2 (entlast))
(command "erase" e1 "")
;============================================
(command "layer" "m" "text" "c" "7" "" "")
(command "layer" "s" "text" "" "")
(command "text" "j" "mc" p1 txt 0 ten )
(setq e3 (entlast))
(command "layer" "s" "text" "")
(command "text" "j" "mc" p2 txt 0 (rtos w 2 1) \e)
(setq e4 (entlast))
(command "layer" "s" "text" "")
(command "text" "j" "mc" p3 txt 0 (rtos h 2 1) \e)
(setq e5 (entlast))
(command "layer" "s" "text" "")
(command "text" "j" "mc" p4 txt 0 "X" )
(setq e6 (entlast))
(setq ten1 (strcat ten "-" "("(rtos w 2 1) "-" (rtos h 2 1)")"))
(command "-block" ten1 p1 e2 e3 e4 e5 e6 "" "insert" ten1 p1 1 1 0 )
(reset1)
(princ)
)
;-----------------------------------
(defun reset()
(setq old_osm (getvar "osmode"))
(setq old_lay (getvar "clayer"))
(setq old_txt (getvar "textstyle"))
(setvar "osmode" 0)
(setvar "textstyle" "romanc")
)
;---------------------------------------
(defun reset1()
(setvar "osmode" old_osm)
(setvar "plinewid" 0.0)
(setvar "textstyle" old_txt)
(command "layer" "s" old_lay "")
)
Và kết quả khi thực hiện
Hình đã gửi
  • 0
Công ty cổ phần đầu tư và xây dựng AGA
Chuyên tư vấn, cung cấp, thi công hệ vách dựng nhôm kính khổ lớn, cửa nhôm kính,
kính cường lực, vách ngăn, lan can, cầu thang kinh, lam nhôm chăn nắng.
Hot: 0984.985.119

#9 hatieu

hatieu

    biết vẽ pline

  • Advance Member
  • PipPip
  • 67 Bài viết
Điểm đánh giá: 13 (tàm tạm)

Đã gửi 03 November 2010 - 01:37 PM

Góp ý với bác Bình cùng bạn nguyentuyen va hattieu :
Nên kiểm tra TenBlock đã có trong bản vẽ chưa đã rồi mới tạo Block?
Nếu Tên Block đã tồn tại trong bản vẽ thì cả 2 Lísp của bác Bình và bạn nguyen tuyen sẽ.....

Kiểm tra TenBlock đã có trong bản vẽ chưa bằng hàm tblsearch


Cảm ơn ý kiến của bác. Ok nếu dùng hàm đó kiểm tra mà chưa có thì ok.
Còn nếu mà có rùi thì em muốn nó ghi đè lên block đã có.Vậy thì làm thế nào nhỉ các bác.
Em mới học lisp nên còn nhiều bỡ ngỡ mong các bác giúp.
  • 0
Công ty cổ phần đầu tư và xây dựng AGA
Chuyên tư vấn, cung cấp, thi công hệ vách dựng nhôm kính khổ lớn, cửa nhôm kính,
kính cường lực, vách ngăn, lan can, cầu thang kinh, lam nhôm chăn nắng.
Hot: 0984.985.119

#10 nguyentuyen6

nguyentuyen6

    biết lệnh chamfer

  • Advance Member
  • PipPipPipPip
  • 213 Bài viết
Điểm đánh giá: 124 (tàm tạm)

Đã gửi 03 November 2010 - 01:46 PM

Cảm ơn ý kiến của bác. Ok nếu dùng hàm đó kiểm tra mà chưa có thì ok.
Còn nếu mà có rùi thì em muốn nó ghi đè lên block đã có.Vậy thì làm thế nào nhỉ các bác.
Em mới học lisp nên còn nhiều bỡ ngỡ mong các bác giúp.

Hihi,Cảm ơn bác Tue đã nhắc nhở e

Bạn thêm hàm kiểm tra này nhé:

(if (not(tblsearch "block" ten) )
(command "_.BLOCK" ten pt1 e2 e3 e4 e5 e6 ""
"_.INSERT" ten pt1 1 1 0)
(alert "\n Da trung ten Block")
)

  • 0

Lisp In bản vẽ hàng loạt:
http://www.cadviet.c...ndpost&p=139860


#11 phamngoctukts

phamngoctukts

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1107 Bài viết
Điểm đánh giá: 696 (tốt)

Đã gửi 03 November 2010 - 01:46 PM

Cảm ơn ý kiến của bác. Ok nếu dùng hàm đó kiểm tra mà chưa có thì ok.
Còn nếu mà có rùi thì em muốn nó ghi đè lên block đã có.Vậy thì làm thế nào nhỉ các bác.
Em mới học lisp nên còn nhiều bỡ ngỡ mong các bác giúp.

Muốn đè lên block đã có tên rồi thì bạn thêm "y" vào đây (command "-block" ten1 p1 e2 e3 e4 e5 e6 "" "insert" ten1 "y" p1 1 1 0 )
  • 0
Tất cả vì sự phát triển của diễn đàn ...
Cám ơn đừng nói lời suông mà hãy nhấn Hình đã gửi!

#12 hatieu

hatieu

    biết vẽ pline

  • Advance Member
  • PipPip
  • 67 Bài viết
Điểm đánh giá: 13 (tàm tạm)

Đã gửi 03 November 2010 - 02:02 PM

Hihi,Cảm ơn bác Tue đã nhắc nhở e

Bạn thêm hàm kiểm tra này nhé:

(if (not(tblsearch "block" ten) )
(command "_.BLOCK" ten pt1 e2 e3 e4 e5 e6 ""
"_.INSERT" ten pt1 1 1 0)
(alert "\n Da trung ten Block")
)

Đoạn này của bác Nguyentuyen6 thì kiểm tra ok rùi nhưng không tạo được block.
Em muốn nó kiểm tra rùi nếu trùng tên thì vẫn thực hiện lệnh tạo block trùng tên với block đã có.
Như đoạn (command "-block" ten1 p1 e2 e3 e4 e5 e6 "" "insert" ten1 "y" p1 1 1 0 ) của bác phamngoctukts em thử rùi nhưng vẫn không được.
Việc em tao block này là nhưng tấm có cùng kích thước thì phải cùng tên để sau này em dùng lệnh thống kê block để thống kê tấm.
  • 0
Công ty cổ phần đầu tư và xây dựng AGA
Chuyên tư vấn, cung cấp, thi công hệ vách dựng nhôm kính khổ lớn, cửa nhôm kính,
kính cường lực, vách ngăn, lan can, cầu thang kinh, lam nhôm chăn nắng.
Hot: 0984.985.119

#13 nguyentuyen6

nguyentuyen6

    biết lệnh chamfer

  • Advance Member
  • PipPipPipPip
  • 213 Bài viết
Điểm đánh giá: 124 (tàm tạm)

Đã gửi 03 November 2010 - 02:13 PM

Bạn thay cái này nhé:

(if (not(tblsearch "block" ten1) )
(command "_.BLOCK" ten1 p1 e2 e3 e4 e5 e6 ""
"_.INSERT" ten1 p1 1 1 0)
(progn (command "_.BLOCK" ten1 "y" p1 e2 e3 e4 e5 e6 ""
"_.INSERT" ten1 p1 1 1 0)
(alert "\nDa ghi de len block trung ten")
)
)

  • 1

Lisp In bản vẽ hàng loạt:
http://www.cadviet.c...ndpost&p=139860


#14 phamngoctukts

phamngoctukts

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1107 Bài viết
Điểm đánh giá: 696 (tốt)

Đã gửi 03 November 2010 - 02:15 PM

Đoạn này của bác Nguyentuyen6 thì kiểm tra ok rùi nhưng không tạo được block.
Em muốn nó kiểm tra rùi nếu trùng tên thì vẫn thực hiện lệnh tạo block trùng tên với block đã có.
Như đoạn (command "-block" ten1 p1 e2 e3 e4 e5 e6 "" "insert" ten1 "y" p1 1 1 0 ) của bác phamngoctukts em thử rùi nhưng vẫn không được.
Việc em tao block này là nhưng tấm có cùng kích thước thì phải cùng tên để sau này em dùng lệnh thống kê block để thống kê tấm.

Xin lỗi mìh nhầm bạn thêm "y" vào đây (command "-block" ten1 "y" p1 e2 e3 e4 e5 e6 "" "insert" ten1 p1 1 1 0 )
  • 1
Tất cả vì sự phát triển của diễn đàn ...
Cám ơn đừng nói lời suông mà hãy nhấn Hình đã gửi!

#15 leo_85

leo_85

    biết lệnh move

  • Members
  • PipPipPip
  • 123 Bài viết
Điểm đánh giá: 39 (tàm tạm)

Đã gửi 03 November 2010 - 04:40 PM

Đây là đoạn lisp của em nhờ các bác sửa giúp em. Em không biết làm thế nào để hết số 0 đằng sau dấu phẩy được.

(defun dtr (a)
(* pi (/ a 180.0)))
;=====================================================
(defun c:hcn (/ ptc w h dx dy pt1 pt2 pt3 p0 p1 p2 p3 p4 txt siz e1 e2 ten)
(graphscr)
(reset)
(if (= siz nil)
(setq siz (getreal "\nEnter drawing scale:"))
)
(setq ptc (getpoint "\nCorner point:"))
(setq dx (getreal "Enter horizontal dimension of box:"))
(setq dy (getreal "Enter vertical dimension of box:"))
(setq ten (strcase (getstring "Enter name glass:")))
(setq w (- dx 15 ));Sửa giúp em đoạn này
(setq h (- dy 15 ));Sửa giúp em đoạn này
(setq pt1 (polar ptc (dtr 0) dx))
(setq pt2 (polar pt1 (dtr 90) dy))
(setq pt3 (polar pt2 (dtr 180) dx))
(setq p0 (polar ptc (dtr 0) (/ dx 2)))
(setq p1 (polar p0 (dtr 90) (/ dy 2)))
(setq p4 (polar p1 (dtr 90) (/ dy 10)))
(setq p2 (polar p4 (dtr 180) (/ dy 5)))
(setq p3 (polar p4 (dtr 0) (/ dy 5)))
(setq txt (* siz 3))
(command "pline" ptc pt1 pt2 pt3 "c")
;============================================
(setq e1 (entlast))
(prompt "_.change")
(command "_.change" e1 "" "p" "c" "3" "")
(command "offset" 7.5 e1 pause "")
(setq e2 (entlast))
(command "erase" e1 "")
;============================================
(command "layer" "m" "text" "c" "7" "" "")
(command "layer" "s" "text" "" "")
(command "text" "j" "mc" p1 txt 0 ten )
(command "layer" "s" "text" "")
(command "text" "j" "mc" p2 txt 0 w \e);Sửa giúp em đoạn này
(command "layer" "s" "text" "")
(command "text" "j" "mc" p3 txt 0 h \e);Sửa giúp em đoạn này
(command "layer" "s" "text" "")
(command "text" "j" "mc" p4 txt 0 "X" )
(reset1)
(princ)
)
;-----------------------------------
(defun reset()
(setq old_osm (getvar "osmode"))
(setq old_lay (getvar "clayer"))
(setq old_txt (getvar "textstyle"))
(setvar "osmode" 0)
(setvar "textstyle" "romanc")
)
;---------------------------------------
(defun reset1()
(setvar "osmode" old_osm)
(setvar "plinewid" 0.0)
(setvar "textstyle" old_txt)
(command "layer" "s" old_lay "")
)

Đây là kết quả khi thực hiện lệnh lisp này
Hình đã gửi

Dùng lệnh find thay thế vẫn có thể dùng loại bỏ được mà bạn
  • 0
Hãy ước trọn 1 điều ước,cho dù là nhỏ bé

......................................>>>>>

#16 nguyentuyen6

nguyentuyen6

    biết lệnh chamfer

  • Advance Member
  • PipPipPipPip
  • 213 Bài viết
Điểm đánh giá: 124 (tàm tạm)

Đã gửi 03 November 2010 - 05:13 PM

Dùng lệnh find thay thế vẫn có thể dùng loại bỏ được mà bạn

Hì. Bạn vui tính ghê. Nếu nó có nhiều cái khác nhau thì cũng phải tìm từng cái à.
  • 0

Lisp In bản vẽ hàng loạt:
http://www.cadviet.c...ndpost&p=139860


#17 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 03 November 2010 - 05:13 PM

Góp ý với bác Bình cùng bạn nguyentuyen va hattieu :
Nên kiểm tra TenBlock đã có trong bản vẽ chưa đã rồi mới tạo Block?
Nếu Tên Block đã tồn tại trong bản vẽ thì cả 2 Lísp của bác Bình và bạn nguyen tuyen sẽ.....

Kiểm tra TenBlock đã có trong bản vẽ chưa bằng hàm tblsearch

Tương tự như thế, bạn hatieu nên kiểm tra là textstyle có Style "romanc" chưa?
Vì nếu với 1 bản vẽ mới chưa có Style "romanc" thì Lisp sẽ không chạy được.
Thể hiện ở dòng code này của bạn :
(setvar "textstyle" "romanc")

Bạn kiểm tra bản vẽ có Style "romanc" chưa? -> Sử dụng hàm tblsearch
Nếu có rồi thì (setvar "textstyle" "romanc")
Nếu chưa có thì phải tạo ra nó và đương nhiên khi tạo ra nó thì nó đã là textstyle hiện hành :)
  • 0

#18 hatieu

hatieu

    biết vẽ pline

  • Advance Member
  • PipPip
  • 67 Bài viết
Điểm đánh giá: 13 (tàm tạm)

Đã gửi 04 November 2010 - 08:19 AM

Tương tự như thế, bạn hatieu nên kiểm tra là textstyle có Style "romanc" chưa?
Vì nếu với 1 bản vẽ mới chưa có Style "romanc" thì Lisp sẽ không chạy được.
Thể hiện ở dòng code này của bạn :
(setvar "textstyle" "romanc")

Bạn kiểm tra bản vẽ có Style "romanc" chưa? -> Sử dụng hàm tblsearch
Nếu có rồi thì (setvar "textstyle" "romanc")
Nếu chưa có thì phải tạo ra nó và đương nhiên khi tạo ra nó thì nó đã là textstyle hiện hành :)


Vâng nếu bản vẽ mà không có style "romanc" và không có layer "text" thì lisp sẽ không thực hiện
Nhưng với em trước khi tạo bản vẽ mới thì em đã cho tự động tạo các style và layer cần thiết rùi.
Cảm ơn bác đã góp ý.
  • 0
Công ty cổ phần đầu tư và xây dựng AGA
Chuyên tư vấn, cung cấp, thi công hệ vách dựng nhôm kính khổ lớn, cửa nhôm kính,
kính cường lực, vách ngăn, lan can, cầu thang kinh, lam nhôm chăn nắng.
Hot: 0984.985.119