การสร้าง Attibute Block ไม่ยากอย่างที่คิด

          ผมใช้โปรแกรมมานานโดยตั้งแต่เริ่มใช้ก็ 2.14 โน้นแล้ว สิ่งที่ศึกษาเป็นอันดับต้นๆคือคำสั่งต่างๆ โดยจะไล่เรียงคำสั่งในแต่ละชุดออกมาใช้งาน และก็มีคำสั่งเขียนแผ่นป้าย Attibute นี่แหล่ะที่มีรายละเอียดชวนให้งง สับสนกับการใช้งานให้ถูกต้อง เพราะมันมีให้ตั้งค่าอะไรต่างๆมากมาย แต่ตอนนี้ผมว่าคำสั่งนี้ไม่ได้ยากเลย ถ้าเรารู้จักใช้มัน เพราะที่ใช้งานกันส่วนมากก็เพียงแค่เพื่อให้แก้ไขตัวอักษรที่อยู่ภายในเท่านั้น ส่วนไอ้ที่จะติดรายละเอียดลึกๆข้างใน เพื่อสกัดเอาค่าออกมาใช้นั้นช่างมีน้อยเสียเหลือเกิน เพราะฉะนั้นเราคงไม่ไปสนใจรายละเอียดที่มากมายขนาดนั้น วิธีการง่ายเลยที่ผมมักจะใช้เสมอตั้งแต่โบราณจนปัจจุบันต่างกันที่ Version 2.14 จะเป็น command line อย่างเดียวต้องตอบที่ละบรรทัด แต่เดี๋ยวนี้มี Dialogbox เข้ามาช่วยอำนวยความสะดวกขึ้นเยอะเลย จริงๆนะ

  1. พิมพ์คำสั่งที่ Command line : DDATTDEF (คำสั่งเต็มย่อมาจาก Dialog attibute define แปลกันตรงๆเลยก็คือ เปิดไดอะล็อกบล็อกเพื่อกำหนดแผ่นป้าย ตรงไปหรือเปล่าไม่รู้ อิอิ )
  2. จะปรากฎไออะล็อกบล็อกขึ้นมา ไม่ต้องไปสนใจอะไรมากกับค่าต่างๆ ให้ใช้ค่า Tag , Prompt , และ  Default  ก็เพียงพอ ไม่ต้องไปตั้งค่าใน Mode หากไม่ต้องการซ่อนมัน

   Tag - จะว่าไปก็คือแผ่นป้ายที่จะติดนี่แหล่ะ เพื่อให้รู้ว่าข้อความที่จะติดคืออะไร นึกอะไรไม่ออกก็พิมพ์ XXX ไปก่อน ( อย่าไปคิดอะไรมากนะ ไม่ใช่หนังติดเรท )
   Prompt - จริงๆแล้วก็คือตัวที่เราจะตั้งข้อมูลบอกที่เกี่ยวกับแผ่นป้าย เช่น Project name, Number, Work หรืออื่นที่สามารถระบุแผ่นป้ายได้ นึกอะไรไม่ออก พิมพ์ XXX: ไปครับ
  Default - อันนี้คือการกำหนดค่าคงที่ให้กับแผ่นป้าย ในกรณีที่เราใช้ค่าข้อความที่เหมือนกันมากในหลายชุด เราก็ใส่ค่าลงไปที่นี้ครับ เช่นประเภทงานที่เขียนเราอาจจะใส่เป็นโค้ดได้ : AR,ST,SN หรือ อาจจะใส่เป็นจำนวนรวมทั้งทั้งของงานก็ได้ เป็นตัวเลขไปเลย เช่น 69 , 96 (อย่าไปคิดมากนะครับ แค่ตัวอย่างเท่านั้นเอง) แต่ถ้ายังนึกอะไรไม่ออกก็พิมพ์ 18+ ไปก่อนครับ
