Archive for category AutoCAD
隠線処理
in 3D on 2005/02/24
シルエットエッジ表示の2Dワイヤーフレームの隠線処理。
コマンドは shademode 2d と hide

シルエットエッジ非表示の2Dワイヤーフレームの隠線処理。
コマンドは shademode 2d と hide

2Dワイヤーフレームの隠線処理は、
再作図しないと画面移動やズームができません。
3Dワイヤーフレームの隠線処理。
コマンドは shademode 3d と hide または shademode h

3Dワイヤーフレームの隠線処理は画面移動、ズーム、オービットも可能。
アイコンの違いも見てね♪
U2さんブログ
in たわごと on 2005/02/18
AutoCAD系ブログって、muraさんと米国Autodesk blogしか知らなかったのだが、U2さんのを発見しました。
今、何しているの?
変換マトリクス
in LISP on 2005/02/17

UCSが設定してある図面において、
赤い線をLISPでブロックにすることを考える。
まずは普通にentgetしてブロックにし、insertしてみる。
(defun c:test(/ E_DATA) ;;線のエンティティデータE_DATA (setq E_DATA (entget (car (entsel "\n線を選択:")))) ;;ブロック名B_NAME (setq B_NAME "テストォ") (entmake (list '(0 . "BLOCK") '(100 . "AcDbEntity") '(67 . 0) (cons 8 (getvar "clayer")) '(100 . "AcDbBlockBegin") '(70 . 2) '(10 0.0 0.0 0.0) (cons 2 B_NAME) '(1 . "") ) ) ;;属性 (entmake E_DATA) ;;ブロック宣言終わり (entmake (list '(0 . "ENDBLK") (cons 8 (getvar "clayer")) ) ) )
すると、あ~ら不思議、UCSが設定されてるので、とんでもない傾きに。

つまり、WCSでの傾きを求めなければならない。

こんな点の変換を行う必要がある・・・ってどうすればいいんじゃ!
いや~な予感がしつつ、マトリクス変換とかいうのを使わにゃ面倒だ。
ってかマトリクス変換って方が面倒に感じる私だが、がんばるしかない。
(defun y_ucsrotate( PT ;座標 B_PT ;挿入点 / ) (y_pt+ (y_matrix (y_pt- PT B_PT) (y_ucsmatrix)) B_PT) ) (defun y_matrix( PT ;座標 MT ;変換マトリクス / ) (mapcar '(lambda (x) (+ (* (nth x (nth 0 MT))(nth 0 PT)) (* (nth x (nth 1 MT))(nth 1 PT)) (if (= (length PT) 3) (* (nth x (nth 2 MT))(nth 2 PT)) 0.0 ) (nth x (nth 3 MT)) ) ) (if (= (length PT) 3) '(0 1 2) '(0 1) ) ) ) (defun y_ucsmatrix( / ) (list (trans '(1 0 0) 0 1 T) (trans '(0 1 0) 0 1 T) (trans '(0 0 1) 0 1 T) '(0 0 0) ) )
UCSは設定したままでね。
(y_ucsrotate 変換したい座標 ブロックの原点)
これで変換先のWCSの座標が求められる(はず)。
試しに、
(command “circle” (trans (y_ucsrotate (trans (getpoint) 1 0) (trans (getpoint) 1 0)) 0 1) “500”)
とかしてみると、変換されてるのがわかる。
誰か行列教えてくれ~。
ワイヤーフレームの表示
in 3D on 2005/02/10
せっかくAutoCADなんだから、3D作成してみよ~♪
まずは球だ~♪

なんじゃこりゃ~!!(怒)
という私のような人は多いのじゃないかと。
[ツール]→[オプション]の「表示」タブで以下の設定をして下さい。

これで次のような見え方に。

ってか、こっちをデフォルトにしようよ!Autodeskさん!
システム変数は ISOLINES DISPSILH でした。
