Aller au contenu

cblais

Membres
  • Compteur de contenus

    3
  • Inscription

  • Dernière visite

Tout ce qui a été posté par cblais

  1. cblais

    FICHIERS LISP SUR PALETTE

    Par l'interface de personnalisation CUI, du peux faire une nouvelle commande et la déposer dans la palette par drag & drop.
  2. Merci Gile, c'est pas exactement ce que je veux faire, mais je ne peux pas cracher sur ton idée. Je souhaite faire un zoom sur la vue active telle que tu l'as remarqué, mais je m'en préocuperai plus tard. Lorsque le dessin est sauvegardé dans un "layout", je suis incapable de changer le zoom. J'ai essayé ton code et j'ai l'erreur suivante : Unable to cast object of type 'Autodesk.AutoCAD.DatabaseServices.Viewport' to type 'Autodesk.AutoCAD.DatabaseServices.ViewportTableRecord'. J'ai essayé un milion de trucs et je crois avoir déjà vu ce message d'erreur. vptr est un ViewPortTableRecord et je lui en passe un qu'il n'aime pas trop !!? C'est sur cette ligne : Dim vptr As ViewportTableRecord = tm.GetObject(lay.GetViewports(0), OpenMode.ForWrite) À partir d'ici, je recherche sur ce que tu m'as donné. On ne doit pas être bien loin d'une solution. Si tu as une idée de ce qui ne va pas, n'hésite pas. Je post aussi je trouve la solution.
  3. En VB.NET sur AutoCAD, je fais une fonction qui fait un ZoomExtends, mais dans une database seulement, pas de document ouvert. (voir code plus bas). Seulement, je ne trouve pas comment le faire dans un "layout" ou en mode papier. Ça fonctionne très bien en "modelspace". Quelqu'un a déjà essayé ? ou des idées pour m'aider ? Sub ZoomExtents(ByVal myDB As Autodesk.AutoCAD.DatabaseServices.Database) Dim tm As Autodesk.AutoCAD.DatabaseServices.Transaction = myDB.TransactionManager.StartTransaction Try If myDB.TileMode = True Then 'Model Dim vpt As ViewportTable = tm.GetObject(myDB.ViewportTableId, OpenMode.ForRead) Dim vptr As ViewportTableRecord = tm.GetObject(vpt.Item("*Active"), OpenMode.ForWrite) Dim pt3Max As Point3d = myDB.Extmax Dim pt3Min As Point3d = myDB.Extmin Dim pt2Max As Autodesk.AutoCAD.Geometry.Point2d = New Autodesk.AutoCAD.Geometry.Point2d(pt3Max.X, pt3Max.Y) Dim pt2Min As Autodesk.AutoCAD.Geometry.Point2d = New Autodesk.AutoCAD.Geometry.Point2d(pt3Min.X, pt3Min.Y) vptr.CenterPoint = (pt2Min + (pt2Max - pt2Min) / 2.0) vptr.Height = (pt2Max.Y - pt2Min.Y) vptr.Width = (pt2Max.X - pt2Min.X) myDB.UpdateExt(True) Else 'Papier End If Catch ex As Exception MsgBox("Erreur de zoom, " & ex.Message) Finally tm.Commit() tm.Dispose() End Try End Sub
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité