You are on page 1of 16

;---------------------------------------------------;*******************************************************************************

;* WRITTEN BY DAO NGUYEN THANG 94X3 - HANOI ARCHITECTURAL UNIVERSITY (VIETNAM) *


;*******************************************************************************
(defun myerror (s)
; If an error (such as CTRL-C) occurs
; while this command is active...
(cond
((= s "quit / exit abort") (princ))
((/= s "Function cancelled") (princ (strcat "\nError: " s)))
)
(setvar "cmdecho" CMD)
; Restore saved modes
(setvar "osmode" OSM)
(setq *error* OLDERR)
; Restore old *error* handler
(princ)
)
;*******************************************************************************
(DEFUN C:CD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I
PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)
(SETQ CMD (GETVAR "CMDECHO"))
(SETQ OSM (GETVAR "OSMODE"))
(SETQ OLDERR *error*
*error* myerror)
(PRINC "Please select dimension object!")
(SETQ SS (SSGET))
(SETVAR "CMDECHO" 0)
(SETQ PT (GETPOINT "Point to trim or extend:"))
(SETQ PT (TRANS PT 1 0))
(COMMAND "UCS" "W")
(SETQ LTH (SSLENGTH SS))
(SETQ DEM 0)
(WHILE (< DEM LTH)
(PROGN
(SETQ DS (ENTGET (SSNAME SS DEM)))
(SETQ KDL (CDR (ASSOC 0 DS)))
(IF (= "DIMENSION" KDL)
(PROGN
(SETQ PT10 (CDR (ASSOC 10 DS)))
(SETQ PT11 (CDR (ASSOC 11 DS)))
(SETQ PT13 (CDR (ASSOC 13 DS)))
(SETQ PT14 (CDR (ASSOC 14 DS)))
(SETQ N70 (CDR (ASSOC 70 DS)))
(IF (OR (= N70 0) (= N70 32) (= N70 33) (= N70 160) (= N70 161))
(PROGN
(SETQ GOCY (ANGLE PT10 PT14))
(SETQ GOCX (+ GOCY (/ PI 2)))
)
)
(SETVAR "OSMODE" 0)
(SETQ PTI (POLAR PT GOCX 2))
(SETQ PT13I (POLAR PT13 GOCY 2))
(SETQ PT14I (POLAR PT14 GOCY 2))
(SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))
(SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))
(SETQ O13 (ASSOC 13 DS))
(SETQ O14 (ASSOC 14 DS))
(SETQ N13 (CONS 13 PT13N))
(SETQ N14 (CONS 14 PT14N))
(SETQ DS (SUBST N13 O13 DS))
(SETQ DS (SUBST N14 O14 DS))

(ENTMOD DS)
)
)
(SETQ DEM (+ DEM 1))
)
)
(COMMAND "UCS" "P")
(SETVAR "CMDECHO" CMD)
(SETVAR "OSMODE" OSM)
(setq *error* OLDERR)
; Restore old *error* handler
(PRINC)
)
;******************************************************************************
(DEFUN C:BD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI
PT10 PT10I PT10N O10 N10 PT11 PT11N O11 N11 KC OSM OLDERR)
(SETQ CMD (GETVAR "CMDECHO"))
(SETQ OSM (GETVAR "OSMODE"))
(SETQ OLDERR *error*
*error* myerror)
(PRINC "Please select dimension object!")
(SETQ SS (SSGET))
(SETVAR "CMDECHO" 0)
(SETQ PT (GETPOINT "Point to trim or extend:"))
(SETQ PT (TRANS PT 1 0))
(COMMAND "UCS" "W")
(SETQ LTH (SSLENGTH SS))
(SETQ DEM 0)
(WHILE (< DEM LTH)
(PROGN
(SETQ DS (ENTGET (SSNAME SS DEM)))
(SETQ KDL (CDR (ASSOC 0 DS)))
(IF (= "DIMENSION" KDL)
(PROGN
(SETQ PT13 (CDR (ASSOC 13 DS)))
(SETQ PT14 (CDR (ASSOC 14 DS)))
(SETQ PT10 (CDR (ASSOC 10 DS)))
(SETQ PT11 (CDR (ASSOC 11 DS)))
(SETQ N70 (CDR (ASSOC 70 DS)))
(IF (OR (= N70 0) (= N70 32) (= N70 33) (= N70 160) (= N70 161))
(PROGN
(SETQ GOCY (ANGLE PT10 PT14))
(SETQ GOCX (+ GOCY (/ PI 2)))
)
)
(SETVAR "OSMODE" 0)
(SETQ PTI (POLAR PT GOCX 2))
(SETQ PT10I (POLAR PT10 GOCY 2))
(SETQ PT10N (INTERS PT PTI PT10 PT10I NIL))
(SETQ KC (DISTANCE PT10 PT10N))
(SETQ O10 (ASSOC 10 DS))
(SETQ N10 (CONS 10 PT10N))
(SETQ DS (SUBST N10 O10 DS))
(SETQ PT11N (POLAR PT11 (ANGLE PT10 PT10N) KC))
(SETQ O11 (ASSOC 11 DS))
(SETQ N11 (CONS 11 PT11N))
(SETQ DS (SUBST N11 O11 DS))
(ENTMOD DS)
)
)

(SETQ DEM (+ DEM 1))


)
)
(COMMAND "UCS" "P")
(SETVAR "CMDECHO" CMD)
(SETVAR "OSMODE" OSM)
(setq *error* OLDERR)
(PRINC)
)
Offset doi tuong theo khoang cach cho truoc
*******************************************************************************
(defun newerr ( ne )
(if ( / = ne "Function cancelled")
(Princ (strcat "\nError:" ne)))
(setvar "Osmode" om)
(setvar "Cmdecho" ce)
(setvar "blipmode" bm)
(setq *error* olderr)
(princ))
(defun c:dh ( / cd dd dc kc an cd om ce bm dt p1 p2 )
(setq olderr *error*)
(setq *error* newerr)
(Setq cd (getint "\n Chieu dai duong han <100>:"))
(If (= cd nil) (setq cd 100))
(while ( = dd nil) (setq dd (getpoint "\n Chon diem dau:")))
(while ( = dc nil) (setq dc (getpoint dd "\n Chon diem cuoi:")))
(setq kc (distance dd dc))
(Setq dt ( / kc cd))
(setq an (angle dd dc))
(setq om (getvar "OSMODE"))
(Setvar "OSMODE" 0)
(setq ce (getvar "CMDECHO"))
(Setvar "CMDECHO" 0)
(setq bm (getvar "Blipmode"))
(Setvar "blipmode" 0)
(setq p1 dd
p2 ( polar p1 ( + an ( / pi 2 )) cd))
(repeat (+ ( fix dt) 1)
(command "line" p1 p2 "")
(setq p1 (polar p1 an cd)
p2 ( polar p2 an cd)))
(Setvar "OSMODE" om)
(Setvar "CMDECHO" ce)
(Setvar "blipmode" bm)
(setq *error* olderr)
(princ))
;
====================== Tao & dat mau layer hien hanh ================
(defun taolop (mau lop / a) (setq a (tblsearch "layer" lop))
(if (null a) (command "layer" "n" lop "c" mau lop "")) (setvar "clayer" lop)
(princ "\n Layer_ hien hanh la: ") (princ lop) (princ) )
(DEFUN C:L1 () (taolop 1
"Thep") )
(DEFUN C:L2 () (taolop 2
"Ghichu") )
(DEFUN TIM () (taolop 8 "TIM") (command "layer" "lt" "dashdot" "tim" ""))
(DEFUN C:L9 () (taolop 8 "MANH"))
(defun c:L3 () (tim))
(DEFUN khuat () (taolop 8 "KHUAT") (command "layer" "lt" "hidden" "khuat" ""))
(defun c:L4 () (khuat))
(DEFUN C:L5 () (taolop 3
"DIM") )
(DEFUN C:L6 () (taolop 4
"DAM") )

