Orientamento hatch

Mi è capitato di recente di dover disegnare un tetto a falde complesso, con profili molto irregolari, e dovevo piazzare il retino delle tegole con un sacco di orientamenti diversi. Ho trovato quattro modi diversi per farlo.

orientamento hatch

Primo metodo

…il più faticoso:
si misura l'angolo dell'oggetto a cui mettersi paralleli e poi lo si copia nelle proprietà dell'hatch.

Secondo metodo

Si copia l'angolo della linea (dalle proprietà - non si può fare con il segmento di una polilinea) e lo si copia nelle proprietà dell'hatch.

Terzo metodo

Si passa sul grip centrale dell'hatch e si sceglie hatch angle

Alt text

Nota che c'è anche Origin Point per cambiare rapidamente l'origine.

Quarto metodo:

Questo funziona solo nella versione full: ho chiesto aiuto online e mi è stato subito proposto un autolisp funzionante:

(defun c:hatchalign (/ prompt_ aligning_edge_ename_data picked_point picked_point_parameter
    							previous_parameter previous_parameter_point next_parameter next_parameter_point 
    							aligning_angle hatch_to_align 
    						 )

    ;***************************************************************************************************************************

    (defun round_ (float_number up / whole_number)
    	(setq whole_number (fix float_number))
    	(if up
    		(1+ whole_number)
    		whole_number
    	)
    )

    ;***************************************************************************************************************************

    (setq prompt_ (princ "\nPick pline edge to align hatch to: ") 
    	  aligning_edge_ename_data (ssnamex (ssget "_:S" '((0 . "lwpolyline"))))
    	  picked_point (vlax-curve-getclosestpointto (setq aligning_object (vlax-ename->vla-object (cadar aligning_edge_ename_data)))
    	  		                 					 (cadr (last (car  aligning_edge_ename_data)))
    	  		       )      
    	  picked_point_parameter (vlax-curve-getparamatpoint aligning_object picked_point)
    	  previous_parameter (round_ picked_point_parameter nil)
    	  previous_parameter_point (vlax-curve-getpointatparam aligning_object previous_parameter)
    	  next_parameter (round_ picked_point_parameter t)
    	  next_parameter_point (vlax-curve-getpointatparam aligning_object next_parameter)
    	  aligning_angle (angle previous_parameter_point next_parameter_point)
    	  prompt_ (princ "\nPick hatch to align pattern: ") 
    	  hatch_to_align (ssname (ssget "_:S" '((0 . "hatch"))) 0)
    )
    (vla-put-patternangle (vlax-ename->vla-object hatch_to_align) aligning_angle)
    (princ)
)

Offset dell'angolo

Manca ancora la possibilà di un offset (ruotare di un angolo rispetto a quello dell'oggetto di riferimento: 90°?) ma cercheremo di porvi rimedio.
Al momento bisogna sommarlo/sottrarlo dalla proprietà angolo dell'hatch, con ognuno dei suddetti metodi.
Avete altre proposte?

⇠previous post all posts next post⇢

Comment Form is loading comments...