Đến nội dung


Hình ảnh
- - - - -

[Yêu cầu] Nhờ các anh coi giúp lisp vẽ đường tròn bao quanh chữ bị lỗi gì với!


  • Please log in to reply
9 replies to this topic

#1 vuminhchau

vuminhchau

    biết vẽ polygon

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

Đã gửi 21 July 2013 - 04:20 AM

Các anh ơi coi giúp em cái lisp này nó báo lỗi : ; error: no function definition: CONS0 là do thiếu định nghĩa chứa năng cons0 phải không ạ, nhờ các anh bổ sung giúp em với!

 

(defun C:TCir()
    (setq txtSet(ssget(list(cons0"text"))))
    (setq setlen(sslength txtSet))
    (setq ctr 0)
    (repeat setlen
        (setq ent(ssname txtSet ctr))
        (setq entl(entget ent))
        (setq otex(textbox entl))
        (setq po1(cdr(assoc10 entl)))
        (setq ang1(cdr(assoc50 entl)))
        (setq sinrot(sin ang1))
        (setq cosrot(cos ang1))
        (setq t1(car otex))
        (setq t2(cadr otex))
        (setq p1o(list(+(car po1) (-(*(car t1) cosrot) (*(cadr t1) sinrot))) (+(cadr po1)(+(*(car t1) sinrot) (*(cadr t1) cosrot)))))
        (setq p2o(list (+ (car po1) (-(*(car t2) cosrot) (*(cadr t2) sinrot))) (+(cadr po1) (+(*(car t2) sinrot) (* (cadr t2) cosrot)))))        
        (command"._Circle" (midp p1o p2o) (*0.6(distance p1o p2o)))
        (setq ctr(1+ ctr))
    )
    (princ)
)

; Function to find the mid point of two points.
(defun MidP(midp_fpo midp_spo)
    (setq midp_mpo(list(/ (+(car midp_fpo) (car midp_spo))2) (/ (+(cadr midp_fpo) (cadr midp_spo))2)))
)

(princ "\nType \"TCir\" for Circling selected Texts.")  (princ)

  • 0

#2 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 21 July 2013 - 07:36 AM

Viết (cons0"text") hở ra như vầy (cons 0 "text")


  • 1

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#3 vuminhchau

vuminhchau

    biết vẽ polygon

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

Đã gửi 22 July 2013 - 08:09 AM

còn 1 chút nữa em làm phiền anh coi giúp là sau khi sửa xong vẽ được đường tròn nhưng nó báo lỗi ; error: no function definition: *0

à cái này có thể thêm dùng cho cả mtext được không anh nhỉ?

 

  

(defun C:TCir()
    (setq txtSet(ssget(list(cons 0"text"))))
    (setq setlen(sslength txtSet))
    (setq ctr 0)
    (repeat setlen
        (setq ent(ssname txtSet ctr))
        (setq entl(entget ent))
        (setq otex(textbox entl))
        (setq po1(cdr(assoc 10 entl)))
        (setq ang1(cdr(assoc 50 entl)))
        (setq sinrot(sin ang1))
        (setq cosrot(cos ang1))
        (setq t1(car otex))
        (setq t2(cadr otex))
        (setq p1o(list(+(car po1) (-(*(car t1) cosrot) (*(cadr t1) sinrot))) (+(cadr po1)(+(*(car t1) sinrot) (*(cadr t1) cosrot)))))
        (setq p2o(list (+ (car po1) (-(*(car t2) cosrot) (*(cadr t2) sinrot))) (+(cadr po1) (+(*(car t2) sinrot) (* (cadr t2) cosrot)))))       
        (command"._Circle" (midp p1o p2o) (*0.6(distance p1o p2o)))
        (setq ctr(1+ ctr))
    )
    (princ)
)

; Function to find the mid point of two points.
(defun MidP(midp_fpo midp_spo)
    (setq midp_mpo(list(/ (+(car midp_fpo) (car midp_spo))2) (/ (+(cadr midp_fpo) (cadr midp_spo))2)))
)

(princ "\nType \"TCir\" for Circling selected Texts.")  (princ)


  • 0

#4 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 22 July 2013 - 08:22 AM

Chẳng hiểu sao bạn code toàn dính nhau?

Sửa:

(*0.6(distance p1o p2o)))

Thành:

(* 0.6 (distance p1o p2o)))


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#5 duy267

duy267

    biết vẽ point

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

Đã gửi 22 July 2013 - 08:22 AM

Muốn dùng cho TEXT và MTEXT thì thay "TEXT" thành "*TEXT".


  • 0

#6 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 22 July 2013 - 08:25 AM

Muốn dùng cho TEXT và MTEXT thì thay "TEXT" thành "*TEXT".

Duy267 xem lại đối tượng của hàm textbox nhé! Not Mtext?


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#7 vuminhchau

vuminhchau

    biết vẽ polygon

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

Đã gửi 22 July 2013 - 09:03 AM

à được rồi anh à, còn nếu sử dụng được cho cả mtext có được không anh nhỉ?


  • 0

#8 banbe0274

banbe0274

    biết vẽ pline

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

Đã gửi 13 August 2013 - 02:10 PM

Nhờ Bác Phan Thanh Bình và các Bác trên diễn đàn chỉnh sửa hoặc viết giúp em 1 lisp :

dùng 1 lệnh quét toàn text kết quả cho ra mỗi text vẽ đường tròn bao quanh - lưu ý là đường tròn bao quanh có đường kính khác nhau để vừa chuỗi text.

như ví dụ sau:http://www.cadviet.c...53_drawing2.rar

Cám ơn các Bác!


  • 0

#9 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 13 August 2013 - 03:59 PM

Nhờ Bác Phan Thanh Bình và các Bác trên diễn đàn chỉnh sửa hoặc viết giúp em 1 lisp :

dùng 1 lệnh quét toàn text kết quả cho ra mỗi text vẽ đường tròn bao quanh - lưu ý là đường tròn bao quanh có đường kính khác nhau để vừa chuỗi text.

như ví dụ sau:http://www.cadviet.c...53_drawing2.rar

Cám ơn các Bác!

Hề hề hề,bạn đã dùng thử lisp phía trên chưa?? Nếu chưa thì hãy dùng thử coi. Nếu đã thì nó báo lỗi gì hay là bạn không thích nó ở điểm nào??

Thực tế mình thấy lisp trên đạt yêu cầu sử dụng của bạn. Tất nhiên có phải chỉnh sửa tí ti như bác DoanVanHa đã hướng dẫn.


  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#10 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 13 August 2013 - 05:00 PM

@Banbe0274: Hãy thử dùng lệnh Tcircle  : 1 lệnh của Express


  • 1