![]() ; Dimension'g for Chamfer & Radius
; Chamf / Radisu ÀÚµ¿ÀÎ½Ä ; Dimtxt, Dimscale, Dimlfac Àû¿ë ;¸®½À±¸¹® ÇϴܺÎ...»ç¿ëÀÚ ·¹ÀÌ¾î ¹× »ö»óÀ» ¼³Á¤Çϼ¼¿ä
;Sub routines...
(defun @dtr(&angle) (setq &angle (* pi (/ &angle 180.0)))) (defun @rtd(&angle) (setq &angle (* 180.0 (/ &angle pi)))) (defun @angle(&pt1 &pt2) (@rtd (angle &pt1 &pt2))) (defun @polar (&pt &angle &dist) (polar &pt (@dtr &angle) &dist)) (defun @list (&bpt &X &Y) (list (+ (car &bpt) &X) (+ (cadr &bpt) &Y))) (defun @nth(&Number &VarName) (nth (1- &Number) &VarName)) ;Main... (defun C:DCR(/ $OldOsnap $NewOsnap $OldLayer $Oldortho $Sel $10 $11 $DistX $DistY nString $String $Spt $Ept qty $Angle $Apt) ;->*error* start (defun *error* (msg)(princ "error: ")(princ msg) (setvar "osmode" !OldOsnap) (setvar "clayer" !OldLayer) (setvar "orthomode" !OldOrtho) (princ)) ;-<*error* end (setvar "cmdecho" 0) (setq $OldOsnap (getvar "osmode")) (setq $OldLayer (getvar "clayer")) (setq $OldOrtho (getvar "orthomode")) (setq $OldDimlfac (getvar "dimlfac")) (setvar "osmode" 0) (setvar "orthomode" 0) (setq $Sel (entget (car (entsel "n¸ðµû±â °´Ã¼ ¼±ÅÃ: ")))) (if (= (setq $Entity (cdr (assoc 0 $Sel))) "LINE") (progn (setq $10 (cdr (assoc 10 $Sel))) (setq $11 (cdr (assoc 11 $Sel))) (setq $DistX (abs (- (car $10) (car $11)))) (setq $DistY (abs (- (cadr $10) (cadr $11)))) );progn (progn (setq $10 (cdr (assoc 10 $Sel))) (setq $DistX (cdr (assoc 40 $Sel))) (setq $DistY (cdr (assoc 40 $Sel))) );progn
);if (if (= $DistX $DistY) (progn (if (= $Entity "LINE") (progn (setq nString (strcat "C" (rtos (* $DistX $OldDimlfac) 2 1))) (setq $Spt (@polar $10 (@angle $10 $11) (/ (distance $10 $11) 2.0))) );progn (progn (setq nString (strcat "R" (rtos (* $DistX $OldDimlfac) 2 1))) (setq $Spt (@polar $10 (- (@rtd (cdr (assoc 51 $Sel))) 45) (cdr (assoc 40 $Sel)))) );progn );if (setq $Ept (getpoint $Spt "n³¡Á¡: ")) (princ (strcat "n¼±Åà °´Ã¼ < C or R " (rtos (* $DistX $OldDimlfac) 2 2) ">,"));++++++ (setq qty (getint "¼ö·® <1:Enter>:"));++++++ (if qty (setq qty (rtos qty))) (if (= qty nil) (progn (setq $String nString) );progn (progn (setq $String (strcat qty "-" nString)) );progn );if (setq $Angle (@angle $Spt $Ept)) (setq $Apt (@polar $Spt $Angle (* (getvar "dimscale") (getvar "dimasz")))) (command "layer" "s" "44" "") ;<<<<===== 44 »ç¿ëÀÚ ·¹À̾î À̸§ º¯°æ (command "pline" $Spt "w" 0 (/ (getvar "dimasz") 3.0) $Apt "w" 0 0 $Ept "") (COMMAND "CHANGE" "L" "" "P" "C" "251" "") ;<<<<===== 251 ¸®´õ¼±»ö»ó º¯°æ (if (and (>= $Angle 90) (<= $Angle 270)) (command "text" (@polar $Ept (- $Angle 90) (* (getvar "dimscale") 1)) (* (getvar "dimscale") (getvar "dimtxt")) (- $Angle 180) $String) (command "text" "r" (@polar $Ept (+ $Angle 90) (* (getvar "dimscale") 1)) (* (getvar "dimscale") (getvar "dimtxt")) $Angle $String) );if (COMMAND "CHANGE" "L" "" "P" "C" "42" "") ;<<<<===== 42 ¹®ÀÚ»ö»ó º¯°æ );progn );if (setvar "osmode" $OldOsnap) (setvar "clayer" $OldLayer) (setvar "orthomode" $OldOrtho) (princ) ); defun |