เพียงเท่านี้เราก็คลิ๊ก OK ครับ
     3. โปรแกรมได้รับค่าแล้วก็จะให้เรากำหนดตำแหน่งของแผ่นป้ายว่าจะว่างมันที่ตรงไหน คลิ๊กไปเลยครับตรงไหนก่อนก็ได้ แล้วค่อยมา Move เคลื่อนมันทีหลัง
     4. แล้วเราก็ทำให้มันเป็น Block ครับจะเป็นภายนอก Wblock หรือภายใน Block ธรรมดาก็ได้ ให้ชื่อว่า X ก็แล้วกัน
     5.ใช้คำสั่ง Insert ดึงบล็อกชื่อ X เข้ามาใช้งานครับ จะมีไดอะล็อกบล็อกให้ใส่ค่าของแผ่นป้ายเท่านี้ก็เรียบร้อยครับ

ถ้าไม่มีไดอะล็อกบล็อกขึ้นมาให้แก้ไข ให้ตั้งค่า Setvar ดังนี้  พิมพ์ ATTDIA ที่ Command line : พิมพ์ค่าเป็น 1 เพื่อเปิดใช้งานครับ แล้วลอง Insert ดูอีกครั้ง (นั่นไง มาแล้วใช่ม่ะ)
คำสั่งแก้ไขแผ่นป้ายคือ : DDATTE ( คงจะมาจาก Dialog block attibute edit ครับ )



*การใช้คำสั่งเปิดไฟล์ Open จะใช้ Filedia เป็นค่าตัวแปรระบบควบคุมกล่องโต้ตอบ หากเป็นค่า 0 ก็จะไม่ขึ้นกล่องมาให้เลือกครับ*

ในส่วนของคุณสมบัติของตัวอักษรก็ใช้ Property object แก้ไขได้เหมือนข้อความทั่วไปครับ ง่ายกว่ากันเยอะ

ช่องทางการปรับแก้ไขข้อมูลในแผ่นป้าย Tag Attibute ตามด้านล่างนี้ครับ


Button

 Ribbon: Home tabBlock panelEdit Single Attribute

 Menu: ModifyObjectAttributeSingle

 Toolbar: Modify II
 Command entry: eattedit










เรียบร้อย

แบบบ้านตัวอย่าง

ลักษณะเป็นบ้านชั้นเดียว เล็กๆ
เนื่องจากเพื่อนๆที่รู้จักต้องการสร้างบ้านที่ต่างจังหวัด ก็เลยส่งให้เป็นแนวทาง
สามารถ   Download   ไปดูได้เป็นตัวอย่าง สำหรับบ้านเล็กๆต่างจังหวัด

ไฟล์จริงๆจะเป็นในรูปของ Dwg ( drawing ) ซึ่งเขียนไว้เพื่อขออนุญาตกับหน่วยงานราชการ

ส่วนรูปเพิ่มเติมวันหลังจะมาลงให้ครับ

วัดความยาวเส้น distance measurements

จากการทำงานแบบในบางครั้งจะต้องเจอการที่จะต้องหาความยาวของเส้น ที่ใช้แทนสัญลักษณ์อะไรก็ตาม เช่น แนวท่อน้ำ แนวเดินสายไฟ หรืออะไรอีกหลายๆอย่าง การที่จะใช้คำสั่ง List หรือจะใช้ Dim วัดก็คงจะเป็นเรื่องที่ยุ่งยากไม่น้อย ลองใช้คำสั่ง AutoLisp ที่ใช้วัดรวมความยาวทั้งหมดอันนี้ดู
โหลดตามลิ้งค์นี้เลย กดโหลดที่นี้ครับ
 หรือว่าจะก็อป Text ไปลองใช้ก็ได้ ด้านล่างนี้ครับ
ปล.เจอมาให้ลองใช้ดู

;Tip1676:  DS2.LSP   Total Distance    (c)2001, Eric Smallwood

;; allows for continuous distance measurements
;; with an enity selection option and a total
;; of all measurements made

Acad.lsp

