
- (defun c:jctc (/ tc_e tc_vlae tc_name tc_scle tc_ang tc_la tc_col key e p)
- (setq tc_e (car (entsel "\n选择填充源图案:")))
- (while
- (setq tc_vlae (vlax-ename->vla-object tc_e)
- tc_name (vla-get-patternname tc_vlae)
- tc_scle (vla-get-patternscale tc_vlae)
- tc_ang (vla-get-patternangle tc_vlae)
- tc_la (vla-get-layer tc_vlae)
- tc_col (vla-get-color tc_vlae)
- )
- (if (= tc_col 256)
- (setq tc_col (cdr (assoc 62 (entget (tblobjname "layer" tc_la)))))
- )
- (prompt "\n选择填充对象:")
- (setq ss (ssget))
- (if (= ss nil)
- (progn
- (while
- (setq p (getpoint "\n指定内部点"))
- (command "boundary" "A" "o" "R" "" p "")
- (IF (= (vla-get-objectname (setq vlae (vlax-ename->vla-object (setq e (entlast))))) "AcDbRegion")
- (progn
- (command "hatch" "p" tc_name tc_scle (* 180 (/ tc_ang pi)) e "")
- (vla-put-color (vlax-ename->vla-object (entlast)) tc_col)
- (vla-delete vlae)
- );;end_progn
- (princ "\n无法点选填充,请选择填充...")
- );;;end_if
- );;end_while
- );;end_progn
- (progn
- (command "hatch" "p" tc_name tc_scle (* 180 (/ tc_ang pi)) ss "")
- (vla-put-color (vlax-ename->vla-object (entlast)) tc_col)
- );;end_progn
- );;;end_if
- );;end_while
- );;end
|