;;;********************************************************************************* ;;;「記号付き文字」コマンド ;;;2001/12/5 ;;;作者--てん....だす (^^; ;;;********************************************************************************* (defun C:ten_8 (/ r mark SVDIMSCALE pt1 pt2 pt3 pt4 pt5 pm moji_AB moji_m) (ten_tuku-1 " □文字= K △文字= S ○文字= M " kw) ;kw (ten_tuku_a " 前文字を入力 " moji_a) ;moji_a (ten_tuku_b " 後番号を入力 " moji_b) ;moji_b (if (= moji_c nil) (setq moji_c 10) ) (setq moji_c (ten_tuku " 直径 または 高さ を入力 " moji_c)) ;moji_c (setq r (/ moji_c 2.0)) (if (= moji_d nil) (setq moji_d 3.5) ) (setq moji_d (ten_tuku " 文字高さを入力 " moji_d)) ;moji_d (if (= moji_e nil) (setq moji_e 0.8) ) (setq moji_e (ten_tuku " 幅係数を入力 " moji_e)) ;moji_e (setq mark (getpoint "\n ◆ 中心位置を指定 ◆ Enter= 終了: ")) (while mark (setq SVDIMSCALE (getvar "DIMSCALE")) (cond ;cond-1-S ;;;---------------------------角の作成---------start------------------------------ ((= kw "K") (setq pt1 (polar mark (* 0.5 pi) (* r SVDIMSCALE))) (setq pt2 (polar pt1 (* 1.0 pi) (* r SVDIMSCALE))) (setq pt3 (polar pt2 (* 1.5 pi) (* moji_c SVDIMSCALE))) (setq pt4 (polar pt3 0.0 (* moji_c SVDIMSCALE))) (setq pt5 (polar pt4 (* 0.5 pi) (* moji_c SVDIMSCALE))) (entmake ;角make-s (list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(100 . "AcDbPolyline") '(8 . "寸法") '(90 . 4) '(70 . 1) '(43 . 0.0) (cons 10 (trans pt2 1 0)) (cons 10 (trans pt3 1 0)) (cons 10 (trans pt4 1 0)) (cons 10 (trans pt5 1 0)) ) ) ) ;角make-e ;;;---------------------------角の作成---------end--------------------------------- ;;;---------------------------三角の作成---------start----------------------------- ((= kw "S") (setq pt1 (polar mark (* 0.5 pi) (* 0.75 moji_c SVDIMSCALE))) ;(/ 2 3.0) (setq pm (polar mark (* 1.5 pi) (* 0.25 moji_c SVDIMSCALE))) ;(/ 1 3.0) (setq pt2 (polar pm (* 1.0 pi) (* (/ moji_c (sqrt 3.0)) SVDIMSCALE))) (setq pt3 (polar pm 0.0 (* (/ moji_c (sqrt 3.0)) SVDIMSCALE))) (entmake ;3角make-s (list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(100 . "AcDbPolyline") '(8 . "寸法") '(90 . 3) '(70 . 1) '(43 . 0.0) (cons 10 (trans pt1 1 0)) (cons 10 (trans pt2 1 0)) (cons 10 (trans pt3 1 0)) ) ) ) ;3角make-e ;;;---------------------------三角の作成---------end------------------------------ ;;;---------------------------円の作成-------start--------------------------------- ((= kw "M") (entmake ;円make-s (list '(0 . "CIRCLE") '(100 . "AcDbEntity") '(100 . "AcDbCircle") (cons 10 (trans mark 1 0)) (cons 40 (* r SVDIMSCALE)) '(8 . "寸法") ) ) ) ;円make-e ;;;---------------------------円の作成---------end--------------------------------- ) ;cond-1-e ;;;---------------------------文字の作成-------start------------------------------- (setq moji_AB moji_a) (if (= (strcase moji_AB) "NOT") (setq moji_AB nil) ) (if moji_AB (setq moji_m (strcat moji_AB (itoa moji_b))) (setq moji_m (itoa moji_b)) ) (entmake ;文字make-s-1 (list '(0 . "TEXT") '(100 . "AcDbEntity") '(100 . "AcDbText") (cons 10 (trans mark 1 0)) (cons 11 (trans mark 1 0)) (cons 40 (* moji_d SVDIMSCALE)) '(72 . 4) (cons 41 moji_e) (cons 1 moji_m) '(62 . 7) '(8 . "寸法") ) ) ;文字make-e-1 ;;;---------------------------文字の作成---------end------------------------------- (setq moji_b (+ 1 moji_b)) ;数字のカウントup (setq mark (getpoint "\n ◆ 中心位置を指定 ◆ Enter= 終了: ")) ) ;while-e (princ) ) ;defun-e (princ) ;;;デフォルト値の設定 ;;;********************************************************************************** ;;;getstring 図形タイプを入力 (defun ten_tuku-1 (MSG DEF) (if (= nil DEF) (setq DEF "M") ) (initget "M K S") (setq MSG (strcat "\n" MSG "<" DEF ">: ")) (setq kw (getkword MSG)) (if (= nil kw) (setq kw DEF) (setq kw kw) ) ) ;;;getreal ;;;幅係数を入力---ten_tuku_e ;;;文字高さを入力---ten_tuku_d ;;;丸の直径を入力---ten_tuku_c (defun ten_tuku (MSG DEF) (setq MSG (strcat "\n" MSG "<" (rtos DEF) ">: ")) (setq moji (getreal MSG)) (if (not moji) DEF moji ) ) ;;;getint 後番号を入力 (defun ten_tuku_b (MSG DEF) (if (not DEF) (setq DEF 1) ) (setq MSG (strcat "\n" MSG "<" (rtos DEF) ">: ")) (setq moji_b (getint MSG)) (if (not moji_b) (setq moji_b DEF) (setq moji_b moji_b) ) ) ;;;getstring 前文字を入力 (defun ten_tuku_a (MSG DEF) (if (or (= "" DEF) (= nil DEF)) (setq DEF "Not") ) (setq MSG (strcat "\n" MSG " なし= Not " "<" DEF ">: ")) (setq moji_a (getstring MSG)) (if (= "" moji_a) (setq moji_a DEF) (setq moji_a moji_a) ) ) ;;;********************************************************************************** (princ)