CyberChaos(さいばかおす)

プログラミング言語、トランスパイラ、RPA、ChatGPT、データマイニング、リバースエンジニアリングのための忘備録

VisualBasic.NetでAutoCAD直線描画CHATBOT作成に成功!

2024-04-27 16:31:20 | Autocad

Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.DatabaseServices
Imports Autodesk.AutoCAD.EditorInput
Imports Autodesk.AutoCAD.Geometry
Imports Autodesk.AutoCAD.Runtime

Public Class DrawLineCommands

<CommandMethod("DrawLine")>
Public Sub DrawLine()
Dim doc As Document = Application.DocumentManager.MdiActiveDocument
Dim db As Database = doc.Database
Dim ed As Editor = doc.Editor

' 1. 始点の座標を入力するダイアログボックスを表示する
Dim startPoint As PromptPointResult = ed.GetPoint("始点の座標を入力してください:")
If startPoint.Status <> PromptStatus.OK Then
Return
End If

' 2. 終点の座標を入力するダイアログボックスを表示する
Dim endPoint As PromptPointResult = ed.GetPoint("終点の座標を入力してください:")
If endPoint.Status <> PromptStatus.OK Then
Return
End If

' 3. 入力された座標を反映する
Using tr As Transaction = db.TransactionManager.StartTransaction()
Dim bt As BlockTable = tr.GetObject(db.BlockTableId, OpenMode.ForRead)
Dim btr As BlockTableRecord = tr.GetObject(bt(BlockTableRecord.ModelSpace), OpenMode.ForWrite)

Dim line As New Line(startPoint.Value, endPoint.Value)
btr.AppendEntity(line)
tr.AddNewlyCreatedDBObject(line, True)

tr.Commit()
End Using

ed.WriteMessage("Line drawn successfully.")
End Sub

End Class




ChatGPTには座標入力コンポーネントの表示をしてくれと頼んだが、コマンド入力ボックスの上に始点(または終点)の座標を入力してくださいと表示されるにとどまった。

ちなみに写真では、一本目の直線の終点に二本目の直線の始点に選んでコマンド”DrawLine”を入力すると、

再度チャットボットの会話が始まり、終点の入力を促される。

まだ少々問題点が残ったが、やりたいことに向けて着々と進んでいる!


【追伸】

この直線描画CHATBOTはいちいち座標を入力する必要がない。マウスを動かして任意の位置にポインターをあわせてワンクリックし、始点や終点として選べるようになっている。

すでに出来上がったエレメントの端点にポインターを合わせれば、そこを始点に直線をひける。


AUTOCADでチャットボット!改造してみたwww

2024-04-27 16:12:14 | Autocad

改造したのはこの部分だけwww

Private Function GetResponse(input As String) As String
' ユーザーの入力に応じて適切な応答を生成
Select Case input.ToLower()
Case "バカ!", "アホ"
Return "何だテメェゴルァ!凸(◎曲◎♯)"
Case "かかってこいよ"
Return "ヘタレ!"
Case "口先番長", "詐欺師", "バカチョン"
Return "一昨日きやがれ!"
Case Else
Return "日本語しゃべれねーのか?このバカチョンチャンコロめが!"
End Select

文字化けするかな?と思ったが、あっさり成功。




バカ!またはアホと入力すると、

何だテメェゴルァ!凸(◎曲◎♯)

と顔文字付きでレスが来るのが今回狙った改造箇所。

CaseやReturnの””内は自由に変えられるし、AまたはBまたはCと入力が変わる場合、

Case "A", "B", "C"のように「,」で区切ればよい。