イッツキャドコミュニティ

« 戻る

カスタマイズできないの? 2003/08/02 11:54
お名前 : T カテゴリー : 【未分類】

初めて書き込みします、超CAD-1のユーザです。

開発の方に要望があります。
それは、ユーザサイドでカスタマイズできるようにVB等に対応して
欲しいのです。

普通にCADを使うなら超CAD-1でも十分に活用できていますが、少し
手の込んだことや縦横断面図等を作成しようとするとかなりの苦労を
強いられます。

VB(VBAやVBS)でオートメーションに対応すればExcelやAccessなどと
連携して縦横断の作成や構造物の自動作画などが出来ると思います。

○ートCADはVer2000くらいからVBAが搭載されています。(それ以外の
スクリプト言語はもっと前からですけど。)
でも、LT以外は高くて、とてもとても手が出ません。

このあたり、何とか検討していただけないでしょうか?
出来るならDXFの知識をあまり必要としないですむようなVBAが希望です。

>> 返信する <<

修正



返答

Re: カスタマイズできないの? 2005/03/08 12:54
お名前 : 角道 カテゴリー : 【未分類】

分割します。(その1)
Sub test()

Dim itsCAD As Object
Dim X, Y, X0, Y0, A, Radius As Double
Dim i, j, PointX, PointY As Integer

On Error Resume Next ' エラーのトラップを留保します。
' 超キャドを実行する
'Set itsCAD = GetObject("C:\Program Files\It's 超 CAD 2\itscad.exe") ' 起動中の超キャド
Set itsCAD = GetObject(, "ItsSuperCAD.Draw") ' 起動中の超キャド(なぜか捕まえられない時が多い)
If Err.Number <> 0 Then
Err.Clear
Set itsCAD = CreateObject("ItsSuperCAD.Draw") ' 超キャドを実行
itsCAD.Visible = True ' キャド画面表示
End If
SendKeys "%F^T{up}{up}{enter}", True

>> 返信する <<

修正


Re: カスタマイズできないの? 2005/03/08 12:56
お名前 : 角道 カテゴリー : 【未分類】

その2
With itsCAD
.DBSetDrawFlg False
PointX = 100
PointY = 100

Radius = 50
A = 2 * 3.14159265358979 / 6
X0 = Radius * Sin(0)
Y0 = Radius * Cos(0)
For i = 1 To 6
X = Radius * Sin(A * i)
Y = Radius * Cos(A * i)
.DBSetActivePattern 1 '線種
.DBAddLine X0 + PointX, Y0 + PointY, X + PointX, Y + PointY
X0 = X
Y0 = Y
Next
.DBSetActivePattern 0
.DBAddCircle PointX, PointY, Radius / 2 '円を書く
.DBAddArc PointX, PointY, Radius, 0, 3.141592 / 2 '弧を書く
PointX = PointX + 10
PointY = PointY + 10
.DBAddMarker PointX, PointY, 0 '点

.DBSetCount
.Redraw
.DBSetDrawFlg True
End With

For i = 0 To 5
SendKeys "%V{enter}", True
For j = 1 To i
SendKeys "{down}", True
Next
SendKeys "{enter}", True
Next
End Sub

>> 返信する <<

修正


Re: カスタマイズできないの? 2005/03/08 15:27
お名前 : 中村(開発担当) カテゴリー : 【未分類】

