Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
4 replies to this topic

#1 quansla

quansla

    biết lệnh xclip

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

Đã gửi 01 December 2012 - 03:20 PM

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....sp/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
  • 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)
  • 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)
  • 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

  • 1

#2 quansla

quansla

    biết lệnh xclip

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

Đã gửi 01 December 2012 - 03:22 PM

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)
)

  • 1

#3 hochoaivandot

hochoaivandot

    biết dimradius

  • Members
  • PipPipPipPipPip
  • 310 Bài viết
Điểm đánh giá: 107 (tàm tạm)

Đã gửi 01 December 2012 - 03:48 PM

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
  • 1

Dương Bá Diệp

 

www.cadonline.duyxuyen.vn 

 

Thành viên nhóm CADMAGIC

 


#4 quansla

quansla

    biết lệnh xclip

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

Đã gửi 01 December 2012 - 04:48 PM

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
  • 0

#5 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 01 December 2012 - 05:57 PM

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 ^^
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC