Hi,
BricsCAD ist ein CAD Programm welches genauso wie AutoCAD auf der IntelliCAD Engine basiert.
https://de.wikipedia.org/wiki/Bricscad
Ich habe einige Funktionen zum automatisieren von BricsCAD mal in einer UDF umgesetzt.
Man kann z.B Layer verwalten(erstellen, löschen, ändern, anzeigen), Objekte Zeichnen und Bearbeiten, Zeichnungen öffnen und Schließen, Einstellungen ändern und Befehle in der Commandline ausführen, usw...
Wenn jemand mit BricsCAD arbeitet kann er es vielleicht ja gebrauchen.
Es ist das erste mal das ich mich an COM versucht habe, es könnten also ein paar Fehler drin sein
Freue mich auf eure Meinung, falls es hier überaupt BricsCAD-Nützer gibt.
Beispiele
AutoIt: Beispiel: Eigenen Layer erzeugen
#include<BricsCAD.au3>
$oBrics = _BricsCAD_Create( True )
$oDoc = _BricsCAD_GetActiveDocument($oBrics)
$oMyLayer =_BricsCAD_Layer_Create($oDoc, "MyOwnLayer")
_BricsCAD_Layer_SetLinetype($oMyLayer, "MITTE")
_BricsCAD_Layer_SetLineWeight($oMyLayer, 35)
_BricsCAD_Layer_SetPlottable($oMyLayer, False)
$oColor = _BricsCAD_Layer_GetColor($oMyLayer)
$oColor.SetRGB(200,0,200)
_BricsCAD_Layer_SetColor($oMyLayer, $oColor)
$oColor = 0
_BricsCAD_Layer_Delete($oMyLayer)
_BricsCAD_Quit($oBrics, True)
Alles anzeigen
AutoIt: Beispiel: Zeichnen
#include<BricsCAD.au3>
#include<Array.au3>
$oBrics = _BricsCAD_Create( True )
$oDoc = _BricsCAD_GetActiveDocument( $oBrics )
$oMSpace = _BricsCAD_Document_GetMSpace( $oDoc )
_BricsCAD_Ent_CreateLine( $oMSpace, 0, 0, 0, 100, 0, 0)
MsgBox(0,"","Das...")
_BricsCAD_Ent_CreateLine( $oMSpace, 100, 0, 0, 0, 100, 0)
MsgBox(0,"","...ist...")
_BricsCAD_Ent_CreateLine( $oMSpace, 0, 100, 0, 100, 100, 0)
MsgBox(0,"","...das...")
_BricsCAD_Ent_CreateLine( $oMSpace, 100, 100, 0, 0, 0, 0)
MsgBox(0,"","...Haus...")
_BricsCAD_Ent_CreateLine( $oMSpace, 0, 0, 0, 0, 100, 0)
MsgBox(0,"","...vom...")
_BricsCAD_Ent_CreateLine( $oMSpace, 0, 100, 0, 50, 150, 0)
MsgBox(0,"","...Ni-...")
_BricsCAD_Ent_CreateLine( $oMSpace, 50, 150, 0, 100, 100, 0)
MsgBox(0,"","...-ko-...")
_BricsCAD_Ent_CreateLine( $oMSpace, 100, 100, 0, 100, 0, 0)
MsgBox(0,"","...-laus...")
_BricsCAD_Ent_CreateCircle( $oMSpace, 50, 66.7, 0, 83.3)
$oMText = _BricsCAD_Ent_CreateMText( $oMSpace, 0, -50, 0, 200, "Haus vom Nikolaus")
_BricsCAD_Ent_SetHeight( $oMText, 20)
$oMText = 0
$aEnts = _BricsCAD_Ent_List( $oMSpace )
Global $aShow[ @extended ][7]
For $i = 0 to @extended -1
$aShow[$i][0] = _BricsCAD_Ent_GetClassName( $aEnts[$i] )
$aStartPoint = _BricsCAD_Ent_GetStartPoint( $aEnts[$i] )
$aEndPoint = _BricsCAD_Ent_GetEndPoint( $aEnts[$i] )
If IsArray($aStartPoint) and IsArray($aEndPoint) Then
$aShow[$i][1] = $aStartPoint[0]
$aShow[$i][2] = $aStartPoint[1]
$aShow[$i][3] = $aStartPoint[2]
$aShow[$i][4] = $aEndPoint[0]
$aShow[$i][5] = $aEndPoint[1]
$aShow[$i][6] = $aEndPoint[2]
EndIf
Next
_ArrayDisplay($aShow)
_BricsCAD_Quit( $oBrics, True )
Alles anzeigen
mfg
Zeitriss