Acad.lsp คือ ?
ในความเข้าใจของผมเอง อาจจะสรุปได้ว่า acad.lsp คือ
  • ไฟล์ที่ถูกเขียนขึ้นจากภาษา Autolisp ซึ่งจะมีฟังก์ชั่นต่างๆมากหรือน้อยตามแต่ผู้ใช้จะเพิ่มเติมลงไปเองได้ เพื่อความสะดวกในการใช้งาน
  • ไฟล์ที่ถูกกำหนดชื่อของตัวมันเองว่า acad เพื่อให้โปรแกรม AutoCAD สามารถเข้าไปอ่านฟังก์ชั่นข้างในไฟล์นั้น เมื่อเปิดโปรแกรม AutoCAD ขึ้นมาก็จะโหลดไฟล์ acad.lsp นี้ได้โดยทันที(อัตโนมัติ) โดยที่สำคัญคือจะต้องระบุเส้นทางให้โปรแกรม AutoCAD สามารถเข้าไปหาได้ด้วย ซึ่งโดยทั่วๆไป ที่ผู้ใช้ส่วนมากหรือแม้กระทั่งผมเองก็ยังทำ คือให้ไฟล์ Acad.lsp นี้อยู่ในพาท Support ของ AutoCAD
  • และเมื่อโปรแกรม AutoCAD ค้นหาไฟล์ acad.lsp นี้แล้วฟังก์ชั่นต่างๆที่เขียนไว้ก็จะถูกโหลดให้เข้าไปอยู่ในหน่วยความจำของโปรแกรม
นี่ก็เท่าที่พอจะรู้มานะ ไม่รู้ว่าจะตรงบ้างไหม

นอกจากนี้ยังมีไฟล์ที่ AutoCAD โหลดเข้ามาใช้งานโดยอัตโนมัติอีก คือ acaddoc.lsp และ MNL นะครับ

วิธีการแก้ไขเมื่อโดน Acad.lsp virus เล่นงานไฟล์ Dwg

      ไฟล์ Acad.lsp.virus หรือ  virus. Acad. Brusted. v ที่โปรแกรมแอนตี้ไวรัส ต่างๆ สามารถค้นหาเจอ มันคือไวรัสที่เป็นหนอนตัวฉกาจ สามารถเกาะกินไฟล์ต่างๆใน Directory ที่ acad.lsp.v ตัวนี้เข้าไปอยู่  โดยเฉพาะไฟล์งาน Drawing ที่สำคัญอย่างยิ่ง ถูกกินหายไปก็แทบจะร้องไห้กันเลย
       มาดูกันก่อนว่าไอ้เจ้า Acad.lsp ที่เป็นไวรัสตัวนี้มันคืออะไรกันแ่น่ๆ จากที่น้องๆผมได้ประสบเจอมามันกินไฟล์ทุกไฟล์ที่อยู่ในหมวดเดียวกัน กินไปเรื่อยๆ โดยไม่รู้จักอิ่ม โดยแท้จริงแล้วมันคือไฟล์คำสั่ง Autometic ที่สามารถรัน โดยการเปิดโปรแกรม AutoCAD แล้วโปรแกรมจะเรียกคำสั่ง acad.lsp ขึ้นมาใช้งานในโปรแกรม ซึ่งไฟล์ acad.lspนี้จะเขียนมาจากโปรแกรม AutoLISP ซึ่งเป็นภาษาที่ใช้กับโปรแกรม AutoCAD โดยมากผมว่าเรามักจะหาประโยชน์กับมันมากกว่าในการรันคำสั่งอื่นๆนอกโปรแกรมเข้ามาใช้งาน โดยAutoCAD จะเปิดให้เราสามารถปรับปรุงแก้ไขไฟล์นี้ได้ แต่ก็หารู้ไม่ว่ามีคนเก่งไปเขียนชุดคำสั่งทำให้เดือดร้อนกันไปทั่ว โดยจะไปแอบซ่อนอยู่ใน Appication ของไฟล์ที่เปิดเข้าใช้งาน แล้วในพาร์ทที่มันอยู่ (คำศัพท์เก่าจะเรียกว่า Directory ไม่รู้ว่ายังมีคนเรียกกันอยู่หรือเปล่า ) หรือใน Folder ที่มันอยู่ มันจะรันคำสั่ง Del ลบไฟล์ในนั้นไปที่ละไฟล์จนหมด (เพราะที่เจอมาไฟล์ Excel ก็โดนมันกินไปด้วยครับ)
      เจ้าตัวนี้มันจะเข้าไปทำให้การใช้งานโปรแกรมช้าลง และอึดมากๆในการใช้งานคำสั่งต่างๆ โดยเฉพาะ Pan และ Zoom คิดว่าส่วนหนึ่งจะไปใช้แรมในการค้นหาไฟล์ที่อยู่ใน Folder เดียวกัน เลยกินแรมไปเยอะครับ


     วิธีการที่จะกำจัด Acad.lsp(virus) ตัวนี้มันออกไป ก็ไม่ใช่เรื่องยากอะไร ลองทำตามขั้นตอนนี้ดูนะครับ


