OVH Cloud OVH Cloud

[VBA dans autocad]

1 réponse
Avatar
Sebastien
Bonjours,

je doit développer un petit logiciel qui permet de sélectionner un
répertoire et d'imprimer tous les fichier dxf qui ce trouve a l' intérieur,

j'ai donc fais une routine en vba qui charge tous les fichier d'un
répertoire dans autocad (jusque la tous vas bien ;-) , mais es ce que qq.
aurais un bout de code pour l'impression ?
j'essaye avec plot, mais il me met des erreur partout .... apparemment il
faux définir une zone d'impression, ... enfin bon je ne trouve pas la
méthode a suivre, si qq aurais un bout de code ou la méthode a suivre sa
serai sympa

ou si qq. connais un moyen d'imprimer des fichiers dxf a partir de vb6 sa
serai encore mieux .... mais bon sans un ocx payant je pense pas (j'ai la
licence autocad 2000 sur chaque poste destiner a utiliser le soft, donc si c
un ocx de autocad c bon)

merci
--
a++
Sebastien
s.dieudonne@inosys.net ou inosys@hotmail.com
---------------------------------------------------------------------------
Un addin bien sympa qui facilite la prog objet (Génération automatique de
code) et la gestion d'erreur sous VB6.0 :-)
http://www.inosys.net/genclass/vb6/addingenclass.zip

1 réponse

Avatar
Christophe
Salut sebastien

tu dois utiliser le modele objet autocad pour imprimer, car acad gere les
impressions à sa manière. Tu es obliger de passer par plot.

L'autre solution consiste a utiliser les api pour imprimer dans le DC de
l'imprimante, mais si tu sais faire ça l'utilisation de plot ne te poseras
pas de pbs.

Pour definir la zone d'impression utilise selectonscreen
ci--dessous un extrait de mon code (attention j'utilise acad depuyis VB et
non pas dedans en VBA mais pour ce qui t'interesse c'est pareil)


Pour la visu et l'impression de DXF il y a des gratuits, fais une recherche
google.

Si tous tes postes ont la licence acad2000 demande de l'aide chez autodesk
c'est gratuit. Car la solution la plus simple est d'utiliser VBA dans ACAD,
il faut juste te familiariser avec le modele objet.


Christophe V.

Public Sub definirepa()
Dim acadobj As Object
Dim pt As Variant
Dim selection As Object
Dim unpt(0 To 2) As Double
lanceautocad

Set acadobj = GetObject(, "AutoCAD 2000.Application")
acadobj.ActiveDocument.New nomfichencours
acadobj.Update
Call acadobj.ActiveDocument.SetVariable("PDMODE", 2)
Call acadobj.ActiveDocument.SetVariable("PDSIZE", -2)
acadobj.ActiveDocument.Regen (acActiveViewport)
Set selection = acadobj.ActiveDocument.SelectionSets
selection.Add ("départ")
MDIForm1.SetFocus
i% = MsgBox("Saisissez les points de calages", vbOKOnly, "attention")

AppActivate "AutoCAD 2000"
selection("départ").SelectOnScreen
MDIForm1.SetFocus
ReDim Preserve repa(selection("départ").Count - 1, 1)
For i% = 0 To selection("départ").Count - 1
pt = selection("départ").Item(i%).Coordinates
'defini la matrice de point de d'arrivé

repa(i%, 0) = pt(0)
repa(i%, 1) = pt(1)
Next i%

acadobj.ActiveDocument.Save
acadobj.Quit
Set pt = Nothing
Set selection = Nothing
Set acadobj = Nothing

fermeautocad
End Sub