Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
Đăng nhập để thực hiện theo  
quansla

[share] Link diện tích,chiều dài đối tượng tới Mtext(phải Regen sau khi thay đổi)

Các bài được khuyến nghị

quansla    232

Mình lang thang trên mạng mới tìm được bài viết này, mình nghĩ nó khá hay cho các vọc lisp tiếp tục phát triển

Nhưng đương nhiên nó cũng có ích với các mem cad thực sự cần

Tác dụng

Tự viết ra 1 dòng Mtext với nội dung là diện tích hoặc chiều dài của một đối tượng (pick chuột)

Code như sau:(xin phép không đưa vào box code)

Với diện tích

 

(command "mtext" (getpoint "\nChon diem chen") pause

(strcat

"%<\\AcObjProp Object(%<\\_ObjId "

(Get-ObjectIDx64 (vlax-ename->vla-object(car (entsel))))

">%).Area \\f \"%pr2%lu2%qf1 %ps[s= ,dv^2]%zs8\">%"

) ""

)

Với Chiều dài(chu vi)

 

(command "mtext" (getpoint "\nChon diem chen") pause

(strcat

"%<\\AcObjProp Object(%<\\_ObjId "

(Get-ObjectIDx64 (vlax-ename->vla-object(car (entsel))))

">%).Length \\f \"%pr2%lu2%qf1 %ps[L= ,dv]%zs8\">%"

) ""

)

 

Trong đó bắt buộc phải tải hàm con Get-ObjectIDx64 (hàm con này là nguyên mẫu của nguồn mình kiếm được nó giúp cho code chạy được trên Cad 64 bit - Nguồn http://www.jtbworld.com/lisp/AreaText.htm)

(defun Get-ObjectIDx64 (obj / util)
 (setq util (vla-get-Utility (vla-get-activedocument (vlax-get-acad-object))))
 (if (= (type obj) 'ENAME)(setq obj (vlax-ename->vla-object obj)))
 (if (= (type obj) 'VLA-OBJECT)
(if (> (vl-string-search "x64" (getvar "platform")) 0)
 	(vlax-invoke-method util "GetObjectIdString" obj :vlax-False)
 	(rtos (vla-get-objectid obj) 2 0)
)
 )
)

Nhìn vào hai code của Mtext trên các bạn hãy để ý các phần

  1. màu đỏ: Area và Length đó là các Code diện tích và Length lấy theo dòng code từ lệnh FIELD(xem video của nguồn đã up)
  2. màu xanh: [s= , dv^2] [L= , dv] đó là các thành phần tự thêm vào trước và sau giá trị các bạn có thể tự sửa tùy ý(viết tiếng việt được nếu dùng UNICODE)
  3. dòng màu tím là quy định hay không quy định việc bỏ các số 0 vô nghĩa ở kết quả cuối

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
quansla    232

Mình lang thang trên mạng mới tìm được bài viết này, mình nghĩ nó khá hay cho các vọc lisp tiếp tục phát triển

Nhưng đương nhiên nó cũng có ích với các mem cad thực sự cần

Tác dụng

Tự viết ra 1 dòng Mtext với nội dung là diện tích hoặc chiều dài của một đối tượng (pick chuột)

....

Đây là code viết bởi vl

(defun c:AT (/ entObject entObjectID InsertionPoint ad)
 (vl-load-com)
 (setq entObject (vlax-ename->vla-object(car (entsel)))
   	entObjectID (Get-ObjectIDx64 entObject)
   	InsertionPoint (vlax-3D-Point (getpoint "Select point: "))
   	ad (vla-get-ActiveDocument (vlax-get-acad-object))
 )
 (vla-addMText
(if (= 1 (vla-get-activespace ad))
 	(vla-get-modelspace ad)
 	(if (= (vla-get-mspace ad) :vlax-true)
(vla-get-modelspace ad)
(vla-get-paperspace ad)
)
 	)
InsertionPoint 0.0
(strcat
 	"%<\\AcObjProp Object(%<\\_ObjId "
 	entObjectID
 	">%).Area \\f \"%pr2%lu2%qf1 %ps[s= ,mm^2]%zs8\">%"
 	)
)
 (princ)
 )

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
hochoaivandot    108

Cảm ơn tinh thần chia sẻ. Cadviet cũng có vài topic về vấn đề này rồi. Bạn có thể nghiên cứu thêm tại:

http://www.cadviet.com/forum/index.php?showtopic=1515

http://www.cadviet.com/forum/index.php?showtopic=13131&st=0

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
quansla    232

Cảm ơn tinh thần chia sẻ. Cadviet cũng có vài topic về vấn đề này rồi. Bạn có thể nghiên cứu thêm tại:

http://www.cadviet.c...?showtopic=1515

http://www.cadviet.c...opic=13131&st=0

Hì, em cũng có lướt qua mấy topic này rồi, hồi đó thấy nó "cao siêu" quá, có dám đọc đâu, giờ lại ngồi nghiền ngẫm vậy

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
ketxu    2.649

Lee có cả 1 bài dài giải trình các ý nghĩa trong Field code (pr2%lu2%qf1 %ps j j đó ở trên), bạn nên tìm thêm để đọc ^^

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay

Đăng nhập để thực hiện theo  

×