1. เริ่มแรกเลย ให้เปิดโปรแกรม AutoCAD ขึ้นมา (ไม่ต้องไปกลัวมัน มันจะกินไฟล์ก็ปล่อยมันไปก่อนครับ แล้วท่ิองคาถา เจ้าไวรัสจงตายๆ)


2. จากนั้นก็ใช้คำสั่งที่ Command line พิมพ์ AP แล้ว Enter ( คำสั่ง APPLOAD ) น้องๆจะได้เห็น Dialog box : Load/Unload Application จะเห็นไฟล์ที่ cadapp.lsp โหลดเข้ามาใช้งาน  ให้ปิดการใช้งานไฟล์ AutoCAD Apps ต่างๆก่อน (ปิดตัวสามารถปิดได้ปิดให้หมด)



3. ปิดการใช้งานโปรแกรม AutoCAD ลง โดยไปที่ File แล้วก็ Exit ( Turn off AutoCAD เขียนให้ดูดีนิดนึง โดยการใช้ Ctrl+Q ปิดโปรแกรมไปซะก่อน)


4. สำคัญอย่างยิ่ง สำคัญมากๆ : ใช้  Windows Search ( F3 โดยส่วนตัวจะบอกว่าให้หมาหาให้ เพราะจะมีหมาออกมาช่วยจริงๆ ) ให้หาชื่อไฟล์ Acad.lsp ที่ถูกสร้างขึ้นโดยสคริปไฟล์ acad.lsp.v ตัวปัญหา จัดการลบมันทิ้งไปซะ โดยเฉพาะไอ้ตัวที่อยู่ใน Support เช็คได้จากวันที่ ที่สร้างไฟล์ขึ้นมา ตัวอื่นด้วยนะ ลบมันทิ้งไปซะ เท่านี้ก็ถือได้ว่าฆ่ามันไปแล้ว 
( แต่จะหมดไปหรือเปล่าก็ต้องลองดู ว่ามันจะสร้างไฟล์ Acad.lsp ขึ้นมาใหม่อีกหรือเปล่า เพื่อความแน่ใจ เช็คมันหลายๆรอบ แล้ว Delete มันทิ้ง)

5.เอาหล่ะทีนี้เรามาลองเปิดโปรแกรมกันดูว่า อาการต่างๆหายเป็นปกติดีหรือยัง ลอง Zoom และ Pan ดู หรือใช้คำสั่งอื่นๆที่คิดว่าช้า รู้สึกๆอึดไปจากที่เคยใช้ กลับมาดีดังเดิมก็ใฃ้ได้ครับ




ขอให้ประสบผลสำเร็จนะครับ

โดยเฉพาะน้องต้อง69 และต้น70 ที่หามาให้แก้
( ทางเลือกสุดท้ายเมื่อเจอทางตันแก้ไม่ตก ก็ลงโปรแกรม AutoCAD ใหม่ครับ )

เขียนมา 2 ปีกว่าก็ยังมีคนโดนไวรัสตัวนี้อยู่อีก มันช่างฆ่าไม่ตายจริงๆ
     

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