Aller au contenu

LISP et Visual LISP


Sous-forums

  1. Débuter en LISP

    Vous voudriez savoir ce qu'est le LISP? Vous êtes débutant, vous n'êtes pas programmeur mais vous souhaitez vous y mettre? Ce forum est fait pour vous!

    14,7 k
    messages
  2. Pour aller plus loin en LISP

    Vous avez déjà écrit des programmes LISP? Vous souhaitez vous perfectionner? Vous butez sur un problème de programmation? Les termes de DCL, ActiveX, réacteur, compilation ne vous sont pas inconnus? Ce forum est pour vous.

    9,8 k
    messages
  3. Visual LISP

    Vous voulez en savoir plus sur le Visual LISP, son éditeur/débugeur/compilateur? Vous voulez partager vos expériences dans cet environnement? Ce forum est pour vous...

    2,2 k
    messages
  4. Routines LISP

    Postez ici vos routines LISP. Une routine est du code court destiné à être réutilisé. Par exemple, un programme mettant à jour la valeur d'un attribut de bloc est une routine. Ne postez pas d'applications ici!

    13,3 k
    messages
  5. ObjectDCL

    ObjectDCL est un projet open source qui permet l'ajout de boites de dialogues interfacées avec le LISP.

    427
    messages

413 sujets dans ce forum

  1. Aide aux développeurs

    • 0 réponse
    • 1,8 k vues
  2. Adieu Patrick_35 1 2 3

    • 52 réponses
    • 13,5 k vues
    • 3 réponses
    • 106 vues
    • 0 réponse
    • 48 vues
  3. mur en lisp

    • 1 réponse
    • 1,5 k vues
  4. Lisp de dévoiement

    • 1 réponse
    • 1,1 k vues
    • 12 réponses
    • 410 vues
    • 3 réponses
    • 340 vues
  5. Aperçu DCL sans réponse.

    • 3 réponses
    • 186 vues
    • 5 réponses
    • 658 vues
  6. SOMMAIRE AUTOMATIQUE

    • 22 réponses
    • 4,1 k vues
    • 5 réponses
    • 8,9 k vues
    • 9 réponses
    • 625 vues
  7. LISP - Sélection

    • 4 réponses
    • 1 k vues
    • 17 réponses
    • 1,6 k vues
    • 13 réponses
    • 710 vues
  8. Distribuer une application LISP (ou autre)

    • 9 réponses
    • 828 vues
    • 22 réponses
    • 808 vues
    • 2 réponses
    • 524 vues
    • 4 réponses
    • 543 vues
    • 13 réponses
    • 605 vues
  9. Double tri sur liste

    • 5 réponses
    • 2,2 k vues
    • 3 réponses
    • 529 vues
    • 27 réponses
    • 1,5 k vues
    • 9 réponses
    • 703 vues


  • Statistiques des forums

    • Total des sujets
      48,6 k
    • Total des messages
      294,8 k
  • Sujets

  • Messages

    • Bonjour Tu ne peux pas modifier ça avec un lisp : tu peux modifier uniquement les variables système Autocad avec un lisp, mais Covadis gère sa config dans des fichiers externes. Quel serait le but de ce que tu veux faire ?
    • Bonjour à tous, j'aimerai modifier les options de Covadis (dernier onglet dans les options AutoCAD) avec un Lisp. Existe-t-il une liste de variables ou de commandes VLisp pour faire ces modifications ? Merci  
    • Bonjour, en utilisant Increment de Gilles et AttAdd.vlx trouver chez Cadstudio, j'arrive à faire le job.   Bonne journée. AttAdd.VLX
    • Si on veut éviter d'appeler les commandes natives, on accède au SCU courant par la propriété CurrentCoordinateSystem de la classe Editor. Le type de cette propriété est Matrix3d. Mais généralement en programmation on utilise peu les commandes natives donc on ne s'intéresse au SCU que pour transformer les points récupérés par ou passés aux méthodes Editor.Getxxx. (command "_UCS" "_WORLD") la matrice de transformation correspondant au Système de coordonnées général est la matrice identité. var ed = Application.DocumentManager.MdiActiveDocument.Editor; ed.CurrentUserCoordinateSystem = Matrix3d.Identity; (command "_UCS" "_3P" point1 point2 "") , ici il faut construire la matrice. var ed = Application.DocumentManager.MdiActiveDocument.Editor; var xAxis = point1.GetVectorTo(point2).GetNormal(); var yAxis = Vector3d.ZAxis.CrossProduct(xAxis).GetNormal(); var ucsMatrix = Matrix3d.AlignCoordinateSystem( Point3d.Origin, Vector3d.XAxis, Vector3d.YAxis, Vector3d.ZAxis, point1, xAxis, yAxis, Vector3d.ZAxis); ed.CurrentUserCoordinateSystem = ucsMatrix; Les systèmes de coordonnées nommés sont enregistrés dans la "table des SCUs" : UcsTable. (command "_UCS" "_R" nomscu) var ed = Application.DocumentManager.MdiActiveDocument.Editor; var db = HostApplicationServices.WorkingDatabase; using (var tr = db.TransactionManager.StartTransaction()) { var ucsTable = (UcsTable)tr.GetObject(db.UcsTableId, OpenMode.ForRead); if (ucsTable.Has(nomscu)) { var ucs = (UcsTableRecord)tr.GetObject(ucsTable[nomscu], OpenMode.ForRead); ed.CurrentUserCoordinateSystem = Matrix3d.AlignCoordinateSystem( Point3d.Origin, Vector3d.XAxis, Vector3d.YAxis, Vector3d.ZAxis, ucs.Origin, ucs.XAxis, ucs.YAxis, ucs.XAxis.CrossProduct(ucs.YAxis).GetNormal()); } tr.Commit(); } (command "_UCS" "_X" -100.00) , en admettant que -100.00 correspond bien à -100 grades, soit 1.5 * PI radians, on combine la matrice de rotation autour de l'axe X avec la matrice courante. var ed = Application.DocumentManager.MdiActiveDocument.Editor; var ucsMat = ed.CurrentUserCoordinateSystem; var ucs = ucsMat.CoordinateSystem3d; ed.CurrentUserCoordinateSystem = Matrix3d.Rotation(Math.PI * 1.5, ucs.Xaxis, ucs.Origin) * ucsMat;   Pour les vues, on utilise des instances de la classe ViewTableRecord telle que renvoyées par la méthode Editor.GetCurrentView ou passées à la méthode Editor.SetCurrentView. (command "_PLAN" "") var ed = Application.DocumentManager.MdiActiveDocument.Editor; var ucs = ed.CurrentUserCoordinateSystem.CoordinateSystem3d; using (var view = ed.GetCurrentView()) { var dcsToWcs = Matrix3d.Rotation(-view.ViewTwist, view.ViewDirection, view.Target) * Matrix3d.Displacement(view.Target.GetAsVector()) * Matrix3d.PlaneToWorld(view.ViewDirection); var centerPoint = new Point3d(view.CenterPoint.X, view.CenterPoint.Y, 0.0) .TransformBy(dcsToWcs); view.ViewDirection = ucs.Zaxis; view.ViewTwist = ucs.Xaxis.GetAngleTo(Vector3d.XAxis, ucs.Zaxis); var wcsToDcs = Matrix3d.WorldToPlane(view.ViewDirection) * Matrix3d.Displacement(view.Target.GetAsVector().Negate()) * Matrix3d.Rotation(view.ViewTwist, view.ViewDirection, view.Target); centerPoint = centerPoint.TransformBy(wcsToDcs); view.CenterPoint = new Point2d(centerPoint.X, centerPoint.Y); ed.SetCurrentView(view); }   (command "_DVIEW" "" "_PO" ptTarget ptCamera "_CL" "_B" (* -1 sectionHalfDepth) "_CL" "_F" sectionHalfDepth "") var ed = Application.DocumentManager.MdiActiveDocument.Editor; using (var view = ed.GetCurrentView()) { view.Target = ptTarget; view.ViewDirection = ptTarget.GetVectorTo(ptCamera); view.BackClipDistance = -sectionHalfDepth; view.BackClipEnabled = true; view.FrontClipDistance = sectionHalfDepth; view.FrontClipEnabled = true; view.FrontClipAtEye = false; var wcsToDcs = Matrix3d.WorldToPlane(view.ViewDirection) * Matrix3d.Displacement(view.Target.GetAsVector().Negate()) * Matrix3d.Rotation(view.ViewTwist, view.ViewDirection, view.Target); var centerPoint = ptTarget.TransformBy(wcsToDcs); view.CenterPoint = new Point2d(centerPoint.X, centerPoint.Y); ed.SetCurrentView(view); }  
    • Salut @(gile), Y a pas de lézard, c'est moi qui n'est pas suffisamment été précis dans ma demande 😉 C'est top 👍🏼 Merci.
  • Sujets

×
×
  • 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é