FastFiber
Menu

Toon bijdragen

Deze sectie stelt je in staat om alle bijdragen van dit lid te bekijken. Je kunt alleen de bijdragen zien waar je op dit moment toegang toe hebt.

Toon bijdragen Menu

Berichten - willyver

#1
Dat zou ik wel willen.
Vorig jaar cursus aangevraagd, afgewezen.
Ik heb wel geprobeerd het mezelf aan te leren, maar dat is niet gelukt.
#2
Beide geen optie.
Bedrijfsstandaard.
Bedankt voor het mee denken.
#3
Bij staat autocad 64 bit geinstalleerd, zowel 2011 als 2015.
En ik heb bij 2011 de 64 bit vba enabler voor 2011 en bij 2015 de 64bit enabler voor 2015.
En Excel 2007.
Vreemde is, tenminste voor mij toch, dat het wel werkt in 2011.
#4
Ik heb een programmaatje in vba autocad 2011 en wil dat nu in autocad 2015 gebruiken.
Ik heb er de volgende programmacode in staan:

Option Explicit
'Excel
Dim excelApp As Excel.Application
Dim WbkObj As Workbook, shtobj As Worksheet

Maar bij het opstarten krijg ik de volgende melding: Compile error: Can't find project of library.
Volgens mij heb ik wel de library wel, onder Tools, References het ik Microsoft Excel 12.0 Object Library
aangevinkt. Net zoals Microsoft office 14.0 object library.

Kan iemand mij vertellen wat ik fout doe?

#5
Bedankt Stephan,

Ik ga het proberen.
#6
Stephan,
Bedankt voor de reactie.
Ik had deze site ook al gevonden, maar ook hier geen oplossing.
#7
Ik gebruik Autocad 2011 met vba. Ik heb verschillende programmaatjes gemaakt en daarbij de debugger gebruikt. Maar nu krijg ik, als ik de debugger krijg de volgende melding:
x64VBAServer18
Running in indepedent mode due to the wrong switch, being used for registration/unregistration.


Sub test()

    Dim obj     As AcadObject
    Dim PntA    As Variant
    Dim objSet  As AcadSelectionSet
       
    On Error Resume Next
    ThisDrawing.SelectionSets("ss1").Delete
    On Error GoTo 0
    Set objSet = ThisDrawing.SelectionSets.Add("ss1")
    objSet.SelectOnScreen

De fout treedt op bij objSet.SelectOnScreen

Heeft iemand een idee hoe dit komt?
#8
Autocad babbelhoekje / Re: AutoCAD Ervaring
di 04 10 2011, 09:57:56
In 1985 de eerste autocad cursus gevolgd.
Dit was met autocad 2.1. Daarna bijna alle
autocad versies t/m 2011 gezien en gebruikt.
#9
Bedankt voor de aangedragen oplossingen.
#10
Bedankt Eddy. De select case werkt. :vreegoe:

Blijft het nog wel een raadsel waarom het onder xp wel werkte
en onder windows 7 x64 niet.

Wat betreft Commandname en strCMD, het werkt wel en er is een
bepaalde reden voor dat ik beide gebruikt, jammer genoeg is die mij
ontschoten.
#11
Heel het print programma werkt, op dat ene stukje na.
Andere vba's programma's gemaakt onder xp werken ook.

En dat is nu net het nadeel, het werken met template's. Je moet precies weten
welke tekeningen staan en welke liggen. En als je tekeningen binnen krijgt van een
klant weet je dat niet. En mijn programma draait de tekeningen zodat ze altijd
goed uit de printer komen.
#12
Hartelijk dank voor de reacties tot zover en de reacties die gaan komen en even ter aanvulling het gedeelte dat zorgt voor het wegschrijven naar excel werkt.
Maar voor de geïnteresseerden, hier is de code, het is geen hoogstaande programeerkunst
maar het werkt:
Option Explicit
Dim var_row As Integer, var_Teknum As String
Dim var_error As String
'Excel
Dim excelApp As excel.Application
Dim WbkObj As Workbook, shtobj As Worksheet
Dim fFs
'==================================================================

'Excel openen
Private Sub excel_openen()
  On Error Resume Next
  Err.Clear
  Set excelApp = GetObject(, "Excel.Application")
  If Err <> 0 Then
    Err.Clear
    Set excelApp = CreateObject("Excel.Application")
    If Err <> 0 Then
      MsgBox "Excel kan niet gestart worden", vbExclamation
      End
    End If
  End If
  Set excelApp = GetObject(, "Excel.Application")
  Set fFs = CreateObject("Scripting.FileSystemObject")
  If fFs.FileExists("h:\plotlijst.xls") Then
    excel.Application.Visible = False
    excel.Application.Workbooks.Close
    excel.Application.Workbooks.Open ("h:\plotlijst.xls")
    Set shtobj = excel.Application.Worksheets(1)
  Else
    excel.Application.Visible = False
    excel.Application.DisplayAlerts = False
    excel.Application.SheetsInNewWorkbook = 1
    Set WbkObj = Workbooks.Add
    excel.Application.Sheets("Blad1").Select
    excel.Application.Sheets("Blad1").Name = "Plotlijst"
    With WbkObj
        .Title = "Plot"
        .Subject = "lijst"
        .SaveAs FileName:="h:\plotlijst.xls"
    End With
    Set shtobj = excel.Application.Worksheets(1)
  End If
End Sub

