Archive for category AutoCAD

隠線処理

シルエットエッジ表示の2Dワイヤーフレームの隠線処理。
コマンドは shademode 2d と hide
hide01.gif
シルエットエッジ非表示の2Dワイヤーフレームの隠線処理。
コマンドは shademode 2d と hide
hide02.gif
2Dワイヤーフレームの隠線処理は、
再作図しないと画面移動やズームができません。
3Dワイヤーフレームの隠線処理。
コマンドは shademode 3d と hide または shademode h
hide03.gif
3Dワイヤーフレームの隠線処理は画面移動、ズーム、オービットも可能。
アイコンの違いも見てね♪

No Comments

U2さんブログ

AutoCAD系ブログって、muraさんと米国Autodesk blogしか知らなかったのだが、U2さんのを発見しました。
今、何しているの?

No Comments

変換マトリクス


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”)
とかしてみると、変換されてるのがわかる。
誰か行列教えてくれ~。

5 Comments

穴を移動する

面の移動でできちゃう!
ムービーを見るぜ!

2 Comments

穴をあける

目玉は「インプリント」と「面を押し出し」
ムービーを見るぜ!

No Comments

ワイヤーフレームの表示

せっかくAutoCADなんだから、3D作成してみよ~♪
まずは球だ~♪
sphere.jpg
なんじゃこりゃ~!!(怒)
という私のような人は多いのじゃないかと。
[ツール]→[オプション]の「表示」タブで以下の設定をして下さい。
3doption.jpg
これで次のような見え方に。
sphere2.jpg
ってか、こっちをデフォルトにしようよ!Autodeskさん!
システム変数は ISOLINES DISPSILH でした。

No Comments

Undoの履歴

http://yuri.tcup.ca/lispweb/memo/undo/index.html
せっかくサブスクリプションに入ってるので、
上記現象について聞いてみました。
回避策がつらつらと書いてあって(私には役に立たなそうだった)、
「本動作につきましては、今後の改善すべき動作であると認識いたしておりますが、
具体的な修正時期等については未定となっております。」
AutoCAD2010ぐらい?

No Comments