(DEFUN C:L7 () (taolop 5


(DEFUN C:L8 () (taolop 6

"1") )
"2") )

;******************* CAC LENH VE PLINE**************************************


(defun c:pw (/ pl23 wi43)
(setq pl23 (car (entsel "\nChon polyline: ")))
(setq wi43 (getstring "\nDo rong moi : "))
(command "pedit" pl23 "w" wi43 "")(princ)
)
;; ================== Chuyen line thanh polyline================================
======
(DEFUN C:LP(/ SSET NET SSL M)
(PRINC "\nChon duong thang :")
(SETQ SSET (SSGET))
(IF (/= NIL SSET) (PROGN
(SETQ SSL (SSLENGTH SSET))
(INITGET 4)
(SETQ NET (GETREAL "Do rong moi : "))
(IF (/= NIL NET)
(WHILE (> SSL 0)
(SETQ M (SSNAME SSET (SETQ SSL (- SSL 1)) ))
(IF (= (CDR (ASSOC '0 (ENTGET M))) "LINE")
(COMMAND "PEDIT" M "Y" "W" NET "")
)
)
)))
(PRINC)
)
(DEFUN c:lk () (COMMAND "Lengthen""dy"))
(defun c:mv () (command "pedit" pause "e" "m" pause "n" "m" pause "x" ""))
(defun c:len () (command "lengthen" "de"))
(defun c:io () (command "multiple")(princ))
;;; =========================== Layer hien hanh =============================
(defun layset (/ LAY) (setvar "cmdecho" 0)
(setq LAY (entsel "\nChon doi tuong cho Layer hien hanh : "))
(if LAY
(progn
(setq LAY (cdr (assoc 8 (entget (car LAY)))))
(command "_.layer" "set" LAY "") (princ (strcat "\nLayer : " LAY " da la hien
hanh.")) )
(progn
(if (not ddlop) (load "ddlop")) (if (setq LAY (ddlop))
(progn
(command "_.LAYER" "ON" LAY "THAW" LAY "SET" LAY "") (princ (strcat
"\nLayer : " LAY " da la hien hanh.")) ) ) ) )(princ) )
(defun c:LS
() (layset))
;;; ================== Cap nhat doi tuong vao layer hien hanh ==================
(Defun LAYCUR (/ SS CNT LAY) (setvar "cmdecho" 0)
(if (not (setq SS (ssget "i")))
(progn (prompt "\nChon doi tuong gan vao layer hien hanh: ")
(setq SS (ssget))
) )
(if SS
(progn
(setq CNT (sslength SS)) (princ (strcat "\n" (itoa CNT) " doi tuong tim thay.
"))
(command "_.move" SS "")
(if (> (getvar "cmdactive") 0)
(progn
(command "0,0" "0,0") (setq SS (ssget "p") CNT (- CNT (sslength SS))
) )

(setq SS nil)
) (if (> CNT 0)
(princ (strcat "\n" (itoa CNT) " doi tuong tren layer LOCK.")) ) ) )
(if SS
(progn
(setq LAY (getvar "CLAYER")) (command "_.chprop" SS "" "_la" LAY "")
(if (= (sslength SS) 1)
(prompt (strcat "\n1 doi tuong da cap nhat vao layer : " LAY " (layer hi
en hanh)."))
(prompt (strcat "\n" (itoa (sslength SS)) " doi tuong da cap nhat vao la
yer : " LAY " (layer hien hanh).")) ) )) (princ) );end
(defun c:Lm () (laycur))
;;; =========================== Layer Iso ===================================
(Defun LAYISO (/ SS CNT LAY LAYLST VAL) (setvar "cmdecho" 0)
(if (not (setq SS (ssget "i")))
(progn
(prompt "\nChon doi tuong cho layer muon hien: ")
(setq SS (ssget))
) )
(if SS
(progn
(setq CNT 0)
(while (setq LAY (ssname SS CNT))
(setq LAY (cdr (assoc 8 (entget LAY))))
(if (not (member LAY LAYLST))
(setq LAYLST (cons LAY LAYLST))
)
(setq CNT (1+ CNT))
)
(if (member (getvar "CLAYER") LAYLST)
(setq LAY (getvar "CLAYER"))
(setvar "CLAYER" (setq LAY (last LAYLST)))
)
(command "_.LAYER" "_OFF" "*" "_Y")
(foreach VAL LAYLST (command "_ON" VAL))
(command "")
(if (= (length LAYLST) 1)
(prompt (strcat "\nLayer " (car LAYLST) " da tach ra."))
(prompt (strcat "\n" (itoa (length LAYLST)) " layers da tach ra. "
"Layer " LAY " la hien hanh." ) ) ) ) ) (princ) )
(defun c:LI () (layiso))
;;; ================================ Layer ON ==============================
(Defun C:LO () (setvar "cmdecho" 0) (Command "_.LAYER" "_ON" "*" "") (princ "\n
Da hien toan bo cac Layer !") (princ))
;;; ============================ Layer OFF =================================
(defun C:LOF ()
(layproc "off")
(princ)
)
;;; ============================== Layer Lock ==============================
(Defun LAYLCK (/ LAY)
(setvar "cmdecho" 0)
(setq LAY (entsel "\nChon doi tuong cho layer muon LOCK : "))
(if LAY
(progn
(setq LAY (cdr (assoc 8 (entget (car LAY)))))
(Command "_.LAYER" "_LOCK" LAY "")
(princ (strcat "\nLayer " LAY " da LOCK."))
) ) (princ)
)
(defun c:LL () (laylck))
;;; ============================== Layer UNLock ==============================
(Defun LAYULK (/ LAY)
(setvar "cmdecho" 0)
(setq LAY (entsel "\nChon doi tuong cho layer muon UNLOCK : "))
(if LAY
(progn

(setq LAY (cdr (assoc 8 (entget (car LAY)))))


(Command "_.LAYER" "_UNLOCK" LAY "")
(princ (strcat "\nLayer " LAY " da UNLOCK."))

) ) (princ)
)
(defun c:LU () (layulk))
;;; ============================== Layer Freeze ===========================
(defun C:LF ()
(layproc "frz")
(princ)
)
;;; ============================== Layer Thaw ===============================
(Defun LAYTHW ()
(setvar "cmdecho" 0)
(setq Lay lff1) (setq Lff1 Lff2) (setq Lff2 Lff3) (setq Lff3 Lff4) (setq Lff4 L
ff5) (setq Lff5 Lff6) (setq Lff6 "0")
(Command "_.LAYER" "_THAW" LAY "")
(princ (strcat "\n
Layer : " LAY " da THAW."))
(princ) )
(defun c:LAYTHW () (laythw)) (defun c:LFF
() (laythw))
(Defun C:LTH () (setvar "cmdecho" 0) (Command "_.LAYER" "_THAW" "*" "") (princ
"\nDa THAW toan bo cac Layer !") (princ))
;;;===================== Delete all objects of Layer ========================
(defun DELAYER (/ ocmd L S)
(setq ocmd (getvar "CMDECHO"))
(setvar "CMDECHO" 0)
(setq L (strcase (getstring "\nLayer(s) to delete: ")))
(setq S (ssget "X" (list (cons 8 L))))
(if S
(command "ERASE" S "")
(princ "Layer empty or not a valid layer name.") )
(setq S nil)
(setvar "CMDECHO" ocmd)
(princ) )
(defun c:LD () (delayer))
;;============================= Change Color Layer ===========================
(DEFUN C:LCC (/ SSET SSL ENT COL LAY I MODE)
(SETQ SSET (SSGET))
(IF (/= NIL SSET)
(PROGN
(SETQ SSL (SSLENGTH SSET))
(SETQ LAY "")
(SETQ I 0)
(SETQ MODE 0)
(WHILE (< I SSL)
(SETQ ENT (ENTGET (SSNAME SSET I)))
(IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )
(SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) ))
(SETQ I (+ I 1))
)
(setq COL (getstring "\nNew color : "))
(COMMAND "LAYER" "C" COL LAY "")
(IF (= MODE 1) (COMMAND "") )
) )
(prompt (strcat "\nLayer has changed: " LAY))
(setvar "cmdecho" 1) (princ) )
;; ================ Change layer for DIM =============================
(DEFUN C:LCD (/ SSET SSL M LAY I)
(PRINC "\nSelect dimensions :")
(SETQ SSET (SSGET))
(IF (/= NIL SSET) (PROGN
(SETQ SSL (SSLENGTH SSET))
(SETQ LAY (GETSTRING "\nNew layer : "))

(IF (/= LAY NIL)


(PROGN
(SETQ I 0)
(WHILE (< I SSL)
(SETQ M (ENTGET (SSNAME SSET I)))
(IF (= (CDR (ASSOC '0 M)) "DIMENSION")
(PROGN
(SETQ M (SUBST (CONS 8 LAY) (ASSOC 8 M) M)) (ENTMOD M) ) )
(SETQ I (+ I 1)) ) ) ))) (PRINC)
)
;; ================ Change layer for TEXT =============================
(DEFUN C:LCT (/ SSET SSL M LAY I)
(PRINC "\nSelect Text :")
(SETQ SSET (SSGET))
(IF (/= NIL SSET) (PROGN
(SETQ SSL (SSLENGTH SSET))
(SETQ LAY (GETSTRING "\nNew layer : "))
(IF (/= LAY NIL)
(PROGN
(SETQ I 0)
(WHILE (< I SSL)
(SETQ M (ENTGET (SSNAME SSET I)))
(IF (= (CDR (ASSOC '0 M)) "TEXT")
(PROGN
(SETQ M (SUBST (CONS 8 LAY) (ASSOC 8 M) M)) (ENTMOD M) ) )
(SETQ I (+ I 1)) ) ) ))) (PRINC)
)
;
;
;
;

------------- LAYER PROCESSOR FOR LAYOFF & LAYFRZ -------------Main program body for LAYOFF and LAYFRZ. Provides user with
options for handling nested entities.
----------------------------------------------------------------

(defun LAYPROC ( TASK / NOEXIT OPT BLKLST CNT VPMODE EN PMT ANS LAY NEST BLKLST
VPSS)

; -------------------- Variable initialization ------------------(setq NOEXIT T)


(setq OPT (getenv (strcat "ACET_Lay" TASK)))
; get default option setting
(if (not (or (null OPT) (= OPT ""))) (setq OPT (atoi OPT)))
(setq CNT 0)
(if (and (= 0 (getvar "tilemode"))
ace
(/= 1 (getvar "cvport"))
)
(setq VPMODE T)
eze behavior
)

; cycle counter
; if in a paper sp
; viewport
; set flag for fre

; ----------------------- Selection Prompt ----------------------(while NOEXIT

(setvar "errno" 7)
(while (= (getvar "errno") 7)
(setvar "errno" 0)
(initget "Options Undo _Options Undo")
(cond
((= TASK "off")
(setq EN (nentsel "\nChon doi tuong cho layer muon OFF or [Options/Und
o]: "))
)
((= TASK "frz")
(setq EN (nentsel "\nChon doi tuong cho layer muon frozen or [Options/
Undo]: "))
)
((= TASK "vpi")
(setq EN (nentsel "\nSelect an object on the layer to be Isolated in v
iewport or [Options/Undo]: "))
)
)
(if (= (getvar "errno") 7)
(prompt "\nNothing selected.")
)
)
; ---------------------- Options Selected ----------------------(cond
((= EN "Options")
(initget "No Block Entity
(cond
((= OPT 1)
(setq PMT "\nEnter an
ng/]<No nesting>: ")
)
((= OPT 2)
(setq PMT "\nEnter an
y level nesting>: ")
)
(T
(setq PMT "\nEnter an
k level nesting>: ")
)
)
(setq ANS (getkword PMT))

_No Block Entity")


option [Block level nesting/Entity level nesti

option [Block level nesting/No nesting/]<Entit

option [Entity level nesting/No nesting/]<Bloc

(cond
((null ANS)
(if (or (null OPT) (= OPT ""))
(progn
(setq OPT 3)
(setenv (strcat "ACET_Lay" TASK) "3")
)
)
)
((= ANS "No")
(setq OPT 1)
(setenv (strcat "ACET_Lay" TASK) "1")
)
((= ANS "Entity")
(setq OPT 2)
(setenv (strcat "ACET_Lay" TASK) "2")

)
(T
(setq OPT 3)
(setenv (strcat "ACET_Lay" TASK) "3")
)
)
)
; ---------------------- Undo selected --------------------------((= EN "Undo")
(if (> CNT 0)
(progn
(command "_.u")
(setq CNT (1- CNT))
)
(prompt "\nEverything has been undone.")
)
)
; ------------------------- Find Layer --------------------------(EN
(setq BLKLST (last EN))
(setq NEST (length BLKLST))
(cond
; If the entity is not nested or if the option for entity
; level nesting is selected.
((or (= OPT 2) (< (length EN) 3))
(setq LAY (entget (car EN)))
)
; If no nesting is desired
((= OPT 1)
(setq LAY (entget (car (reverse BLKLST))))
)
; All other cases (default)
(T
(setq BLKLST (reverse BLKLST))
(while (and
; strip out xrefs
( > (length BLKLST) 0)
(assoc 1 (tblsearch "BLOCK" (cdr (assoc 2 (entget (car BLKLST)))
)))
);and
(setq BLKLST (cdr BLKLST))
)
(if ( > (length BLKLST) 0)
; if there is a block present
(setq LAY (entget (car BLKLST))) ; use block layer
(setq LAY (entget (car EN)))
; else use layer of nensel
)
)

)
; ------------------------ Process Layer ------------------------(setq LAY (cdr (assoc 8 LAY)))
(if (= LAY (getvar "CLAYER"))
(cond
((= TASK "off")
(initget "Yes No _Yes No")
(setq ANS (getkword (acet-str-format "\nBan muon %1 (the CURRENT l
ayer) off? [Yes/No] <No>: " LAY)))
(setq ANS (if (null ANS) "No" ANS))
(if (= ANS "No")
(setq LAY nil)
)
)
((and (= TASK "frz") (not VPMODE))
(prompt (acet-str-format "\nKhong freeze layer %1 (the CURRENT lay
er)." LAY))
(setq LAY nil)
)
)
(setq ANS nil)
)
(if LAY
(cond
((= TASK "off")
(if ANS
(command "_.-LAYER" "_OFF" LAY "_Yes" "")
(command "_.-LAYER" "_OFF" LAY "")
)
(prompt (acet-str-format "\nLayer %1 da OFF." LAY))
(setq CNT (1+ CNT))
)
((and (= TASK "frz") VPMODE)
(command "_.VPLAYER" "_FREEZE" LAY "_current" "")
(prompt (acet-str-format "\nLayer %1 da frozen ." LAY))
(setq CNT (1+ CNT))
)
((= TASK "frz")
(command "_.-LAYER" "_FREEZE" LAY "")
(prompt (acet-str-format "\nLayer %1 da frozen." LAY ))
(setq CNT (1+ CNT))
)
((= TASK "vpi")
(setq VPSS (ssget "_x" (list '(-4 . "<AND")
'(0 . "VIEWPORT")
get all viewports
'(-4 . "<NOT")
(cons 69 (getvar "cvport"))
except the current
'(-4 . "NOT>")
'(-4 . "<NOT")
'(69 . 1)
and the paperspace viewport (1)
'(-4 . "NOT>")
'(-4 . "AND>")
)

;
;

)
)
(command "_.VPLAYER" "_FREEZE" LAY "_select" VPSS "" "")
(prompt (acet-str-format "\nLayer %1 da frozen in all viewports bu
t the current one." LAY ))
(setq CNT (1+ CNT))
)
)
)
)
; ---------------------- Nothing Selected ----------------------((not EN)
(setq NOEXIT nil)
)
)
)
)

;Can dim theo phuong Y


(DEFUN C:CY ()
(SETQ CMD (GETVAR "CMDECHO"))
(SETVAR "CMDECHO" 0)
(COMMAND "UCS" "W")
(SETVAR "CMDECHO" 1)
(PROMPT"\nChon cac dim can theo phuong Y ")
(SETQ SET (SSGET))
(PROMPT"\nChon vi tri moi cua duong dim")
(SETQ P1 (GETPOINT))
(SETQ X3 (CAR P1))
(SETQ QUANT (SSLENGTH SET))
(SETQ INDEX 0)
(WHILE (< INDEX QUANT)
(IF (AND(= "DIMENSION" (CDR (ASSOC 0 (SETQ A (ENTGET (SSNAME SET INDEX))))))
)
(PROGN
(SETQ L10 (ASSOC 10 A))
(SETQ M10 (CDR L10))
(SETQ L11 (ASSOC 11 A))
(SETQ M11 (CDR L11))
(SETQ P10 (LIST 10 X3 (CADR M10) (CADDR M10)))
(SETQ A (SUBST P10 L10 A))
(ENTMOD A)
)
)
(SETQ INDEX (+ INDEX 1))
)
(SETVAR "CMDECHO" 0)
(COMMAND "UCS" "P")
(SETVAR "CMDECHO" CMD)
)
;CAT DIM THEO PHUONG DOC
(DEFUN C:YY ()
(SETQ CMD (GETVAR "CMDECHO"))
(SETVAR "CMDECHO" 0)

(COMMAND "UCS" "W")


(SETVAR "CMDECHO" 1)
(PROMPT"\nChon cac duong dim phuong Y de cat")
(SETQ SET (SSGET))
(PROMPT"\nChon vi tri cat")
(SETQ P1 (GETPOINT))
(SETQ X3 (CAR P1))
(SETQ QUANT (SSLENGTH SET))
(SETQ INDEX 0)
(WHILE (< INDEX QUANT)
(IF (AND(= "DIMENSION" (CDR (ASSOC 0 (SETQ A (ENTGET (SSNAME SET INDEX))))))
)
(PROGN
(SETQ L13 (ASSOC 13 A))
(SETQ M13 (CDR L13))
(SETQ L14 (ASSOC 14 A))
(SETQ M14 (CDR L14))
(SETQ P13 (LIST 13 X3 (CADR M13) (CADDR M13)))
(SETQ P14 (LIST 14 X3 (CADR M14) (CADDR M14)))
(SETQ A (SUBST P13 L13 A))
(SETQ A (SUBST P14 L14 A))
(ENTMOD A)
)
)
(SETQ INDEX (+ INDEX 1))
)
(SETVAR "CMDECHO" 0)
(COMMAND "UCS" "P")
(SETVAR "CMDECHO" CMD)
(PRINC)
)
(DEFUN C:CX ()
(SETQ CMD (GETVAR "CMDECHO"))
(SETVAR "CMDECHO" 0)
(COMMAND "UCS" "W")
(SETVAR "CMDECHO" 1)
(PROMPT"\nChon cac dim can theo phuong X")
(SETQ SET (SSGET))
(PROMPT"\nChon vi tri moi cua duong dim")
(SETQ P1 (GETPOINT))
(SETQ Y3 (CADR P1))
(SETQ QUANT (SSLENGTH SET))
(SETQ INDEX 0)
(WHILE (< INDEX QUANT)
(IF (AND(= "DIMENSION" (CDR (ASSOC 0 (SETQ A (ENTGET (SSNAME SET INDEX))))))
)
(PROGN
(SETQ L10 (ASSOC 10 A))
(SETQ M10 (CDR L10))
(SETQ P10 (LIST 10 (CAR M10) Y3 (CADDR M10)))
(SETQ A (SUBST P10 L10 A))
(ENTMOD A)
)
)
(SETQ INDEX (+ INDEX 1))
)
(SETVAR "CMDECHO" 0)
(COMMAND "UCS" "P")
(SETVAR "CMDECHO" CMD)

)
;CAT DIM THEO PHUONG NGANG
(DEFUN C:XX()
(SETQ CMD (GETVAR "CMDECHO"))
(SETVAR "CMDECHO" 0)
(COMMAND "UCS" "W")
(SETVAR "CMDECHO" 1)
(PROMPT"\nChon cac duong dim phuong X de cat")
(SETQ SET (SSGET))
(PROMPT"\nChon vi tri cat")
(SETQ P1 (GETPOINT))
(SETQ Y3 (CADR P1))
(SETQ QUANT (SSLENGTH SET))
(SETQ INDEX 0)
(WHILE (< INDEX QUANT)
(IF (AND(= "DIMENSION" (CDR (ASSOC 0 (SETQ A (ENTGET (SSNAME SET INDEX))))))
)
(PROGN
(SETQ L13 (ASSOC 13 A))
(SETQ M13 (CDR L13))
(SETQ L14 (ASSOC 14 A))
(SETQ M14 (CDR L14))
(SETQ P13 (LIST 13 (CAR M13) Y3 (CADDR M13)))
(SETQ T13 (CDR P13))
(SETQ P14 (LIST 14 (CAR M14) Y3 (CADDR M14)))
(SETQ A (SUBST P13 L13 A))
(SETQ A (SUBST P14 L14 A))
(ENTMOD A)
)
)
(SETQ INDEX (+ INDEX 1))
)
(SETVAR "CMDECHO" 0)
(COMMAND "UCS" "P")
(SETVAR "CMDECHO" CMD)
)
;chuong trinh chen lai mot block
(defun c:ib()
(setq ent (entget (car (entsel "\nchon lai block de chen:"))))
(setq bname (cdr (assoc 2 ent)))
(command ".insert" bname PAUSE "1" "1" "0" "" )
(princ)
)

;;; DDTDV.lsp Version 1.10


;;; Ve truc dinh vi theo HE TRUC hoac TUNG TRUC.
;;; Copyright by Nguyen Cong Thanh 98K5-HAU Design group (c). 5/1998
;;; --------------------------------------------------------------------------(defun DTR(a)
(* pi(/ a 180.000))
)
(defun tdv_err (s)
(if (/= s "Function cancelled")
(princ (strcat "\nError: " s))
)
(setq *error* old_err)

(princ)
)
;;;
(defun C:TRUC(/ app str t_r chon chon_k h_t)
(setvar "CMDECHO" 0)
(setq old_err *error*
*error* tdv_err)
(setq str "\nHetruc/<Tungtruc>:" t_r 1 chon 1 h_t NIL)
(progn
(initget "T H")
(setq chon_k(getkword str))
(cond
((= chon_k "T")
(progn
(setq str "\nHetruc/<Tungtruc>:" t_r 1 h_t NIL)
)
)
((= chon_k "H")
(progn
(setq str "\n<Hetruc>/Tungtruc:" h_t 1 t_r NIL)
)
)
((= chon_k NIL) (progn (setq t_r 1 h_t NIL) ))
)
)
;;;
;;; ----- Tung truc ----(defun t_truc(/ i sp i a giong chu tex rtr ap)
(setvar "CMDECHO" 0)
(setvar "BLIPMODE" 0)
(setq sp(getpoint "\nDiem giong:")
a 1
i a
ap 1 )
(if (= ap 1) (progn
(while i (progn
(if(null chu)(setq chu 300))
(if(null giong)(setq giong 300))
(if(null rtr)(setq rtr 300))
(initget "C D R")
(setq a(getpoint(strcat "\nR.truc<"(rtos rtr 2 3)">/Cao chu<"(rtos chu 2 3)">
/Dai giong<"(rtos giong 2 3)">/<huong giong>:")sp))
(cond
((= a "C")(setq chu(getreal "\nCao chu<300>:")) )
((= a "D" )(setq giong(getreal "\nDai dong<300>:")) )
((= a "R")(setq rtr(getreal "\nBan kinh truc<300>:")))
)
(if(> chu rtr)(alert "Chu qua lon, chon lai !!!"))
(if(and(and(/= a "C")(/= a "D")) (/= a "R")) (setq i NIL))
)
)
(command "_.LINE" sp (polar sp (angle sp a) (+ giong rtr)) "")
(command "_.CIRCLE" (setq pt(polar sp (angle sp a) (+ giong rtr))) rtr "")
(command "_.TRIM" "L" "" pt"")
(setvar "ANGDIR" 0)
(setq tex(strcase(getstring "\nTen truc: ")))
(command "_.TEXT" "J" "M" pt chu 0 tex "")

))
(princ)
);End funtion t_truc.
;;; ----- He truc ----(defun h_truc(/ i sp chu rtr giong a tex sp_h next sp1 kc)
(setq sp(getpoint "\nDiem dong truc thu nhat: ") i 1)
(while i (progn
(if(null chu)(setq chu 300))
(if(null giong)(setq giong 300))
(if(null rtr)(setq rtr 300))
(initget "C D R")
(setq a(getpoint(strcat "\nR.truc<"(rtos rtr 2 3)">/Cao chu<"(rtos chu 2 3)"
>/Dai giong<"(rtos giong 2 3)">/<huong giong>:")sp))
(cond
((= a "C")(setq chu(getreal "\nCao chu<300>:")) )
((= a "D" )(setq giong(getreal "\nDai dong<300>:")) )
((= a "R")(setq rtr(getreal "\nBan kinh truc<300>:")))
)
(if(> chu rtr)(alert "Chu qua lon, chon lai !!!"))
(if(and(and(/= a "C")(/= a "D")) (/= a "R")) (setq i NIL))
)
)
(command "_.LINE" sp (polar sp (angle sp a) (+ giong rtr)) ""
"_.CHPROP" "l" "" "la" "Dim" "")
(command "_.CIRCLE" (setq pt(polar sp (angle sp a) (+ giong rtr))) rtr
"_.CHPROP" "l" "" "la" "Dim" "")
(command "_.TRIM" "L" "" pt"")
(setvar "ANGDIR" 0)
(setq tex(strcase(getstring "\nTen truc: ")))
(command "_.TEXT" "J" "M" pt chu "0" tex
"_.CHPROP" "l" "" "la" "Dim" "")
; --- Truc tiep theo --(if(/= a NIL)
(progn
(setq kc 1 sp_h sp)
(while kc
(progn
(setq next(getdist "\nKhoang cach den truc tiep theo: "))
(if(= next NIL)(setq kc NIL)
(progn
(setq sp1(polar sp_h (+ (angle sp a) (dtr 90)) next))
(command "_.LINE" sp1 (polar sp1 (angle sp a) (+ giong rtr)) ""
"_.CHPROP" "l" "" "la" "Dim" "")
(command "_.CIRCLE" (setq pt(polar sp1 (angle sp a) (+ giong rtr))) rtr
"_.CHPROP" "l" "" "la" "Dim" "")
(command "_.TRIM" "L" "" pt"")
(setvar "ANGDIR" 0)
(setq tex(strcase(getstring "\nTen truc: ")))
(if (/= tex NIL)
(progn
(command "_.TEXT" "J" "M" pt chu "0" tex
"_.CHPROP" "l" "" "la" "Dim" "")
(setq tex NIL)
)
)

)
)
(setq sp_h sp1)
)
)
)
);End if.
);End funtion h_truc.
;;;
(if(= t_r 1)(t_truc))
(if(= h_t 1)(h_truc))
(setq *error* old_err)
;;;
(princ)
);End.
;;; The end of funtion.
(princ "DDTDV version 1.10 ...")
(princ " Loaded !")

You might also like