Aller au contenu

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!


1 801 sujets dans ce forum

    • 23 réponses
    • 6,4 k vues
    • 7 réponses
    • 3,5 k vues
    • 2 réponses
    • 5,6 k vues
    • 6 réponses
    • 3 k vues
  1. Fonction transparente '

    • 3 réponses
    • 2,3 k vues
    • 4 réponses
    • 1,8 k vues
    • 5 réponses
    • 3,1 k vues
    • 10 réponses
    • 4,4 k vues
    • 2 réponses
    • 1,8 k vues
    • 0 réponse
    • 2,6 k vues
  2. Type de ligne

    • 7 réponses
    • 2,8 k vues
    • 5 réponses
    • 1,7 k vues
    • 2 réponses
    • 1,4 k vues
  3. paramètres de DEFUN

    • 4 réponses
    • 1,7 k vues
  4. arcsin

    • 2 réponses
    • 1,8 k vues
    • 5 réponses
    • 1,8 k vues
  5. unload lisp

    • 9 réponses
    • 2,3 k vues
    • 7 réponses
    • 3 k vues
  6. Xdata

    • 2 réponses
    • 1,6 k vues
  7. Commande reseau en lisp

    • 7 réponses
    • 3,2 k vues
    • 5 réponses
    • 1,5 k vues
  8. angle entre deux scu

    • 3 réponses
    • 4,5 k vues
    • 1 réponse
    • 1,8 k vues
  9. filtre dans SSGET "X"

    • 5 réponses
    • 3,3 k vues
  10. Entity DXF Group Code Table

    • 0 réponse
    • 1,2 k vues


  • Statistiques des forums

    • Total des sujets
      49,4 k
    • Total des messages
      299,5 k
  • Sujets

  • Messages

    • Bonjour @AlexisF Puisque vous passez en 3D effectivement ça ne fonctionne pas ! Maintenant, je me permets de déconseiller cette façon de faire, en effet lorsque vous allez relier les points, les distances seront fausses du fait de l'éloignement du point par rapport à la droite qui sert de référence à la façade. Et en plus, vous ne connaitrez pas facilement le débord ou le retrait de ce point par rapport à l'alignement de la façade (balcon, retrait toiture...) c'est ICI Deux solutions : Vous allez voir ce que je propose pour dessiner des façades sur mon site Vous continuez avec cette démarche et je vais revoir ma routine. prévenez-moi ici ou par le formulaire de contact de mon site. Amicalement
    • Merci beaucoup Steven ! C'est parfait !!!!! J'ai une 50ene de plans à faire, ça va bien m'aider !!!!!
    • Bonjour  @angelique,   Voici le lisp, RINS, de Patrick_35, et le lisp INSEDIT, de Gile.😉 Les 2, font le job 😀 INSEDIT.zip RINS_V320.7z
    • Salut,   J'ai fait une routine il y très longtemps pour le même problème ;########################################################################### ;# Copyright (C) 04-2011 Vincent PRELAT # ;# This program is free software: you can redistribute it and/or modify # ;# it under the terms of the GNU General Public License as published by # ;# the Free Software Foundation, either version 3 of the License, or # ;# any later version. # ;# This program is distributed in the hope that it will be useful, # ;# but WITHOUT ANY WARRANTY; without even the implied warranty of # ;# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # ;# GNU General Public License for more details. # ;# You should have received a copy of the GNU General Public License # ;# along with this program. If not, see <http://www.gnu.org/licenses/>. # ;########################################################################### ; Redefinit le point de base d'un bloc sans le deplacer (vl-load-com) ;; getMatrixRot Retourne la matrice d'une rotation (defun getMatrixRot (rot) (list (list (cos rot) (- (sin rot)) 0 0) (list (sin rot) (cos rot) 0 0) (list 0 0 1 0) (list 0 0 0 1) ) ) ;; getMatrixEch Retourne la matrice d'une echelle (defun getMatrixEch (ech) (list (list (nth 0 ech) 0 0 0) (list 0 (nth 1 ech) 0 0) (list 0 0 (nth 2 ech) 0) (list 0 0 0 1) ) ) ;; getMatrixTranst Retourne la matrice d'une translation (defun getMatrixTrans (trans) (list (list 1 0 0 (nth 0 trans)) (list 0 1 0 (nth 1 trans)) (list 0 0 1 (nth 2 trans)) (list 0 0 0 1) ) ) ;; mxv Apply a transformation matrix to a vector by Vladimir Nesterovsky (defun mxv (m v) (mapcar '(lambda (row) (apply '+ (mapcar '* row v))) m) ) ;; Transpose une matrice Doug Wilson (defun trp (m) (apply 'mapcar (cons 'list m)) ) ;; mxm Multiply two matrices by Vladimir Nesterovsky (defun mxm (m q) (mapcar (function (lambda (r) (mxv (trp q) r))) m) ) ;;; butlast Retourne la liste privée du dernier élément (defun butlast (lst) (reverse (cdr (reverse lst))) ) ;; REMOVE-I ;; Retourne la liste privée de l'élément à l'indice spécifié (premier élément = 0) ;; Arguments : la liste et l'indice de l'élément à supprimer (defun remove-i (ind lst) (if (or (zerop ind) (null lst)) (cdr lst) (cons (car lst) (remove-i (1- ind) (cdr lst))) ) ) ;;; VXV Retourne le produit scalaire (réel) de deux vecteurs (defun vxv (v1 v2) (apply '+ (mapcar '* v1 v2)) ) ;; V^V (gile) ;; Retourne le produit vectoriel (vecteur) de deux vecteurs ;; Arguments : deux vecteurs (defun v^v (v1 v2) (list (- (* (cadr v1) (caddr v2)) (* (caddr v1) (cadr v2))) (- (* (caddr v1) (car v2)) (* (car v1) (caddr v2))) (- (* (car v1) (cadr v2)) (* (cadr v1) (car v2))) ) ) ;; M+M ;; Additionne 2 matrices ;; Arguments : deux matrices (defun m+m (m1 m2) (mapcar '(lambda (v1 v2) (mapcar '+ v1 v2)) m1 m2) ) ;; MXS ;; Multiplie une martice par un nombre ;; Arguments : une matrice et un nombre (defun mxs (m s) (mapcar '(lambda (v) (vxs v s)) m)) ;; IMAT ;; Crée une matrice d'identité de dimension n ;; Argument ;; n : la dimension de la matrice (defun Imat (d / i n r m) (setq i d) (while (<= 0 (setq i (1- i))) (setq n d r nil) (while (<= 0 (setq n (1- n))) (setq r (cons (if (= i n) 1.0 0.0) r)) ) (setq m (cons r m)) ) ) ;; INVERSEMATRIX ;; Inverse une matrice carrée (méthode Gauss-Jordan) ;; Argument: la matrice ;; Retour : la matrice inverse ou nil (si non inversible) (defun InverseMatrix (mat / col piv row res) (setq mat (mapcar '(lambda (x1 x2) (append x1 x2)) mat (Imat (length mat)))) (while mat (setq col (mapcar '(lambda (x) (abs (car x))) mat)) (repeat (vl-position (apply 'max col) col) (setq mat (append (cdr mat) (list (car mat)))) ) (if (equal (setq piv (caar mat)) 0.0 1e-14) (setq mat nil res nil ) (setq piv (/ 1.0 piv) row (mapcar '(lambda (x) (* x piv)) (car mat)) mat (mapcar '(lambda (r / e) (setq e (car r)) (cdr (mapcar '(lambda (x n) (- x (* n e))) r row)) ) (cdr mat) ) res (cons (cdr row) (mapcar '(lambda (r / e) (setq e (car r)) (cdr (mapcar '(lambda (x n) (- x (* n e))) r row)) ) res ) ) ) ) ) (reverse res) ) (defun c:insredef (/ ent bl rot ech invech ptnouv ptins vect vect2 mat matrot matech debut nb nb1 allbl pt n i namebl) (setvar "cmdecho" 0) (command "_.undo" "_m") (setq ent (car (entsel "Selectionner le bloc a modifier :"))) (if (/= ent nil) (progn (setq bl (cdr (assoc 2 (entget ent)))) ;; Calcul du vecteur de deplacement dans le scu du bloc (setq ptins (cdr (assoc 10 (entget ent)))) (setq rot (cdr (assoc 50 (entget ent)))) (setq ech (list (cdr (assoc 41 (entget ent))) (cdr (assoc 42 (entget ent))) (cdr (assoc 43 (entget ent))) )) (vla-highlight (vlax-ename->vla-object ent) :vlax-true) (setq ptnouv (getpoint "Pointez le nouveau point de base du bloc :")) (vla-highlight (vlax-ename->vla-object ent) :vlax-false) (setq ptnouv (trans ptnouv 1 0)) (setq vect (mapcar '(lambda (x y) (- y x)) ptins ptnouv)) (setq invech (mapcar '(lambda (x) (/ 1 x)) ech)) (setq matech (getMatrixEch invech)) (setq matrot (getMatrixRot (- rot))) (setq mat (mxm matech matrot)) (setq vect (butlast (mxv mat vect))) ;;_fin calc vect dep ;; Modif definition du bloc (setq debut 1) (while (/= namebl bl) (setq i (tblnext "block" debut) debut nil) (setq namebl (cdr (assoc 2 i))) ) (if (/= i nil) (progn (setq n (cdr (assoc -2 i))) (while n (if (and (/= (cdr (assoc 0 (entget n))) "VERTEX") (/= (cdr (assoc 0 (entget n))) "COVAPTSEL")) (vla-move (vlax-ename->vla-object n) (vlax-3d-point (list 0.0 0.0 0.0)) (vlax-3d-point (mapcar '(lambda (x) (- x)) vect))) ) (setq n (entnext n)) (if (/= n nil) (if (= (cdr (assoc 0 (entget n))) "SEQEND") (setq n nil)) ) ) ;_while )) ;_if ;; Fin modif bloc ;; Deplace les blocs (setq allbl (ssget "x" (list (cons 2 bl)))) (setq nb 0 nb1 (sslength allbl)) (while (< nb nb1) (setq ent (ssname allbl nb)) (setq ptins (cdr (assoc 10 (entget ent)))) (setq rot (cdr (assoc 50 (entget ent)))) (setq ech (list (cdr (assoc 41 (entget ent))) (cdr (assoc 42 (entget ent))) (cdr (assoc 43 (entget ent))) )) (setq matech (getMatrixEch ech)) (setq matrot (getMatrixRot rot)) (setq mat (mxm matech matrot)) (setq vect2 (butlast (mxv mat vect))) (setq pt (mapcar '(lambda (x y) (+ x y)) ptins vect2)) (entmod (subst (cons 10 pt) (assoc 10 (entget ent)) (entget ent))) (setq nb (+ nb 1)) ) ;; Fin deplace blocs )) ;;_if (/= ent nil) )  
    • Bonjour, Je me permets de déterrer ce post de 2023. J'ai passé plusieurs postes en version GEOGEXFRCAD réseau vers la version 3.3 (avant on utilisait des versions 2.1 et 3.0 sans problèmes avec plusieurs licences réseau). Le fonctionnement du timeout réglé sur 2h est insupportable, et surtout les utilisateurs (clients) n'ont pas été prévenus et n'ont pas le choix. La modification se fait en cours de contrat de location, en toute discrétion, sans préavis, sans possibilité de réglage de temps, etc.... On modifie les règles du jeu en cours de partie, sans attendre l'échéance du contrat. Est-ce légal d'après le contrat de location signé ? Cela crée trop de problèmes de licences indisponibles. On voudrait éviter que les gens louent des licences réseau on ne s'y prendrait pas mieux..... Simple ajustement de Sogelink pour pousser à la location de licences monopostes ? Le timeout réglé sur 5 minutes empêchait surtout de vendre toujours plus de licences, business as usual... Idem pour le fait de ne pas pouvoir ouvrir plusieurs instances d'un GEOGEX réseau sur un même poste sans prendre plusieurs jetons, ce n'est pas normal, ni logique. Si j'ai un utilisateur qui ouvre 3 dessins dans 3 GEOGEX différents (pour les comparer sur plusieurs écrans et ne pas risquer que le plantage d'un seul onglet ne fasse planter tout le reste), et bien il prend 3 jetons. Je n'ai pas trouvé cette limitation d'instances multiples sur un même poste, ni dans le contrat signé, ni dans les conditions du contrat OEM..... Bref, tous les jours j'ai des utilisateurs qui n'arrivent plus à avoir de licences, qui ne travaillent plus et attendent patiemment en argumentant qu'elles ne peuvent plus travailler. Il faut faire le tour des bureaux et du télétravail, pour savoir qui a oublié de fermer son Geogex, alors qu'il est juste parti boire un café.... Alors qu'avant cela, nous n'avons jamais eu ce genre de problèmes bloquants avec nos licences réseau (que ce soit Covadis ou Geogex). Je confirme le sentiment de @Geo34, cela revient à brider le système multi-utilisateurs et la perte de fluidité qui va avec ? Surtout quand cela nous est imposer en cours de contrat.... Salutations.  
  • 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é