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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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
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