>>19
Dim 様。いきなり終了してしまうのは、現在のところ仕様になります。線など要素を書いていくと終了しない事は確認できています。
正直なところ、なぜ終了してしまうのか手元の環境や資料でも分かりません。(^^;;;

>> 返信する <<

修正


Re: カスタマイズできないの? 2005/03/08 17:11
お名前 : Dim カテゴリー : 【未分類】

>objScad.Application.Visible = True
>を
>objScad.Visible = True
>とすれば ItsCADが開きます。

う〜ん、、実行環境の違いなんでしょうか?
"Application"を外すとItsCADが非表示のままなんですが。。。

タスクマネージャにはプロセスがあるので起動してるのは
間違いないんですけど、裏で動いてる状態ですね。
"Application"を記述するとItsCADが表示状態になります、
私の環境では。。。^_^;
Excel2002のVBE標準モジュールより実行

それとご提示いただいたコードを試してみたんですが、
VBSにして実行すると一瞬で終了するので何が何やら。。。

あと私が未熟なため理解できないところがあります。

(Excel2002のVBE、標準モジュールにて実行)
"SendKeys"が、ItsCADではなくVBEに対して
送信しちゃいますね。。。^_^;

"SendKeys"を全てコメントアウトして継続。
「六角形」は作図されましたが「円」と「円弧」は
作図されないです。

んで、結局コードが最後まで実行されると
ItsCADは強制的に終了するところは変わらないです。

>線など要素を書いていくと終了しない事は確認できています。

???なにか違いがあるのかなぁ?

>> 返信する <<

修正


Re: カスタマイズできないの? 2005/03/08 20:21
お名前 : 角道 カテゴリー : 【未分類】

当方 EXCEL2002はもっていないので、何とも言えません。

EXCEL2000では一応動きますし、強制終了もされないです。

環境 WinXPSP-2 EXCEL2000SP-3 ItsSuperCAD2(3もありますが)

>> 返信する <<

修正


Re: カスタマイズできないの? 2005/03/09 10:46
お名前 : Dim カテゴリー : 【未分類】

Windows2000SP-4 Excel2000SP-3 ItsSuperCAD3Ver9.52
の環境で試してみましたが、当方の結果は変わらないです。

///////////////////////////////////////////
一部修正です。

SendKeysの件は私の勘違いです。
デバッグモードでステップ実行しているのが
原因でした。

六角形は作図    → これは変わらず
円、円弧は作図せず → これも変わらず?
VBA終了でCADも強制終了 → これも変わらず

Windows2000SP-4 Excel2000SP-3 ItsSuperCAD3Ver9.52

WindowsXPSP-2 Excel2002SP-3
ItsSuperCAD3Ver9.52

>> 返信する <<

修正


Re: カスタマイズできないの? 2005/04/15 20:21
お名前 : 角道 カテゴリー : 【未分類】

Dimさんへ

時間がとれるようになったので、展開図作成 考えてみたいと思います。

それで、データの入力書式がありましたら、見本をいただきたいです。

それと、出来上りのCAD図面を必要なパターン分いただきたいです。

上記メールアドレスまで、お願い致します。

他の方々のご意見も歓迎致しますので、ご協力をお願い致します。

なお、完成期日等を約束できるものではありませんので、ご承知置き下さい。

また、この件に関して今後の打合せは、メールでのみ行いたいと思います。

>> 返信する <<

修正


Re: カスタマイズできないの? 2005/06/22 00:24
お名前 : 中村(開発担当) カテゴリー : 【未分類】

Dim様

もう気づいておられるかもしれませんが、オートメーションのサンプルを公開しております。
なお、角道様が記述されたものは、超キャド1の時のサンプルコードですので、超キャド3での動作は保証できません。

>> 返信する <<

修正


Re: カスタマイズできないの? 2005/06/23 12:08
お名前 : 角道 カテゴリー : 【未分類】

サポートの OLEオートメーションの使い方(CAD3)の 記事を拝見しました

早速エクセルでやってみましたが、サンプルコードはどうもうまく動きません。

オブジェクトブラウザでは一覧できるので、drawing オブジェクトは

取得できていると思うのですが、まず起動が不安定です。

起動した後は coor = drawing.GetCoordinate(i) で引っかかります。
「オブジェクト変数または With ブロックが設定されていません」
とのエラーがでています。

GetCoordinateCount と GetLayerCount 以外は同じように

エラーになるようです。

いずれにしろ、文字を書込むコマンドがないので、実用は無理かと思います。

>> 返信する <<

修正


Re: カスタマイズできないの? 2005/07/11 11:26
お名前 : Dim カテゴリー : 【未分類】

ご無沙汰しております、Dimです。
このところ公私において忙しく、なかなか時間がとれませんでした。
ちょっぴり時間が取れたのでサポートのコードを試してみました。

最初の変数の宣言で各オブジェクトの型が明示的に宣言されていますので
IDEのコード入力支援機能が働くのは便利ですね。

んで、サポートのコードですが、角道さんがご指摘のように
>「オブジェクト変数または With ブロックが設定されていません」
のエラー連発ですね。。。

これは恐らく、オブジェクトを取得する際に「Set」キーワードが
記述漏れしていると思います。

下記に少し手直してみました。

Win2000 SP-4
ItsCAD SuperCAD3 9.55a
Excel2000
標準モジュールからF8キーにてステップ実行しました。

※800文字オーバーですので分割します。

>> 返信する <<

修正


Page : 1 / 2 / 3 / 4 / 5