AreaText ถามมา-ตอบไป

จากเมล์ครับ ขอสอบถามเกี่ยวกับ area text ครับ

     จะแก้โค้ด อย่างให้ให้ตัวหนังสือบอกมาแค่ตัวเลข
ผมไม่ต้องการ ในโค้ดที่ให้มา มีหน่วยเป็น ตร.ฟุต
ยกตัวอย่างเช่น ผมวาดรูปสี่เหลี่ยม 1 x 1 หน่วย
พอใช้คำสั่ง at แล้วกดเลือกพื้นที่นั่น มันบอกเป็น 0.01 ตร.ฟุต 
(ผมไม่ต้องการรูปแบบนี้ครับ)
อยากให้ออกมาเท่ากับ 1 (ตร.หน่วย) แค่นั้นเอง
ต้องแก้ code อย่างไรบ้างครับ

;;; AreaText.LSP ver 2.0
;;; Select a polyline and where to place the text
;;; Sample result: 2888.89 SQ. FT.

;;; By Jimmy Bergmark
;;; Copyright (C) 2007-2009 JTB World, All Rights Reserved
;;; Website: www.jtbworld.com
;;; E-mail: info@jtbworld.com
;;; 2007-09-05 - First release
;;; 2009-08-02 - Updated to work in both modelspace and paperspace

;;; Uses TEXTSIZE for the text height
(defun c:AT (/ entObject entObjectID InsertionPoint ad)
(vl-load-com)
(setq entObject (vlax-ename->vla-object(car (entsel)))
entObjectID (vla-get-objectid 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 " (rtos entObjectID 2 0) ">%).Area \\f \"%pr2%lu2%ct4%qf1 SQ. FT.\">%"
))
)
โดยส่วนตัวแล้วผมยังอ่อนต่อ Visual Lisp อย่างมากครับ แต่เข้าใจว่าการปรับแก้ไข Code ก็ปรับที่ strcat ครับ โดยเอาหน่วย(สีแดงออกไป) การปรับแก้มากกว่านี้คงต้องให้ผู้รู้ที่เก่งกว่ามาช่วยตอบครับ
แต่ผมขอเสนอ AutoLISP ของผมที่เขียนแบบง่ายๆแต่ก็สามารถใช้ได้เช่นเดียวกันครับ
(defun sel_ob()
   (while (not en)
   (setq en (car (entsel "\nSelect Entities: ")))
   (if (not en)
   (prompt "\nNo entity selected --- Please Try Again : "))
   )
 )

(defun c:at1 (/ en ar aw th an pt)
 (sel_ob)  (Command "area" "entity" en)
 (setq ar  (getvar "area"))
 (setq atext (strcat "Area= " (rtos ar) " sq.m."))
 (setq pt (getpoint "\nText point :"))
 (setq th "0.2")
 (setq an "0")
 (command "text" pt th an atext)
(princ)
)

คิดว่าน่าจะพอแก้ขัดแก้ไขได้บ้างนะครับ
ขอขอบคุณ คุณณัฐวุฒิ ที่ถามมาครับ

ไม่มีความคิดเห็น:

แสดงความคิดเห็น

คลังบทความของบล็อก