Đến nội dung


Hình ảnh
- - - - -

Nhờ Các Bác Sửa Giúp Em Lisp Này Với


  • Please log in to reply
12 replies to this topic

#1 namtrantt206xd

namtrantt206xd

    biết vẽ circle

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

Đã gửi 08 September 2016 - 04:03 PM

Em có download trên diễn đàn lisp tính tổng các đường Line và Polyline:http://www.cadviet.c.../6/89361_tg.lsp

Em muốn sửa Lisp này như sau:

1. Làm tròn 2 số sau dấu phẩy của các đường Line và Polyline trước khi cộng tổng lại

2. Đổi text sang màu 6

Nhờ các bác giúp em với.

;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.c...line-hay-pline/
(defun add_mline ()
(foreach e_record_sub e_record
(cond ((= 10 (car e_record_sub))
(setq pt1 (cdr e_record_sub)
mline_len 0.0
)
)
((= 11 (car e_record_sub))
(setq pt2 (cdr e_record_sub)
mline_len (+ mline_len (distance pt2 pt1))
pt1 pt2
)
)
)
)
(setq tot_len (+ tot_len mline_len))
(ssdel e_name ss)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun C:tg (/ tot_len ss e_name e_record e_type)
(princ "\nCADViet.com © 2007")
(setq tot_len 0.0)
(setq ss (ssget))
(if (null ss)
(exit)
)
(while (> (sslength ss) 0)
(setq e_name (ssname ss 0))
(setq e_record (entget e_name))
(setq e_type (cdr (assoc '0 e_record)))
(cond ((wcmatch e_type "LINE,ARC,CIRCLE,POLYLINE,LWPOLYLINE,ELLIPSE,SPLINE")
(command "lengthen" e_name "")
(setq tot_len (+ tot_len (getvar "PERIMETER")))
(ssdel e_name ss)
)
((wcmatch e_type "MLINE") (add_mline))
(e_type (ssdel e_name ss))
)
)
(prompt (strcat "\nTotal length is: " (rtos tot_len 2 2)))
(princ)
)
(princ "\ntg - free lisp from www.cadviet.com")
(princ)


  • -1

#2 Danh Cong

Danh Cong

    biết lệnh linetype

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

Đã gửi 08 September 2016 - 04:42 PM

Thay (getvar "PERIMETER") bằng (atof (rtos (getvar "PERIMETER") 2 2))

 

Còn đổi màu chữ thì có câu lệnh nào chèn text đâu mà đổi ?


  • 0

             ***  Vô lo - Vô nghĩ - Vô sầu hận  ***

***  Chẳng thương - Chẳng giận - Chẳng đau lòng  ***


#3 namtrantt206xd

namtrantt206xd

    biết vẽ circle

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

Đã gửi 08 September 2016 - 05:05 PM

Thay (getvar "PERIMETER") bằng (atof (rtos (getvar "PERIMETER") 2 2))

 

Còn đổi màu chữ thì có câu lệnh nào chèn text đâu mà đổi ?

Thanks bác nhiều nhé. Nhân tiện bác sửa giúp em cách đổi màu TEXT trong đoạn code sau luôn:

;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.c...line-hay-pline/
(defun add_mline ()
(foreach e_record_sub e_record
(cond ((= 10 (car e_record_sub))
(setq pt1 (cdr e_record_sub)
mline_len 0.0
)
)
((= 11 (car e_record_sub))
(setq pt2 (cdr e_record_sub)
mline_len (+ mline_len (distance pt2 pt1))
pt1 pt2
)
)
)
)
(setq tot_len (+ tot_len mline_len))
(ssdel e_name ss)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun C:tg (/ tot_len ss e_name e_record e_type)
(princ "\nCADViet.com © 2007")
(setq tot_len 0.0)
(setq ss (ssget))
(if (null ss)
(exit)
)
(while (> (sslength ss) 0)
(setq e_name (ssname ss 0))
(setq e_record (entget e_name))
(setq e_type (cdr (assoc '0 e_record)))
(cond ((wcmatch e_type "LINE,ARC,CIRCLE,POLYLINE,LWPOLYLINE,ELLIPSE,SPLINE")
(command "lengthen" e_name "")
(setq tot_len (+ tot_len (atof (rtos (getvar "PERIMETER") 2 2))))
(ssdel e_name ss)
)
((wcmatch e_type "MLINE") (add_mline))
(e_type (ssdel e_name ss))
)
)
(prompt (strcat "\nTotal length is: " (rtos tot_len 2 2)))
(setq te (entget(car(entsel"\n Chon Text de gan ket qua :")))   (setq elst (entget en))
  (setq elst (subst (cons 1 (strcat " " (rtos dtl 2 2))) (assoc 1 elst) elst))
  (setq elst (append elst '((62 . 6))))
  (prin1 elst)
  (entmod elst)
;  (print)
;  (prompt (strcat "\nTotal area : " (rtos dTy_le 2 4)))
;  (print)
;  (setq pt2 (getpoint "\nPoint to write: "))
;  (command "text" pt2 "" "0" (rtos dtl 2 2))
);defun


  • 0

#4 Danh Cong

Danh Cong

    biết lệnh linetype

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

Đã gửi 08 September 2016 - 07:50 PM

Đọc đến cuối đoạn lisp của bác mà em tí thì sặc nước  :D  :D

Bác copy đoạn lisp ở đâu thêm vào thế này ko chạy được đâu.

Đây, gửi lại lisp cho bác.

 

http://www.cadviet.c...41_tgtext_1.lsp


  • 1

             ***  Vô lo - Vô nghĩ - Vô sầu hận  ***

***  Chẳng thương - Chẳng giận - Chẳng đau lòng  ***


#5 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

  • Members
  • PipPipPipPipPipPipPip
  • 665 Bài viết
Điểm đánh giá: 312 (khá)

Đã gửi 08 September 2016 - 08:42 PM

Như vậy người ta gọi là: "Râu bà nọ cắm nhầm vào cằm ông kia" :D


  • 0

#6 namtrantt206xd

namtrantt206xd

    biết vẽ circle

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

Đã gửi 08 September 2016 - 09:10 PM

Đọc đến cuối đoạn lisp của bác mà em tí thì sặc nước  :D  :D

Bác copy đoạn lisp ở đâu thêm vào thế này ko chạy được đâu.

Đây, gửi lại lisp cho bác.

 

http://www.cadviet.c...41_tgtext_1.lsp

Cảm ơn bạn nhiều nhé. tại không hiểu bản chất nên mới copy dán lung tung xem nó có được không.

Lisp bạn sửa giúp mình được rồi nhưng nhờ bạn sửa thêm cho 1 tí nữa là:

1. sau khi chọn Text là gán kết quả luôn không cần phải ấn enter thêm.

2. Text luôn trả về 2 số sau dấu phẩy. ví dụ kết quả là 0.80 thay vì như hiện tại là 0.8

Thanks bạn nhiều nhé!


  • 0

#7 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

  • Members
  • PipPipPipPipPipPipPip
  • 665 Bài viết
Điểm đánh giá: 312 (khá)

Đã gửi 09 September 2016 - 08:12 AM

Thử sử dụng lsp này http://www.cadviet.c...p-udt/?p=391571

Chú ý lệnh TLDIA.

@Danh Cong: Biến DIMZIN.


  • 0

#8 Danh Cong

Danh Cong

    biết lệnh linetype

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

Đã gửi 09 September 2016 - 09:11 AM

Anh @QuocManh giải đáp thắc mắc giùm.

Sử dụng biến Dimzin thấy khác biệt rõ giá trị:   0.....không Trim số "0" đằng sau.  8..... Trim sạch mấy số 0 sau text.

Còn các giá trị khác như 1, 2 ,..... 9 thì sao nhỉ . Em chưa hiểu rõ cách xài cho lắm.  Nhưng cũng hiểu lỗi tại sao lại 0.8 với 0.80 rồi  :D


  • 0

             ***  Vô lo - Vô nghĩ - Vô sầu hận  ***

***  Chẳng thương - Chẳng giận - Chẳng đau lòng  ***


#9 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

  • Members
  • PipPipPipPipPipPipPip
  • 665 Bài viết
Điểm đánh giá: 312 (khá)

Đã gửi 09 September 2016 - 09:22 AM

Bạn xem ở đây (hoặc nếu đã cài Expess tool thì gõ lệnh SYSVDLG và tìm đến DIMZIN):

141736_dimzin.jpg


  • 1

#10 namtrantt206xd

namtrantt206xd

    biết vẽ circle

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

Đã gửi 09 September 2016 - 09:36 AM

Thử sử dụng lsp này http://www.cadviet.c...p-udt/?p=391571

Chú ý lệnh TLDIA.

@Danh Cong: Biến DIMZIN.

Cảm ơn bác nhé. Nhưng sao em tải Lisp của bác về không dùng được nhỉ?


  • 0

#11 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

  • Members
  • PipPipPipPipPipPipPip
  • 665 Bài viết
Điểm đánh giá: 312 (khá)

Đã gửi 09 September 2016 - 09:43 AM

Cảm ơn bác nhé. Nhưng sao em tải Lisp của bác về không dùng được nhỉ?

 

Câu hỏi thì dễ, nhưng câu trả lời thì khó quá!

CAD nó báo thế nào? F2 chụp hình gửi lên thì mới chẩn đoán lâm sàng được chứ!


  • 0

#12 Danh Cong

Danh Cong

    biết lệnh linetype

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

Đã gửi 09 September 2016 - 01:05 PM

Sửa lại theo sở thích của bạn đây : Bạn xem ổn chưa. Lệnh "tgg".

 

Thank a #QuocManh đã giải đáp thắc mắc  :D  :D

 

http://www.cadviet.c...24641_tgg_1.lsp


  • 1

             ***  Vô lo - Vô nghĩ - Vô sầu hận  ***

***  Chẳng thương - Chẳng giận - Chẳng đau lòng  ***


#13 namtrantt206xd

namtrantt206xd

    biết vẽ circle

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

Đã gửi 09 September 2016 - 02:02 PM

Sửa lại theo sở thích của bạn đây : Bạn xem ổn chưa. Lệnh "tgg".

 

Thank a #QuocManh đã giải đáp thắc mắc  :D  :D

 

http://www.cadviet.c...24641_tgg_1.lsp

Quá tuyệt vời. Đúng như mình muốn. Cảm ơn bạn rất nhiều nhé!


  • 0