Hi Leute,
ich hab da ne Frage: Ich hab mir ein Programm geschrieben, dass mir eine Teilereferenz mit bestimmten Werten per VBA einfügt. Das Ganze hab ich mit AutoCAD Mechanical 2000 PP gemacht. Vor kurzem hab ich MDT6 zusätzlich installiert. Auf meinem Desktop-Rechner gibt es auch kein Problem, aber auf meinem Laptop. Dort hab ich nur MDT6. Jetzt taucht da der Fehler auf, dass 'AddCustomObject' fehlgeschlagen ist. Woher kommt der Fehler? Benötigt MDT6 etwa eine Bibliothek von ACAD 2000?
Vielen Dank schon mal im Voraus
MfG Benjamin
Quellcode:
Private Sub addPart()
Dim ref As McadPartReference
Dim acadapp As AcadApplication
Dim bommgr As McadBOMMgr
Dim symbb As McadSymbolBBMgr
Dim acutil As AcadUtility
Unload Me
Set acadapp = GetObject(, "AutoCAD.Application")
Set acutil = acadapp.ActiveDocument.Utility
Dim pt As Variant
pt = acutil.GetPoint(, "Einfügepunkt für Teilereferenz: ")
pt = acutil.TranslateCoordinates(pt, acUCS, acWorld, False)
Set ref = ThisDrawing.ModelSpace.AddCustomObject("AcmPartRef")
ref.Origin = pt
Set symbb = ThisDrawing.Application.GetInterfaceObject("SymBBAuto.McadSymbolBBMgr")
Set bommgr = symbb.bommgr
Dim pdata(0 To 13, 0 To 1) As String
strPartNumber = txtstk
strPartDesc$ = lbAuswahl
pdata(0, 0) = "NAME": pdata(0, 1) = lbDesc + "-" + lbLänge + "-" + lbBreite + "-" + lbStandard + "-" + lbMat
pdata(1, 0) = "PartNo": pdata(1, 1) = strPartNumber
pdata(2, 0) = "DESCR": pdata(2, 1) = lbDesc
pdata(3, 0) = "USER3": pdata(3, 1) = lbLänge
pdata(4, 0) = "USER2": pdata(4, 1) = lbBreite
pdata(5, 0) = "STANDARD": pdata(5, 1) = lbStandard
pdata(6, 0) = "MATERIAL": pdata(6, 1) = lbMat
pdata(7, 0) = "USER1": pdata(7, 1) = lbartnr
pdata(8, 0) = "DMID": pdata(8, 1) = lbzeichnr
pdata(9, 0) = "NOTE": pdata(9, 1) = lbnote
pdata(10, 0) = "VENDOR": pdata(10, 1) = lbliefer
pdata(11, 0) = "DESCR2": pdata(11, 1) = ""
pdata(12, 0) = "STANDARD2": pdata(12, 1) = ""
pdata(13, 0) = "MASS": pdata(13, 1) = txtMass
ref.Quantity = strPartNumber
bommgr.SetPartData ref, pdata
If IsInList("AM_PAREF") = True Then
ref.Layer = "AM_PAREF"
Else
Set newlayer = ThisDrawing.Layers.Add("AM_PAREF")
newlayer.Color = 4
newlayer.Plottable = False
newlayer.Lineweight = 0.25
ref.Layer = "AM_PAREF"
End If
ThisDrawing.Application.Update
Fehler:
'Stop
End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP