;;; HO - hatch offset ;;; crea un tratteggio nell'area specificata ;;; distanziato di una distanza data dai bordi. ;;; 22/01/2014 ...by www.domenicoieva.com ;;; (defun c:ho ( / new pt old_dis old_sca tmp) ;; (setvar"cmdecho"0) (setq pt(getpoint"\nSeleziona punto interno all'area:")) (if (not dis) (setq dis(getdist"\nImmetti distanza di offset:")) (progn (setq old_dis dis) (setq dis(getdist(strcat"\nImmetti distanza di offset <" (rtos dis 2 2 ) ">:"))) (if (not dis)(setq dis old_dis)) ) ) (if (not cam)(c:hocfg)) (if (/= (strcase cam) "SOLID") (if (not sca) (setq sca(getdist"\nScala del tratteggio:")) (progn (setq old_sca sca) (setq sca(getdist(strcat"\nScala del tratteggio <" (rtos sca 2 2 ) ">:"))) (if (not sca)(setq sca old_sca)) ) ) ) (command "_bpoly" pt "" "_offset" dis (setq tmp(entlast)) pt "") (entdel tmp) (if (= (strcase cam) "SOLID") (command "_.hatch" cam (setq new(entlast)) "" ) (command "_.hatch" cam sca rot (setq new(entlast)) "" ) ) (If (= rim "Si")(entdel new)) (princ) ) ;; HOCFG ;; comando di configurazione di HO (defun c:hocfg () (initget 1 ) (setq cam (getstring"\nNome modello di tratteggio:")) (initget 1 ) (setq rot (getangle"\nAngolo di rotazione trattteggio:")) (initget 1 "Si No") (setq rim (getkword"\nVuoi rimuovere il contorno del tratteggio [Si / No] ?:")) ) (Alert"digita HO per avviare il programma\ne HOCFG per configurarlo.")