Đến nội dung


Hình ảnh
- - - - -

Xin lisp chuyển từ Text 2d sang 3d và ngược lại


  • Please log in to reply
7 replies to this topic

#1 tuvn254

tuvn254

    biết vẽ line

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

Đã gửi 21 May 2009 - 03:33 PM

Bác nào có lisp này cho mình xin nhé. Lần trước mình đã thấy có người xài lisp này roài, giờ có việc cần qua. Thanks các bác nhiều............
  • 0

#2 tuvn254

tuvn254

    biết vẽ line

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

Đã gửi 22 May 2009 - 11:40 PM

không ai có lisp này hay sao ý nhỉ..................
  • 0

#3 thanhduan2407

thanhduan2407

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 992 Bài viết
Điểm đánh giá: 223 (khá)

Đã gửi 20 December 2011 - 02:58 PM

Ngồi rảnh mò mẫm lại mấy cái lisp cũ và mò lại topic có trong diễn đàn thấy có nhưng không có ai trả lời nên mạo muội gửi cho bạn. Những ai cần dùng thì ô sờ kê.
Lisp chuyển text 2D sang 3D. Còn ngược lại thì dùng lệnh flattend của Cad.
(defun Diemchuan (ent)
(setq Ma10 (cdr (assoc 10 (entget ent))))
(setq Ma11 (cdr (assoc 11 (entget ent))))
(setq X11 (car Ma11))
(setq Ma71 (cdr (assoc 71 (entget ent))))
(setq Ma72 (cdr (assoc 72 (entget ent))))
(if (or (and (= Ma71 0) (= Ma72 0) (= X11 0))
(and (= Ma71 0) (= Ma72 3) )
(and (= Ma71 0) (= Ma72 5) )
)
Ma10
Ma11
)

(defun C:CVT3D (/ ss item temp Tdo Caodo h Pnt )
(command "undo" "be")
(command "osnap" "off")
(setq ss (ssget (list (cons 0 "TEXT"))))
(setq ss (vl-remove-if-not '(lambda (x) (= (type x) 'ENAME)) (mapcar 'cadr (ssnamex ss))))
(foreach item ss
(setq temp (entget item))
(setq Tdo (Diemchuan item ))
(setq Caodo (cdr (assoc 1 temp))
h (cdr (assoc 40 temp))
Pnt (list (car Tdo)
(cadr Tdo)
(atof caodo)
)
)
(entdel item)
;;; (command "text" Pnt h 0 Caodo)
;;; (command "text" "J" "MC" Pnt h 0 Caodo)
(entmake (list (cons 0 "TEXT") (cons 1 Caodo) (cons 10 Pnt) (cons 40 h)))
)
(command "undo" "end")
(princ)

)


)

P/s: Ngồi thử từng kiểu justify nên làm theo cách ấy. Ai có ý kiến thì xin chỉ giáo. :mellow:
  • 1



Tôi là con kiến bò trên sa mạc kiến thức bao la. Biển học thật rộng lớn







#4 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 22 December 2011 - 06:31 PM

Ngồi rảnh mò mẫm lại mấy cái lisp cũ và mò lại topic có trong diễn đàn thấy có nhưng không có ai trả lời nên mạo muội gửi cho bạn. Những ai cần dùng thì ô sờ kê.
Lisp chuyển text 2D sang 3D. Còn ngược lại thì dùng lệnh flattend của Cad.

(defun Diemchuan (ent)
(setq Ma10 (cdr (assoc 10 (entget ent))))
(setq Ma11 (cdr (assoc 11 (entget ent))))
(setq X11 (car Ma11))
(setq Ma71 (cdr (assoc 71 (entget ent))))
(setq Ma72 (cdr (assoc 72 (entget ent))))
(if (or (and (= Ma71 0) (= Ma72 0) (= X11 0))
(and (= Ma71 0) (= Ma72 3) )
(and (= Ma71 0) (= Ma72 5) )
)
Ma10
Ma11
)

(defun C:CVT3D (/ ss item temp Tdo Caodo h Pnt )
(command "undo" "be")
(command "osnap" "off")
(setq ss (ssget (list (cons 0 "TEXT"))))
(setq ss (vl-remove-if-not '(lambda (x) (= (type x) 'ENAME)) (mapcar 'cadr (ssnamex ss))))
(foreach item ss
(setq temp (entget item))
(setq Tdo (Diemchuan item ))
(setq Caodo (cdr (assoc 1 temp))
h (cdr (assoc 40 temp))
Pnt (list (car Tdo)
(cadr Tdo)
(atof caodo)
)
)
(entdel item)
;;; (command "text" Pnt h 0 Caodo)
;;; (command "text" "J" "MC" Pnt h 0 Caodo)
(entmake (list (cons 0 "TEXT") (cons 1 Caodo) (cons 10 Pnt) (cons 40 h)))
)
(command "undo" "end")
(princ)

)


)

P/s: Ngồi thử từng kiểu justify nên làm theo cách ấy. Ai có ý kiến thì xin chỉ giáo. :mellow:

Hề hề hề,
Thực tình đọc tiếng Việt mà mình chả hiểu mô tê răng rứa chi cả??? Thế nào text 2D và thế nào là text 3D hè??? Nó khác nhau ở cái chi chi??? và tại sao lại phải chuyển đi chuyển lại cho nó .... bác học vậy????
Hề hề hề....
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#5 thanhduan2407

thanhduan2407

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 992 Bài viết
Điểm đánh giá: 223 (khá)

Đã gửi 22 December 2011 - 07:40 PM

hề hề hề. Đó là text có cao độ và text ko có cao độ. Các text trong đó có số ý bác, toàn là số. Hề hề. Convert cái text có toàn số nhưng độ cao bằng 0 thành cái text có độ cao khác 0. Hiii
  • 0



Tôi là con kiến bò trên sa mạc kiến thức bao la. Biển học thật rộng lớn







#6 thanhduan2407

thanhduan2407

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 992 Bài viết
Điểm đánh giá: 223 (khá)

Đã gửi 23 December 2011 - 07:02 PM

Hề hề hề,
Thực tình đọc tiếng Việt mà mình chả hiểu mô tê răng rứa chi cả??? Thế nào text 2D và thế nào là text 3D hè??? Nó khác nhau ở cái chi chi??? và tại sao lại phải chuyển đi chuyển lại cho nó .... bác học vậy????
Hề hề hề....

bác chọc quê em roài. Hic. Em toàn làm các vấn đề bác học thui.
  • 0



Tôi là con kiến bò trên sa mạc kiến thức bao la. Biển học thật rộng lớn







#7 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 24 December 2011 - 10:45 AM

bác chọc quê em roài. Hic. Em toàn làm các vấn đề bác học thui.

Hề hề hề,
Vậy có nghĩa là text 3D là text 2D được vác từ mặt đất lên tầng nào đó có cao độ của cái point à???
Mình cứ tưởng là phải extrude cái text thành cái mặt hay cái khối chi chi đó có kích thước cả 3 chiều chớ???
Việc mang vác này quả có nặng nhọc thiệt, vậy nên bác mới chọn cái cách viết thằng khác giống thằng cũ cho đỡ mất công vác, nhưng mà phí của giời lắm bác ạ.
Sao bác không sai cái thằng move nó làm hộ nhỉ??? Nước sông, công .... nó mừ.
Hề hề hề,...
  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#8 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 24 December 2011 - 10:59 AM

Hay! Trong trường hợp này thì dùng MU gọn nhỉ! Khỏi lằng nhằng thằng điểm chuẩn, code đơn giản, chỉ mỗi xác định cái (assoc 1) là coi như xong.
  • 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.