Rabu, 16 Juli 2008

Membuat Layout Pipa Dengan Mnggambar Garis

(defun c:xpipe(/ actDoc actLay actSp baseLine
baseSet cirEnt diCount divDid
exCir laySt objType oldDia
oldEcho startPt xOrd yOrd
zOrd *error*)

(vl-load-com)

(defun *error* (msg)
(vla-put-Lock actLay laySt)
(setvar "CMDECHO" oldEcho)
(vla-EndUndoMark actDoc)
(princ)
); end of *error*

(if(not pipe:exDia)(setq pipe:exDia 40.0))
(setq actDoc
(vla-get-ActiveDocument
(vlax-get-Acad-object))
actLay(vla-get-ActiveLayer actDoc)
oldDia pipe:exDia
oldEcho(getvar "CMDECHO")
); end setq
(vla-StartUndoMark actDoc)
(setvar "CMDECHO" 0)
(if(= 0(vla-get-ActiveSpace actDoc))
(setq actSp(vla-get-PaperSpace actDoc))
(setq actSp(vla-get-ModelSpace actDoc))
); end if
(setq laySt(vla-get-Lock actLay))
(vla-put-Lock actLay :vlax-false)
(setq pipe:exDia
(getreal
(strcat
"\nSpecify pipe diameter <"(rtos pipe:exDia)">: ")))
(if(null pipe:exDia)(setq pipe:exDia oldDia))
(princ "\n<<<>>>")
(if
(setq baseSet
(ssget '((-4 . "")
ename exCir))
(command "_.extrude" cirEnt "" "_p" pathEnt)
(command "_.erase" cirEnt "")
); end foreach
(initget "Yes No")
(setq delFlag
(getkword "\nDelete extrude path(s)? [Yes/No] : "))
(if(null delFlag)(setq delFlag "No"))
(if(= "Yes" delFlag)
(foreach pathEnt baseSet
(vla-delete(vlax-ename->vla-object pathEnt))
); end foreach
); end if
(vla-put-Lock actLay laySt)
(setvar "CMDECHO" oldEcho)
(vla-EndUndoMark actDoc)
); end progn
); end if
(princ)
); end of c:xpipe

(princ "\n*** Type XPIPE for extrude 3D-pipes *** ")

Tidak ada komentar: