๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
autocad

๊ธฐ์กด dwg ์—ด์–ด์„œ ๋ฌธ์ž ์ˆ˜์ •ํ•œ ํ›„ ๋‹ค๋ฅธ ์ด๋ฆ„์œผ๋กœ ์ €์žฅ

by kmlab 2026. 9. 29.

 

 

๐Ÿ”Ž acad lisp ๊ธฐ์กด dwg ์—ด์–ด์„œ ๋ฌธ์ž ์ˆ˜์ •ํ•œ ํ›„ ๋‹ค๋ฅธ ์ด๋ฆ„์œผ๋กœ ์ €์žฅํ•˜๋Š” ๋ฆฌ์Šต: Google ๊ฒ€์ƒ‰

 

www.google.com

(vl-load-com)

(defun c:CHG_SAVEAS ( / acadObj docsObj targetFile saveFile oldText newText dbxDoc)
  (setq acadObj (vlax-get-acad-object))
  (setq docsObj (vla-get-documents acadObj))
  
  ;; 1. ์‚ฌ์šฉ์ž ์ž…๋ ฅ ๋ฐ›๊ธฐ
  (setq targetFile (getfiled "์›๋ณธ DWG ํŒŒ์ผ ์„ ํƒ" "" "dwg" 0))
  (if (not targetFile) (exit))
  
  (setq saveFile (getfiled "์ƒˆ๋กœ์šด ์ด๋ฆ„์œผ๋กœ ์ €์žฅํ•  ๊ฒฝ๋กœ ๋ฐ ์ด๋ฆ„ ์ง€์ •" targetFile "dwg" 1))
  (if (not saveFile) (exit))
  
  (setq oldText (getstring t "\n์ฐพ์„ ๋ฌธ์ž ์ž…๋ ฅ: "))
  (setq newText (getstring t "\n๋ฐ”๊ฟ€ ๋ฌธ์ž ์ž…๋ ฅ: "))
  
  ;; 2. ObjectDBX๋ฅผ ์ด์šฉํ•ด ํŒŒ์ผ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์˜คํ”ˆ (ํ™”๋ฉด ๊นœ๋นก์ž„ ์—†์Œ)
  (setq dbxDoc (vla-GetInterfaceObject acadObj 
                 (strcat "ObjectDBX.AxDbDocument." (substr (getvar "ACADVER") 1 2))
               )
  )
  
  (if (vl-catch-all-error-p (vl-catch-all-apply 'vla-open (list dbxDoc targetFile)))
    (progn
      (princ "\nํŒŒ์ผ์„ ์—ด ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ฒฝ๋กœ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.")
      (vlax-release-object dbxDoc)
      (exit)
    )
  )
  
  ;; 3. Model Space ๋ฐ Paper Space ๋‚ด ๋ฌธ์ž ํƒ์ƒ‰ ๋ฐ ์ˆ˜์ •
  (vlax-for layout (vla-get-Layouts dbxDoc)
    (vlax-for obj (vla-get-Block layout)
      ;; ์ผ๋ฐ˜ TEXT ๋˜๋Š” MTEXT ํ™•์ธ
      (if (vl-position (vla-get-ObjectName obj) '("AcDbText" "AcDbMText"))
        (progn
          ;; ์›ํ•˜๋Š” ๋ฌธ์ž์—ด์„ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธ ํ›„ ๊ต์ฒด
          (if (vl-string-search oldText (vla-get-TextString obj))
            (vla-put-TextString obj 
              (vl-string-subst newText oldText (vla-get-TextString obj))
            )
          )
        )
      )
    )
  )
  
  ;; 4. ๋‹ค๋ฅธ ์ด๋ฆ„์œผ๋กœ ์ €์žฅ ํ›„ ๊ฐ์ฒด ํ•ด์ œ
  (if (vl-catch-all-error-p (vl-catch-all-apply 'vla-saveas (list dbxDoc saveFile)))
    (princ "\n์ €์žฅ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ์ด ์—ด๋ ค์žˆ๊ฑฐ๋‚˜ ๊ฒฝ๋กœ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.")
    (princ (strcat "\n์„ฑ๊ณต์ ์œผ๋กœ ๋ณ€๊ฒฝ๋˜์–ด ์ €์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค: " saveFile))
  )
  
  (vlax-release-object dbxDoc)
  (princ)
)
๋ฐ˜์‘ํ˜•

'autocad' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

OPENING DWG to EDIT  (0) 2026.09.16
ScriptPro  (0) 2026.09.10
์บ๋“œ๋ฆฌ์Šต์—์„œ (getstring ๋”ฐ์˜ดํ‘œ ์—†์ด ์ž…๋ ฅ๋ฐ›๊ธฐ  (0) 2026.09.09
Edit Default String by DCL  (0) 2026.09.01
VeLISP  (0) 2026.08.31