;;
;; 부재리스트를 선택해서 부재를 블럭으로 생성하기
;; c:hg ; Make H-beam Girder
;; c:hc ; Make H-beam Column
;; pick text "G1_H-$$$x$$$x$$x$$"
;;
;;======= Make H-BEAM ======
(defun KM:SPLIT_STR ( str spltr / str0 str1 str2 spliter split_position )
(setq str0 str)
(setq spliter spltr)
(setq split_position (vl-string-search spliter str0))
(setq str1 (substr STR0 1 split_position))
(setq str2 (substr STR0 (+ 2 split_position)))
(setq _SPLITED_STRs (list str1 str2))
;(princ)
);defun
(defun KM:STEEL_SIZE ( member / sn str2 code H b tW tF)
(setq sn member)
(setq code (car (KM:SPLIT_STR sn "-")))
(setq str2 (cadr (KM:SPLIT_STR sn "-")))
(setq H (car (KM:SPLIT_STR str2 "X")))
(setq str2 (cadr (KM:SPLIT_STR str2 "X")))
(setq b (car (KM:SPLIT_STR str2 "X")))
(setq str2 (cadr (KM:SPLIT_STR str2 "X")))
(setq tW (car (KM:SPLIT_STR str2 "X")))
(setq tF (cadr (KM:SPLIT_STR str2 "X")))
(setq _MEMBER_DATA (list code H b tW tF))
);defun
(defun KM:DRAW_H_BEAM ( h_beam insert_point steel_layer / sn H b t1 t2)
;(setq LAYER_COL "AS-CLXM-STEL")
;(setq LAYER_GIR "AS-SECT-BMXM")
(setq LAYER_STEEL steel_layer)
(setq sn h_beam)
(setq p1 insert_point)
(setq data.mems (KM:STEEL_SIZE sn))
(setq size (cdr data.mems))
(setq H (atof (car size)))
(setq b (atof (cadr size)))
(setq t1 (atof (caddr size)))
(setq t2 (atof (cadddr size)))
;
(setq p2 (list (+ (car p1) (/ b -2.0)) (+ (cadr p1) 0.0) 0.0))
(setq p3 (list (+ (car p1) (/ b -2.0)) (+ (cadr p1) (* t2 -1)) 0.0))
(setq p4 (list (+ (car p1) (/ t1 -2.0)) (+ (cadr p1) (* t2 -1)) 0.0))
(setq p5 (list (+ (car p1) (/ t1 -2.0)) (+ (cadr p1) (- t2 H)) 0.0))
(setq p6 (list (+ (car p1) (/ b -2.0)) (+ (cadr p1) (- t2 H)) 0.0))
(setq p7 (list (+ (car p1) (/ b -2.0)) (+ (cadr p1) (* H -1)) 0.0))
(setq p8 (list (+ (car p1) 0.0) (+ (cadr p1) (* H -1)) 0.0))
(setq p_7 (list (+ (car p7) b) (cadr p7) 0.0))
(setq p_6 (list (+ (car p6) b) (cadr p6) 0.0))
(setq p_5 (list (+ (car p5) t1) (cadr p5) 0.0))
(setq p_4 (list (+ (car p4) t1) (cadr p4) 0.0))
(setq p_3 (list (+ (car p3) b) (cadr p3) 0.0))
(setq p_2 (list (+ (car p2) b) (cadr p2) 0.0))
(setq pts (list p1 p2 p3 p4 p5 p6 p7 p8 p_7 p_6 p_5 p_5 p_4 p_3 p_2))
(setq p0 (list (car p1) (- (cadr p1) (/ H 2.0)) 0.0)); p0 is the origin of shape of the steel
;
;;AS-CLXM-STEL
;;AS-SECT-BMXM
(setq shape_steel (entMakePLine pts 256 LAYER_STEEL 1)) ; shape of the steel byblock color
(setq name_steel (list (cons 0 "TEXT") (cons 1 h_beam) (cons 7 "Standard") (cons 8 "defpoints") (cons 10 p7) (cons 40 12))); name of the steel
(setq guideline1_steel (list (cons 0 "LINE") (cons 6 "BYLAYER") (cons 8 "defpoints") (cons 10 p7) (cons 11 p0))); guideline1 is leftlower to origin of the steel
(setq guideline2_steel (list (cons 0 "LINE") (cons 6 "BYLAYER") (cons 8 "defpoints") (cons 10 p0) (cons 11 p_2))); guideline2 is origin to rightupper of the steel
;
;
;(setq block_header (list (cons 0 "BLOCK") (cons 100 "AcDbEntity") (cons 100 "AcDbBlockBegin")(cons 2 h_beam) (cons 8 LAYER_STEEL)))
;(setq block_ending (list (cons 0 "ENDBLK") (cons 100 "AcDbEntity") (cons 100 "AcDbBlockEnd")))
;
;(entmake block_header)
;(entmake shape_steel)
(entmake name_steel)
(entmake guideline1_steel)
(entmake guideline2_steel)
;(entmake block_ending)
;
(princ)
);defun
(defun entMakePLine (pts lineColor layerName closed)
(entmake (append
(list (cons 0 "LWPOLYLINE")
(cons 100 "AcDbEntity")
(cons 100 "AcDbPolyline")
(cons 370 0)
(cons 8 layerName)
(cons 62 lineColor) ;;Color: 7-white
(cons 90 (length pts))
(cons 70 closed)
);list
(mapcar'(lambda (x) (cons 10 x)) pts)
);append
)
(princ)
);defun
(defun c:hg ( );MAKE STRUCTURAL GIRDER STEEL h-beam
(setq steel_layer "AS-SECT-BMXM")
(prompt "...Select Name of the Steel...\n")
(while (not (setq steel_name (ssget ":s" '((0 . "*TEXT"))))))
(setq h-beam (cdr (assoc 1 (entget (ssname steel_name 0)))))
(setq h-beam (strcase h-beam)); strcase, abc --> ABC
(setq insert_point (getpoint "\nSpecify Basepoint to make block\n"))
(KM:DRAW_H_BEAM h-beam insert_point steel_layer)
;(KM:MH h-beam insert_point)
(princ)
);defun
(defun c:hc ( );MAKE STRUCTURAL COLUMN STEEL h-beam
(setq steel_layer "AS-CLXM-ST'EL")
(prompt "...Select Name of the Steel...\n")
(while (not (setq steel_name (ssget ":s" '((0 . "*TEXT"))))))
(setq h-beam (cdr (assoc 1 (entget (ssname steel_name 0)))))
(setq h-beam (strcase h-beam)); strcase, abc --> ABC
(setq insert_point (getpoint "\nSpecify Basepoint to make block\n"))
(KM:DRAW_H_BEAM h-beam insert_point steel_layer)
;(KM:MH h-beam insert_point)
(princ)
);defun
(defun c:h- ( );prefix "H-"
(while (not (setq steel_name (ssget ":s" '((0 . "*TEXT"))))))
(setq h-beam (cdr (assoc 1 (entget (ssname steel_name 0)))))
(setq pickpoint (getpoint "\n...Pick point:...\n"))
(entmake (list (cons 0 "TEXT") (cons 1 (strcase (strcat "H-" h-beam))) (cons 7 "Standard") (cons 8 "defpoints") (cons 10 pickpoint) (cons 40 100)))
);defun
(defun c:HH ( );MEMBER NAME_SIZE
(while (not (setq MEMBER_NAME (ssget ":s" '((0 . "*TEXT"))))))
(while (not (setq MEMBER_SIZE (ssget ":s" '((0 . "*TEXT"))))))
(setq MN (cdr (assoc 1 (entget (ssname MEMBER_NAME 0)))))
(setq MS (cdr (assoc 1 (entget (ssname MEMBER_SIZE 0)))))
(setq PP (getpoint "\n...Pick point:...\n"))
(entmake (list (cons 0 "TEXT") (cons 1 (strcase (strcat MN "_" MS))) (cons 7 "Standard") (cons 8 "0") (cons 10 PP) (cons 40 300)))
);defun
(defun KM:MH ( SN BP)
(command "-.block" SN BP (ssget))
(princ)
)
g1_h-200x200x8x12
'autocad' 카테고리의 다른 글
VPORTS SCRIPT (0) | 2022.07.05 |
---|---|
PLOT PDF by ATTRIB(update20220616) (0) | 2022.06.16 |
DUPLICATE BLOCK AUTOLISP (0) | 2022.05.11 |
MINSERT Block eXplode into ARRAYRECT (0) | 2022.04.13 |
Multi Taging on Structural Frames (0) | 2022.04.11 |