Aller au contenu

bonuscad

Membres
  • Compteur de contenus

    5 029
  • Inscription

  • Dernière visite

  • Jours gagnés

    56

Tout ce qui a été posté par bonuscad

  1. Bonjour, Pour que ta fonction lisp puisse être transparente, il faut que celle-ci soit conçue en conséquence. Elle ne doit en aucun cas faire appel à un (command) surtout si celui-ci concerne la création ou la modification d'un objet, je n'ai jamais testé avec (entmake) ou (entmod), mais je pense que la restriction est la même. De plus certaines commandes Autocad peuvent être elle même des fonctions lisp, ce qui empêchera ta fonction lisp en transparence: tu auras un message du style qu'il ne peut ré-entrer dans Autolisp. Un (ancien) exemple basique de fonction qui fonctionne en transparence: (defun c:xmil ( / p1 p2 p) (prompt "\nPoint milieu entre ") (setq p1 (getpoint "premier point : ")) (setq p2 (getpoint p1 "\nsecond point : ")) (setvar "osmode" (+ 16384 (rem (getvar "osmode") 16384))) (setq p (list (/ (+ (car p1) (car p2)) 2) (/ (+ (cadr p1) (cadr p2)) 2) (/ (+ (caddr p1) (caddr p2)) 2) ) ) (setvar "lastpoint" p) ) Avec ceci tu pourra par exemple dans l'exécution de la commande LIGNE taper 'XMIL pour éxecuter le code en transparence.
  2. Merci de vos propositions, j'ai réussi à appliquer vos suggestions. En effet, mais cela est minime. Que ce soit avec ton code ou celui de Lee l'écart constaté est le même. Je vais voir à fignoler l'application que j'ai écrite, car j'ai remarqué qu'à partir d'un patchwork assez multicolore, j'obtiens au final une nuance plus claire mais qui se regroupe sur 4 tons dominants (bleu clair, rouge marron clair, gris moyen et un blanc cassé). On dirait un filtre appliqué à des photos satellites. Je vais peut être transformer Autocad en PhotoShop... :D
  3. bonuscad

    type de ligne et shp

    Regarde ton codepage de ton nouvel OS (unicode?) Ca peut être ça qui fait que ton fichier est mal interprété...
  4. Bonjour, J'ai des aplats (beaucoup) auxquels sont affectés des couleurs RVB Je voudrais que ces aplats aient une couleur plus pastel car actuellement leurs couleur est trop soutenue. La procédure serait de garder la nuance mais d'augmenter la luminance (comme quand on est dans la palette en couleurs vraies en modèle TSL) Comment faire cette modification en lisp sur un ensemble sélectionné; en fait comment calculer le RVB à fournir à (vla-put-TrueColor) pour influencer seulement la luminance. A moins que quelqu'un connaisse une autre manière de faire pour aboutir à un résultat similaire?
  5. A la création du lisp, on disait bien qu'il était destiné à l'intelligence artificielle... Il pouvait/peu s'enrichir de lui même de nouvelle fonction, s'auto-programmer en quelque sorte. On peut croire alors que c'est un bon choix pour des hubots, à défaut pour des CADXpiens... :(rires forts):
  6. Bonjour, Je n'ai pas regardé en détail ins_vtx, mais il n'a pas l'air complet! (les parenthèses ne sont pas appariées) Je te propose celui-ci qui date un peu aussi, je te laisse adapter... (defun c:blk2end ( / obj dxf_obj obj_vlax pt1_start pt2_start par pt1_end pt2_end dxf_210) (defun z_dir (p1 p2 / ) (trans '(0.0 1.0 0.0) (mapcar '(lambda (k) (/ k (sqrt (apply '+ (mapcar '(lambda (x) (* x x)) (mapcar '- p2 p1) ) ) ) ) ) (mapcar '- p2 p1) ) 0 ) ) (while (not (setq obj (entsel "\nSelect a polyline: ")))) (cond ((or (eq (cdr (assoc 0 (setq dxf_obj (entget (car obj))))) "LWPOLYLINE") (and (eq (cdr (assoc 0 dxf_obj)) "POLYLINE") (zerop (boole 1 112 (cdr (assoc 70 dxf_obj)))) ) ) (vl-load-com) (setq obj_vlax (vlax-ename->vla-object (car obj)) pt1_start (vlax-curve-getStartPoint obj_vlax) pt1_end (vlax-curve-getEndPoint obj_vlax) par (vlax-curve-getParamAtPoint obj_vlax pt1_end) ) (cond ((not (zerop par)) (setq pt2_start (vlax-curve-getPointAtParam obj_vlax 1) pt2_end (vlax-curve-getPointAtParam obj_vlax (1- par)) ) (while (not (tblsearch "BLOCK" (setq name_blk (getstring "\nName of block: " T)))) (princ "\n ** incorrect name block! **") ) (foreach n (list (list pt1_start pt2_start) (list pt1_end pt2_end)) (setq dxf_210 (z_dir (car n) (cadr n))) (entmake (list (cons 0 "INSERT") (cons 100 "AcDbEntity") (assoc 67 dxf_obj) (assoc 410 dxf_obj) (cons 8 (getvar "CLAYER")) (cons 100 "AcDbBlockReference") (cons 2 name_blk) (cons 10 (trans (car n) 0 dxf_210)) (cons 50 (angle (trans (car n) 0 dxf_210) (trans (cadr n) 0 dxf_210))) (cons 210 dxf_210) ) ) ) ) ) ) (T (princ "\nIsn't 2Dpolyline avalaible for this function!") ) ) (prin1) )
  7. bonuscad

    Intersection de ligne

    Bonjours De façon très basique, j'ai fais ceci: ((lambda ( / lst_pt js e_name obj js_b nb tmp_name tmp_obj vrt_pt pt) (vl-load-com) (setq js (ssget) n -1) (repeat (sslength js) (setq e_name (ssname js (setq n (1+ n)))) (cond (e_name (setq obj (vlax-ename->vla-object e_name) js_b js nb -1 ) (repeat (sslength js_B) (setq tmp_name (ssname js (setq nb (1+ nb)))) (cond (tmp_name (setq tmp_obj (vlax-ename->vla-object tmp_name) vrt_pt (vlax-variant-value (vla-IntersectWith obj tmp_obj 0)) ) (if (>= (vlax-safearray-get-u-bound vrt_pt 1) 0) (progn (setq pt (vlax-safearray->list vrt_pt)) (if pt (if (> (length pt) 3) (repeat (/ (length pt) 3) (setq lst_pt (cons (list (car pt) (cadr pt) (caddr pt)) lst_pt) pt (cdddr pt)) ) (setq lst_pt (cons pt lst_pt)) ) ) ) ) ) ) ) ) ) ) (initget 7) (setvar "FILLETRAD" (getdist "Rayon des cercles: ")) (setvar "CMDECHO" 0) (if (and lst_pt (listp lst_pt)) (foreach el lst_pt (command "_.circle" "_none" (trans el 0 1) (getvar "FILLETRAD")))) lst_pt )) Tu peux aussi essayer l'utilitaire Qbrick de Jamal
  8. Je viens de regarder la routine et essayer avec des coordonnées très élevées, mais je n'ai pas rencontré de problème avec celle-ci (Je n'ai pas fait de tests très poussé non plus!). D'ailleurs aucun appel a (vlax-curve-getparamatpoint) n'est fait dans celle-ci. Avec quel type d'entité as tu des problème, 2D, 3D?
  9. Bon, ça à l'air de fonctionner. Le code que j'ai appliqué pour ceux que ça pourrait intéresser , ramené à l'exemple ça donne ceci (je ne fais le déplacement que si >1E6) ((lambda ( / ent vlaobj mkv vector pt param) (setq vlaobj (vlax-ename->vla-object (car (setq ent (entsel))))) (if (or (> (fix (car (trans (cadr ent) 1 0))) 1E6) (> (fix (cadr (trans (cadr ent) 1 0))) 1E6)) (setq mkv T vector (trans (cadr ent) 0 0 T)) (setq mkv nil vector '(0.0 0.0 0.0)) ) (if mkv (vla-move vlaobj (vlax-3d-point (trans (cadr ent) 1 0)) (vlax-3d-point '(0.0 0.0 0.0)))) (setq pt (vlax-curve-getClosestPointTo vlaobj (if mkv '(0.0 0.0 0.0) (trans (cadr ent) 1 0)) ) param (vlax-curve-getparamatpoint vlaobj pt) ) (if mkv (vla-move vlaobj (vlax-3d-point '(0.0 0.0 0.0)) (vlax-3d-point vector))) param ))
  10. Oui tu as raison! il faut que l'objet reste identifié pour les fonctions vlax-curve, donc vla-move reste la solution la plus simple. Enfin j'espère... car ce bout de code n'était qu'une partie, il faut que je vois l'incidence sur l'ensemble. Je pense être obligé de construire des jeux de sélection pour les entités crées ultérieurement afin de les déplacer en fin d'exécution.(c'est un peu pour ça que je pensais à une matrice, pour les créer directement au bon endroit, enfin je vais voir...)
  11. Bonjour (gile) Mouais, j'aurais bien voulu éviter cette acrobatie... Et en passant par une matrice de déplacement (ce serait plus élégant), tu penses que le résultat serait évalué? Tu y a peut être déjà réfléchi ? Ça serait peut être une solution générale à appliquer, dès que les coordonnées sont importantes, on passe systématiquement les données à une matrice de déplacement en aller-retour.
  12. Bonjour, Quelqu'un aurait t-il une idée pour que le retour de (vlax-curve-getparamatpoint) soit bien évalué dans ce bout de code suivant: (setq vlaobj (vlax-ename->vla-object (car (setq ent (entsel)))) pt (vlax-curve-getClosestPointTo vlaobj (trans (cadr ent) 1 0) ) param (vlax-curve-getparamatpoint vlaobj pt) ) Pour moi j'ai un souci d'évaluation, nil m'est retourné alors que logiquement il devrait me renvoyer un résultat. Le cas ce produit dans un système de coordonnée élevée (mantisse des nombres importante) par exemple du Lambert RGF93 Si je dessine simplement une ligne en 2D dans ce système, le code peut me renvoyer nil suivant le point de sélection (c'est très aléatoire, des fois ça fonctionne) Si je déplace ma ligne vers 0,0 , je n'ai plus ce dysfonctionnement. Comment feriez vous pour contourner ce problème (sans faire un kilomètre de code)?
  13. Bonjour, Disons que ce qui est bizarre, c'est que le code que tu as publié n'a rien à voir avec celui que je t'ai proposé. La dernière mouture à été publiée (par modification) à la réponse #16 Assures toi que celle que tu utilises est bien la bonne. Refais un copier-coller du code ...
  14. Rien qu'avec Autocad c'est possible, Il faut qu'un traceur DXB générique soit installé. Bien paramétré sa sortie à l'échelle 1:1 avec un format de papier personnalisé pouvant englober tes objets. Le mieux est que tes objets à transformer soit sur un calque précis pour ne tracer que celui-ci (DXB fusionne tous les calque; c'est une sortie papier) Dupliquer sur ce calque un objet de référence pour t'aider à te recaler (déplacement, rotation) l'import ultérieur. Une fois l'export DXB effectué, fais l'import dans un nouveau fichier (command CHARGDXB ou _DXBIN) Reparamètrer le calque et faire un copier-coller des objets vers le fichier d'origine, et recaler ces derniers. NB: Si les polylignes on une épaisseur, mettre REMPLIR sur INACTIF avant la sortie traceur. Autrement le traceur DXB va simuler le remplissage par des multiples traits qui risque d'être disgracieux.
  15. J'ai oublié de lancer la fonction (vl-load-com), suivant les versions d'Autocad, elle n'est pas lancée au démarrage. Tu peux la rajouter dans le code en tout première exécution (en dehors des defun car il suffit d'un seul lancement par session) ma poly je n'arrivais pas à la sélectionner Si le lisp à avorté, tu n'as qu'une image de dessiné, c'est d'ailleurs l'inconvénient de cette nouvelle approche car si tu fais un redess, pan ou un zoom molette les segments déjà saisis vont disparaître (pour réapparaître lors de la validation du sommet suivant). Garder l'affichage de ses segments pourrait se faire, mais alourdirais énormément le code (pour peu de bénéfices, j'ai donc fais l'impasse). Donc si tu veux savoir où tu en es, évite le plus possible les commande d'affichage transparentes lors de l'utilisation. Un (redraw) serait peut être judicieux; à placer sur la ligne avant (setq nw_pl (vlax-invoke Space 'Add3DPoly (apply 'append (reverse lst_pt)))) Je te laisse faire ses modifications bénignes.
  16. bonuscad

    Type de ligne

    D'après moi ce n'est pas possible. Je voulais voir si en activex c'était possible, mais dans l'aide, je suis tombé sur ceci: Ce qui explique qu'avec (entmake) je n'y arrivais pas non plus... :(
  17. Pour ça j'avais changé le mode de fonctionnement, il suffisait de faire un click-droit/Entrée ou Espace. Pour ça j'ai édité mon dernier message et modifié la fonction (ajouz) qui est maintenant (nentsel-getreal), un mixe des deux fonctions native du lisp (nentsel) et (getreal) Au lieu de valider la valeur Z du dernier point entré, il te suffit de taper la valeur souhaitée et de la valider. Cette fonction te permet donc soit de récupérer la valeur du texte graphiquement, soit le Z du dernier point, soit de faire une saisie numérique en une seule invite de commande; je peux pas faire moins ;)
  18. bonuscad

    Type de ligne

    Je ne sais pas faire sans aucun (command), on est obligé de charger le type de ligne. Le mieux que je sache faire est comme cela: ((lambda ( / ) (if (not (tblsearch "STYLE" "AEP")) (entmake '( (0 . "STYLE") (100 . "AcDbSymbolTableRecord") (100 . "AcDbTextStyleTableRecord") (2 . "AEP") (70 . 0) (40 . 0.0) (41 . 1.0) (50 . 0.0) (71 . 0) (42 . 1.0) (3 . "Simplex.shx") (4 . "") ) ) ) (if (not (findfile "AEP.lin")) (progn (setq f_pat (open (strcat (getvar "ROAMABLEROOTPREFIX") "support\\AEP.lin") "w")) (write-line "*AEP,AEP ----AEP----AEP----AEP----AEP----AEP----AEP--" f_pat) (write-line "A,20,-1.3,[\"AEP\",AEP,S=1.3,R=0.0,X=-0.65,Y=-0.65],-3" f_pat) (close f_pat) ) ) (command "_.-linetype" "_load" "AEP" (strcat (getvar "ROAMABLEROOTPREFIX") "support\\AEP.lin") "") ;| (if (not (tblsearch "LTYPE" "AEP")) (entmake (list '(0 . "LTYPE") '(100 . "AcDbSymbolTableRecord") '(100 . "AcDbLinetypeTableRecord") '(2 . "AEP") '(70 . 0) '(3 . "AEP----AEP----AEP----AEP----AEP----AEP----AEP-") '(72 . 65) '(73 . 3) '(40 . 24.3) '(49 . 20.0) '(74 . 0) '(49 . -1.3) '(74 . 2) '(75 . 0) (cons 340 (tblobjname "STYLE" "AEP")) '(46 . 1.3) '(50 . 0.0) '(44 . -0.65) '(45 . -0.65) '(9 . "AEP") '(49 . -3.0) '(74 . 0) ) ) ) |; )) La fin qui est commentée devrait fonctionner, mais ce n'est pas le cas.
  19. Bonjour, Essayes avec cette version remaniée, cela devrait aller... (vl-load-com) (defun nentsel-getreal ( / ent key n nbr) (setq nbr "") (princ (strcat "\nChoisir le Texte/Texte Multiligne/Attribut pour obtenir le Z <" (rtos (caddr (getvar "LASTPOINT")) 2 2) ">: ")) (while (and (not (member (setq key (grread T 4 2)) '((2 13) (2 32)))) (/= (car key) 25) (/= (car key) 3)) (cond ((eq (car key) 2) (if (member (cadr key) '(8 46 48 49 50 51 52 53 54 55 56 57)) (if (eq (cadr key) 8) (progn (princ (chr 8)) (princ (chr 32)) (princ (chr 8)) (setq nbr (substr nbr 1 (1- (strlen nbr)))) ) (progn (setq n (chr (cadr key))) (princ n) (setq nbr (strcat nbr n)) ) ) ) ) ) ) (if (eq (car key) 3) (if (setq ent (nentselp (cadr key))) (progn (setq ent (entget (car ent))) (if (member (cdr (assoc 0 ent)) '("TEXT" "MTEXT" "ATTRIB")) (progn (setq ent (read (cdr (assoc 1 ent)))) (if (or (eq (type ent) 'INT) (eq (type ent) 'REAL)) (progn (princ (strcat "\nZ = " (rtos ent 2 2))) ent) (progn (princ "\nLe texte n'est pas valide!") (nentsel-getreal)) ) ) (progn (princ "\nObjet n'est pas un Texte!") (nentsel-getreal)) ) ) (progn (princ "\nSélection vide!") (setq ent nil) (nentsel-getreal)) ) (if (/= nbr "") (progn (princ (strcat "\nZ = " nbr)) (atof nbr)) (progn (princ (strcat "\nZ = " (rtos (caddr (getvar "LASTPOINT"))2 2))) (caddr (getvar "LASTPOINT"))) ) ) ) (defun c:3dpoly_xy ( / AcDoc Space msg_f msg_n n pt_f lst_pt lst_tmp pt_n nw_pl) (setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object)) Space (if (eq (getvar "CVPORT") 1) (vla-get-PaperSpace AcDoc) (vla-get-ModelSpace AcDoc) ) msg_f "\nSpécifiez l'extrémité de la ligne .XY de, ou [annUler]: " msg_n "\nSpécifiez l'extrémité de la ligne .XY de, ou [Clore/annUler]: " n 0 ) (while (null (setq pt_f (getpoint "\nSpécifiez le point de départ de la polyligne: .XY de "))) (princ "\nPoint incorrect.") ) (setq pt_f (trans pt_f 1 0) lst_pt (list (list (car pt_f) (cadr pt_f) (nentsel-getreal))) lst_tmp lst_pt) (setvar "LASTPOINT" (car lst_pt)) (initget "U ANNUler _Undo UNDO") (while (and (setq pt_n (getpoint (trans pt_f 0 1) (if (< n 2) msg_f msg_n))) (/= pt_n "Close")) (if (listp pt_n) (progn (setq pt_n (trans pt_n 1 0) lst_pt (cons (list (car pt_n) (cadr pt_n) (nentsel-getreal)) lst_pt) lst_tmp lst_pt) (setvar "LASTPOINT" (car lst_pt)) (setq n (1+ n) pt_f pt_n) ) (if (zerop n) (princ "\nTous les segments sont déjà annulés.") (progn (setq lst_pt (cdr lst_pt) lst_tmp lst_pt) (setvar "LASTPOINT" (car lst_pt)) (setq n (1- n) pt_f (getvar "lastpoint")) ) ) ) (if (< n 1) (initget "U ANNUler _Undo UNDO") (initget "U ANNUler Clore _Undo UNDO Close") ) (redraw) (while (cdr lst_tmp) (grdraw (trans (car lst_tmp) 0 1) (trans (cadr lst_tmp) 0 1) 7) (setq lst_tmp (cdr lst_tmp))) ) (redraw) (setq nw_pl (vlax-invoke Space 'Add3DPoly (apply 'append (reverse lst_pt)))) (if (eq pt_n "Close") (vlax-put nw_pl 'Closed 1) ) (princ) )
  20. bonuscad

    mleader

    Puisque tu utilise le lisp, tu as la fonction (strcase) qui te converti ta chaîne en majuscule, quelque soit ton verrouillage capslock... (strcase (getstring T))
  21. Bonjour, Rassure toi ce n'est pas ton bloc qui pose problème, mais bien le code. J'ai du mal à identifier le problème, car sur la version ou j'avais écrit l'original (voir lien en post #6), je n'avais pas ce problème (ça devait être une version 2002) Sur des versions plus récente, j'ai l'impression que c'est l'affectation de (nentsel) à une variable (ici ent) qui pose problème dans une boucle invoquant un (command). Dans l'immédiat je sèche un peu, je pense qu'il va falloir trouver une autre façon de coder. (si j'ai un peu de temps, ce qui n'est pas sur!)
  22. Il sert a utiliser la commande native d'Autocad En effet (très rare d'utilisation) on peut redéfinir une commande qui pourrait faire, soit des actions complémentaires, soit même des actions complétement différentes. Ceci ce fait avec la commande REDEF ou NONDEF (voir l'aide d'Autocad) Donc avec le point tu es toujours sur d'avoir affaire à la vraie commande native. Personnellement, je l'ai fais qu'une fois par programmation pour redéfinir la commande "polylign", qui lorsqu'elle était appelée faisait des lignes spéciale et prédéfinies (marquage au sol routier).
  23. Et oui, il est très spécial ce calque DefPoints C'est comme si tu dessine des points sur ce calque, et bien la variable PDMODE et/ou PDSIZE n'aura aucune incidence sur ces points créés sur ce calque alors que sur les autre calques, ce ne sera pas le cas.
  24. Ca fait partie du fignolage, je te l'ai fait dans cette version qui devrait être plus générique. (accepte des références d'Insertion, Point ou centre de Cercle) J'ai essayé d’accélérer le code, pour ceci j'ai modifié la boucle (repeat en (while de façon à arrêter la boucle dès que la condition est bonne (inutile de parcourir les autres coins de la boite de texte si la solution est déjà trouvée) Pour l'ensemble des textes cela a divisé le temps d’exécution par 2. (vl-load-com) (defun c:justify-text_by_ref ( / js_mod dxf_cod_ref pt_ref l_dxf dxf_cod mod_sel js_text tol n ename ll ur l_box l_just mark count js_bl) (princ "\nSélectionnez le modèle de référence Insertion, Point ou Cercle.") (while (null (setq js_mod (ssget "_+.:E:S" (list '(0 . "INSERT,POINT,CIRCLE") (cons 67 (if (eq (getvar "CVPORT") 1) 1 0)) (cons 410 (if (eq (getvar "CVPORT") 1) (getvar "CTAB") "Model")) ) ) ) ) (princ "\nCe n'est pas un objet modèle valable pour cette fonction!") ) (setq dxf_cod_ref (entget (ssname js_mod 0)) pt_ref (trans (cdr (assoc 10 dxf_cod_ref)) 0 1) l_dxf (cond ((eq (cdr (assoc 0 dxf_cod_ref)) "INSERT") '(0 100 67 410 2 8 6 62 41 42 43 210)) ((eq (cdr (assoc 0 dxf_cod_ref)) "POINT") '(0 100 67 410 2 8 6 62 39 210)) ((eq (cdr (assoc 0 dxf_cod_ref)) "CIRCLE") '(0 100 67 410 2 8 6 62 39 40 210)) ) ) (setq dxf_cod_ref (vl-remove nil (mapcar '(lambda (x) (assoc x dxf_cod_ref)) l_dxf))) (princ "\nChoix du modèle des textes à justifier par rapport au Bloc/Point/Cercle associé.") (while (null (setq js_mod (ssget "_+.:E:S" (list '(0 . "*TEXT") (cons 67 (if (eq (getvar "CVPORT") 1) 1 0)) (cons 410 (if (eq (getvar "CVPORT") 1) (getvar "CTAB") "Model")) ) ) ) ) (princ "\nCe n'est pas un modèle d'objet texte valable pour cette fonction!") ) (setq dxf_cod (entget (ssname js_mod 0))) (setq dxf_cod (vl-remove nil (mapcar '(lambda (x) (assoc x dxf_cod)) '(0 100 67 410 8 6 62 40 7 210)))) (initget "Unique Tout Manuel _Single All Manual") (if (eq (setq mod_sel (getkword "\nMode de sélection filtrée, choix [unique/Tout/Manuel]<Manuel>: ")) "Single") (setq js_text js_mod) (if (eq mod_sel "All") (setq js_text (ssget "_X" dxf_cod)) (setq js_text (ssget dxf_cod)) ) ) (cond (js_text (initget 7) (setq tol (getdist pt_ref "n\Distance de tolérance à la référence: ")) (repeat (setq n (sslength js_text)) (setq ename (vlax-ename->vla-object (ssname js_text (setq n (1- n))))) (vla-GetBoundingBox ename 'll 'ur) (setq ll (safearray-value ll) ur (safearray-value ur) l_box (list ll (list (car ll) (cadr ur) 0.0) ur (list (car ur) (cadr ll) 0.0)) l_just '(12 6 8 14) mark t count 0 ) (while (and mark (< count 4)) (setq js_bl (ssget "_X" (append dxf_cod_ref (list (cons -4 "<AND") (cons -4 ">,>,*") (cons 10 (mapcar '- (car l_box) (list tol tol 0.0))) (cons -4 "<,<,*") (cons 10 (mapcar '+ (car l_box) (list tol tol 0.0))) (cons -4 "AND>") ) ) ) ) (cond (js_bl (vlax-put ename 'Alignment (car l_just)) (vlax-put ename 'TextAlignmentPoint (car l_box)) (setq mark nil) ) (T (setq mark T)) ) (setq l_box (cdr l_box) l_just (cdr l_just) count (1+ count) ) ) ) ) ) (prin1) )
  25. bonuscad

    Boiler Room

    Hey, Je suis tombé par hasard sur ce site, quelqu'un connaît? Si ça peut plaire à certain, tant mieux! (pour ma part je suis un peu loin du monde musical, j'dois être "has been")
×
×
  • 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é