'Excel afsluiten
Private Sub excel_sluiten()
  On Error Resume Next
  Set excelApp = GetObject(, "Excel.Application")
  If Err <> 0 Then
    Err.Clear
    MsgBox "Geen Excel sessie open", vbExclamation
  Else
    excel.Application.DisplayAlerts = False
    excel.Application.ActiveWorkbook.SaveAs ("h:\plotlijst.xls")
    excel.Application.Workbooks.Close
    excel.Application.Quit
  End If
End Sub

Private Sub cmb_NoSave_Click()
  Call XxxOff
  frm_keuzemenu.Hide
End Sub

Private Sub cmb_Save_Click()
    Call XxxOff
    var_row = 1
    Call excel_openen
    Do While shtobj.Cells(var_row, 1) <> ""
      If shtobj.Cells(var_row, 1) = ThisDrawing.FullName Then 'Tekening in plotlijst?
        Call excel_sluiten
        frm_keuzemenu.Hide
        Exit Sub
      End If
      var_row = var_row + 1
    Loop
    If (var_row Mod 2) Then ' Kijken of kolom is even of oneven
        var_Teknum = ThisDrawing.FullName
        shtobj.Cells(var_row, 1) = ThisDrawing.FullName
        shtobj.Cells(var_row, 2) = ThisDrawing.Name
        shtobj.Cells(var_row, 3) = Time
        shtobj.Cells(var_row, 4) = Date
        'excel.Application.Cells(var_row, 2).FormulaR1C1 = "=right(rc[-1],15)" (bewaren niet weg gooien)
        excel.Application.Cells(var_row, 1).Font.color = vbRed
        excel.Application.Cells(var_row, 1).Font.Bold = True
    Else
         var_Teknum = ThisDrawing.FullName
        shtobj.Cells(var_row, 1) = ThisDrawing.FullName
        shtobj.Cells(var_row, 2) = ThisDrawing.Name
        shtobj.Cells(var_row, 3) = Time
        shtobj.Cells(var_row, 4) = Date
        'excel.Application.Cells(var_row, 2).FormulaR1C1 = "=right(rc[-1],15)" (bewaren niet weg gooien)
        excel.Application.Cells(var_row, 1).Font.color = vbBlue
        excel.Application.Cells(var_row, 1).Font.Bold = True
        excel.Application.ActiveWorkbook.Colors(34) = RGB(234, 234, 234)
        excel.Application.Rows(var_row).Select
          With Selection.Interior
            .ColorIndex = 34
            .Pattern = xlSolid
          End With
    End If
    Call excel_sluiten
    frm_keuzemenu.Hide
End Sub
Private Sub XxxOff()
  Dim BlockObj As Object
  Dim BlockObjAttributes
  Dim i As Integer, b As Integer, c As Integer
  Dim BlockName As String, BlockMatch As String, waarde As String
  Dim XxxOff As AcadSelectionSet
  Dim handle
  Set XxxOff = ThisDrawing.SelectionSets.Add("OFFX")
  XxxOff.Select acSelectionSetAll
  b = XxxOff.Count - 1
  c = 0
  Do While c <= b
   Set BlockObj = ThisDrawing.HandleToObject(XxxOff.Item(c).handle)
   If BlockObj.ObjectName = "AcDbBlockReference" Then
      BlockObjAttributes = BlockObj.GetAttributes
      For i = LBound(BlockObjAttributes) To UBound(BlockObjAttributes)
         waarde = BlockObjAttributes(i).TextString
         If waarde = "XXX" Then
           BlockObjAttributes(i).TextString = "   "
         End If
      Next i
   Else
      If BlockObj.ObjectName = "AcDbText" Then
         waarde = BlockObj.TextString
         If waarde = "XXX" Then
           BlockObj.TextString = "   "
         End If
      Else
         'waarde = TextString
         'If waarde = "XXX" Then
         '   TextString = "   "
         ' End If
      End If
   End If
   c = c + 1
  Loop
  ThisDrawing.SelectionSets.Item("OFFX").Delete
End Sub

Ik had het al geprobeerd met een break, maar ik heb zelf het idee, dat het stukje code in
ThisDrawing niet gezien wordt door AutoCad.
#13
Omdat ik niet tevreden was over batch plot van autocad heb ik mijn eigen batch plot geschreven, puur alleen voor A3 of A4 tekeningen. En omdat ik eigenlijk alleen maar elektrotechnische schema's teken, wat betekent dat ik soms veel tekeningen aanpas op een dag, die over verschillende directory's verspreid staan. Daarom had ik een routine gemaakt die als ik een nieuwe tekening open vraagt of ik de tekening die ik wil sluiten opgeslagen moet worden in een excel-bestand en dit bestand kan ik dan later in mijn batch plot opvragen.
Dit werkte goed in autocad 2006 t/m 2011 onder XP. Maar sinds vorige week ben ik overgestapt op Windows 7 X64 en nu werkt het dus niet meer. Dit is de code en deze staat onder Autocad Objects in ThisDrawing :
Private Sub AcadDocument_BeginCommand(ByVal CommandName As String)
  If CommandName = "OPEN" Or strCMD = "_OPEN" Then
    frm_keuzemenu.Show
  End If
End Sub

Heeft iemand een idee waarom dit nu niet meer werkt.
#14
VBA / Re:Xref status
wo 31 03 2010, 10:27:57
Bedankt voor de antwoorden.
Ik ga het eens proberen met de lisp-routine.

Met vriendelijke groet,
Willy
#15
VBA / Re:Xref status
di 30 03 2010, 15:08:34
Is dit echt niet te doen.
Ik moet voor meer dan 4000 dwg's kijken of de xref wel of niet aanwezig en kijken
of die wel of niet aanwezig is of dat alleen het pad niet klopt.

Met vriendelijke groet,
Willy
FastFiber