
AutoCAD 2006 を使っています。
JWCデータをDXF経由で読み込んでDWGとして最終的に保存したいんですが、jwcでは線色別に印刷線幅を決めて製図していたため、AutoCAD側でも同様の結果になるようにクイック選択で線幅を変更しています。例えば黄色線だけをクイック選択して線幅を0.15mmに変更しています。
jwcでは6色しか使用していないため、AutoCADで変更作業を6回繰り返せば終わることなんですが、もっと効率の良い方法はないでしょうか。
図面が200枚ほどあり、変更のし忘れなどが予想されるので、ある程度自動化できれば助かります。
余談ですが、使用できるソフトとしてはAutoCAD以外にHO_CAD、JWwin、BeDraw、IJCAD、BVCAD、DRA-CADなどがあります。
No.4ベストアンサー
- 回答日時:
(defun sub (color width)
(setq ss (ssget "X" (list (cons 62 color))))
(setq num (sslength ss))
(setq count1 0)
(setq count2 0)
(repeat num
(setq ed (entget (ssname ss count1)))
(princ ed)
(princ "\n")
(if (/= (assoc 370 ed) nil)
(setq ed (subst (cons 370 width) (assoc 370 ed) ed))
(progn
(setq ed1 (cdr ed))
(setq ed (car ed))
(setq ed2 (car ed1))
(setq ed1 (cdr ed1))
(setq ed (append (list ed) (list ed2)))
(setq num2 (length ed1))
(repeat num2
(setq ed2 (car ed1))
(setq ed1 (cdr ed1))
(setq ed (append ed (list ed2)))
(if (= (car ed2) 62)
(setq ed (append ed (list (cons 370 width))))
)
)
)
)
(princ ed)
(princ "\n")
(if (/= (entmod ed) nil)
(setq count2 (+ count2 1))
)
(setq count1 (+ count1 1))
)
(princ "color:")
(princ color)
(princ ", count:")
(princ count2)
(princ "/")
(princ count1)
(princ "\n")
)
(defun C:sample ()
(sub 4 5)
(sub 7 9)
(sub 3 13)
(sub 2 15)
(sub 6 18)
(sub 5 20)
(princ)
)
久しぶりに作ってみたらすっかり忘れている・・・
途中、不細工な処理がありますが許して。
コマンド名・関数名・変数名・変数宣言・余分なprinc等は編集してください。
行頭全角スペースを入れてるけど大丈夫ですよね?
エラーになるなら半角スペースかタブにしてください。
AutoCAD2000では動作確認してます。
stingyさん、ありがとうございます。
即効性のあるLISPを作っていただき、本当に感謝しています。
待った甲斐がありました。
試行してみたらうまくいきました。
線の本数が多いと時間がかかるのはご愛敬として、とにかく本当に助かりました。
No.8
- 回答日時:
JWCはあまりにも昔のことで忘れましたが、
JWWでもJwfファイルで色と印刷の線の太さが決まってくるので、
以前、人から受け継いだ仕事でJwfファイルが無く、苦労した覚えがあります。なので、印刷に関してはAutoCADもJWWも一緒のような気がしますが・・・
AutoCADで印刷する場合、印刷スタイルテーブルを”NONE”にしているならいいですが、それ以外の場合、線種の太さの設定を
「オブジェクトの線の太さを使用」に設定してないとダメなので、
結局、印刷スタイルテーブルを設定するのが懸命だと思います。
それでも!ってならば、スクリプトやマクロやLIPSなどを使って、
変更するのですが、私も gttaさんと同じくLT使いです。
今回の場合、Filter を使いますが、残念ながらスクリプトやマクロでは対応していません
こんなときは Acadremocon を使います。
また、200枚ぐらいあるとのことなので、私だったらエクセルVBAも使います。
Aのセルにファイルのフルパスが書かれていると仮定して
作りました。
ちょちょっと作ったのでエラー処理とかないですが、参考までに。
'--------------------------------------------
Dim acad As Object
Sub main()
Set acad = CreateObject("AcadRemocon.Body")
Dim filename As String
filename = "C:\drawing.dwg"
For i = 0 To 210
filename = Cells(i, 1).Value
If filename = "" Then End
acad.acPostCommand ("filedia ")
acad.acPostCommand ("0 ")
acad.acPostCommand ("open ")
acad.acPostCommand (Chr$(34) & filename & Chr$(34))
acad.acPostEnter
Call FliterColor
acad.acPostCommand ("qsave ")
acad.acPostCommand ("close ")
Next i
End Sub
Sub FliterColor() '
Set acad = CreateObject("AcadRemocon.Body")
'フィルターへ入力
acad.acSendCommand ("^C^C")
acad.acFilter "色", "=", "7"
acad.acSendCommand ("all ")
'線種の太さを変える
acad.acPostCommand ("^C^C_change p p lw 0.09 ")
End Sub
'--------------------------------------------------
とりあえず白の分だけですが、他の色の分とかエラー処理は
付け加えて下さい。
ちなみに「FliterColor()」の部分だけでも使えます。
私はペーパー空間やこのような拡張がないと仕事にならなく
なってきたので、AutoCADを手放せなくなりました(^_^;)
VBAを組んでいただき、ありがとうございます。
後半の
acad.acFilter "色", "=", "7"
の行でフィルターのダイアログが出て値が入るわけでもなく、あとは手動になってしまいました。
今回はstingyさん提案のAutoLISPでいくことにしました(即効性があったので)。
ありがとうございます。
No.7
- 回答日時:
線色と印刷線幅が一対一で対応しているのなら、No.3さんが書かれているように、印刷スタイルテーブルで線色毎に線幅を選択しておくのが最も簡単だと思いますよ。
線自体に線幅情報を設定する必要はありません。この回答への補足
アドバイスありがとうございます。
やはり印刷スタイルテーブルには頼りたくないです。
納品するCADデータの利用者は複数人かつ異動も絡んでくるので(要するに役所)、納めた成果品が2年後に「品質が悪い」と言われてしまっては次の受注につながりません。
次回の担当者(役所)がCAD初心者である可能性もあるわけですから。
私たちが手を動かせば達成できることですし、CAD製図基準(案)も線幅を持たせる仕様になっていますので、考え方としては間違っていないと思います。
これまでは発注者の使用ソフトがAutoCADなのでDWGで納品することになりましたが、いずれはSXFで納められるようにジリジリと誘導していきたいと思います。
今回はstingyさんご提案のAutoLISPを使うことにしました。
ありがとうございます。
そういえば、ctbについての補足なんですが、メールでDWGを送ってくる方は、ほとんどがカスタマイズしたctbを利用していますね。
でもメールにctbが添付されていたことは一度もないので、いつも不親切だなぁと思っています。
このことも、私がctbの有効利用に消極的な理由の一つです。
No.6
- 回答日時:
No2です。
私はLT使いのため、Acadremoconなるソフト使っています。
http://www.kjufactory.com/
このスレッドの内容のものを少し改変すれば、できそうですね。
http://www.kjufactory.com/bbs/thread.asp?thread= …
レギュラーならLISPで同様のことができると思います。
AutoCADの標準は使えたものじゃありませんね。
カスタマイズすることを前提にしたCADなのでしょう。
カスタマイズすれば、手順が確率できることなら、どんなことでもできますから、こんな便利なCADはありません。
私もAutoCADの使い始めは文句たらたらでした。
カスタマイズし続けて1年もしたら、もう他のCADは使えません。
繰り返しの作業は全てオートマティック化して1ボタンでサササッと(笑)。
問題はバージョンアップにカスタマイズがついていけないこと。
未だにLT2004を使っています。
Autodeskさん、毎年のバージョンアップは止めてよ。・・・愚痴でした(謝)。
ご紹介のURLを覗いてみましたが、ゴールにたどりつくまで時間がかかりそうだったので、次の機会にじっくり見てみます。
今回はstingyさんのアドバイスしてくれた方法に即効性がありましたので、AutoLISPを使うことにしました。
ありがとうございます。
No.5
- 回答日時:
#4です。
追加で・・・寸法や複合図形の各要素の色には対応していませんので注意してください。
LISPでも対応できるはずだけど結構手間です。多分。
環境があればDXFに線幅情報追加するアプリを組むほうが楽。
JWWは使ったことないですが、DXF出力時のオプションにはないのかな?
(あれば質問しないか)
個人的にはctbファイルの使用のほうが好きなんだけどな。
No.3
- 回答日時:
線の色で、印刷線幅は決まっているのでしょうか?
図面によって、線色が違うのであれば クイック選択の方法なんでしょうね。
線の色が図面別ですべて同じであれば、印刷設定ファイル(ctbファイル)で各色で線幅を設定すれば良いと思います。
設定方法は
ファイル→印刷スタイル管理→追加ウィザード→テーブル表示 で
線の太さを設定 です。
印刷するときに印刷スタイルテーブルで 作成した印刷スタイルを選べば良いと思います。
No.2
- 回答日時:
画層分けはしていないのでしょうか。
画層で分かれていれば、画層プロパティで設定し、全てBYLAYERで書けば簡単なんですけどね。
線の太さも何種類もあるのでしょうか。
色の分だけやらなくても、最初に全部選択して一番多い太さにする。
その後に他の太さへ変更すれば、全部やらなくてもいいような。
けど、面倒には違いないですね。
どの色がどの太さかは決まっていますか。
なら、レギュラーのようなので、LISPででも組めば簡単にオートマティク化できますよ。
WEBで探せば、LISPのHPは多々あります。
探してみてはいかがでしょうか。
ちなみに私はLT使いですから、LISPは知りません(汗)。
LTだとLISPが使えないため、別の方法になりますが、できなくはないです。
この回答への補足
アドバイスありがとうございます。
画層分けはしていません。
それと線の太さは最高で6種類です。
どの色がどの太さかは決まっています。
水(cyan) 0.05mm
白(white) 0.09mm
緑(green) 0.13mm
黄(yellow) 0.15mm
紫(magenta) 0.18mm
青(blue) 0.20mm
WEBでLISPを探してみましたが、目的のものはなく、自分でイチから組むとなると時間がかかること間違いないので、もう少し情報を寄せてくれる人が出てくることに期待します。
ちょっとしたサンプルでもあれば改良して使えるようにしたいんですが。。。
グチになりますが、いろんなAutoCADって他のCADでは普通にできることが意外とできないことが多い気がするのは私だけでしょうか。
例えば連続印刷はHOCADの何十倍も時間がかかるし、とにかくいろんな面で他のCADの方が能率が良い気がします。。。。
No.1
- 回答日時:
印刷スタイルテーブルの色従属の設定をすれば
図面に手を加えなくても再現することができます。
http://cad.main.jp/j2-class/06.htm
データのやり取りがある場合はこの印刷スタイルをファイルとして
渡す必要があります。
この回答への補足
アドバイスありがとうございます。
おっしゃる通りの方法があることはわかっていましたが、あくまでもDWGデータ単体で完結したいのです。
印刷スタイルをファイルとして渡し、さらに説明を付け加えるとなると、データを長期にわって引き継ぐ場合、人的ミスにより途中で情報が欠落してしまうからです。
ですから線1本1本に太さ情報を持たせて保存したいんです。
(SXFが理想ですが、AutoCADが標準機能としてSXFの入出力に対応していないので。。。)
今回はstingyさんのアドバイスを採用することにしました。
スタイルテーブルに関しては・・・他の回答者さんにコメントしたとおりです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CAD・DTP メインはAutocadからJwwに変換、尚且つ事前修正が少ないもの 1 2022/10/30 13:37
- CAD・DTP Auto CAD LT → Auto CAD 1 2022/04/20 12:29
- PDF AutoCAD図面をPDF fileに変換した際、画像情報やブロック名はわかるのでしょうか。 1 2022/06/03 09:42
- CAD・DTP EXCELからAUTOCADに貼り付け 1 2022/04/20 17:42
- Visual Basic(VBA) Vba UserFormを前面に出す方法を教えてください 1 2023/08/17 11:08
- BTOパソコン 下記の条件に合ったパソコンでオススメあれば教えてください。 ①ラップトップで持ち運び型 ②薄くて軽い 1 2023/03/02 13:15
- Photoshop(フォトショップ) インデザイン 上で、フォトショップの線の色を変えたい 4 2022/06/12 18:49
- CAD・DTP AutoCAD の dwgデータを、dxf.JWWに変換するフリーの無料のソフトを教えてください。 1 2022/06/11 06:44
- Excel(エクセル) vba sendKeysを送る相手のソフトを前面に開くには 1 2023/07/20 16:42
- プリンタ・スキャナー 「用紙が違う」メッセージが頻発 4 2022/08/22 08:30
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
jwcadで既設の線や文字の属性を...
-
P21をJWWで読みたい
-
線種について
-
JW-CADのメモリー配分
-
一太郎に図面を貼り付け
-
AUTOCADの線の太さの画...
-
JW CADについての質問です
-
他図面へのコピぺができない
-
jwwで枠の中をゴマをまいたよう...
-
ベクターワークスで作成した図...
-
JWWで、ブロック図形は範囲で選...
-
JW-CADで、A2で書いた図面をA3...
-
建築図面に関してです。 A2の紙...
-
図面などにて出てくる「m/m」は...
-
建築図面記号でアの文字が外周...
-
家の図面で四角の中に実線でバ...
-
jw_cad → Word
-
mcdという拡張子がついたフ...
-
図面1/70スケールを1/50にする...
-
縮尺1/100の図面の寸法が表...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
P21をJWWで読みたい
-
jwcadで既設の線や文字の属性を...
-
JW-CADの文字を灰色に印刷した...
-
日立GMM ACRVAが何か設定がおか...
-
JW-CADのメモリー配分
-
図形を描いても見えない、助け...
-
JWWカラー印刷について
-
VectorworksのデータをJWCADで読む
-
JWWの用紙設定
-
ベクターワークスの線種設定
-
線数指定レーザーカラープリン...
-
AutoCAD 線色ごとに線幅を統一
-
一太郎に図面を貼り付け
-
AutoCADに適したPDF変換フリー...
-
CAD図面を、別のパソコンで...
-
JWCAD基本設定の線幅設定...
-
AUTOCADの線の太さの画...
-
こんにちは。全くの初心者なの...
-
線種生成モードの設定変更をし...
-
JW-CADで各階平面図と建物図面...
おすすめ情報