-
Compteur de contenus
146 -
Inscription
-
Dernière visite
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par iowa13
-
[RESOLU] transformer Multiligne en polyligne
iowa13 a répondu à un(e) sujet de iowa13 dans Routines LISP
Il ne serait pas non plus possible de créer une macro qui fait la commande decomposer, puis joindre ce qui vient d’être decomposé.? -
[RESOLU] transformer Multiligne en polyligne
iowa13 a répondu à un(e) sujet de iowa13 dans Routines LISP
Il n'y a pas besoin de faire de sélection sur tout un plan, c'est juste de temps de temps, lors de la création de la multiligne, juste pour pouvoir mettre des rayons à une multiligne que je viens de créer. -
[RESOLU] transformer Multiligne en polyligne
iowa13 a répondu à un(e) sujet de iowa13 dans Routines LISP
Bonjour. oui mais cela fait plus de boulot (partisan du moindre effort), a moins que cela puisse ce faire en lisp ou autre? (j'y connais rien en codage) avant, je faisait la forme, un coupe de "creation" de sommet sur la multiligne et après je faisait mes raccords. merci -
Bonjour. N'ayant pu retrouver le Lisp sur ce forum, je cherche à transformer une multiligne fermé en polyligne (en fait le Lisp ajout des sommets à chaque coin de la multiligne.) A moins que quelqu’un n'ai une façon plus simple de créer des bavettes de fenetre (avec rayon) en coupe. Par avance merci. https://www.noelshack.com/2018-34-3-1534923757-tole.jpg 200x100https://www.noelshack.com/2018-34-3-1534923757-tole.jpg[/img]
-
Bonjour. Je relance le sujet au cas ou quelqu'un aurait une idée. Voici le lisp légèrement modifié ;*** Isolant.LSP ; ;*** adapté à Autocad 14 Français le 16/03/99 par roule.@wanadoo.fr ; ;*** Written by Don J. Buschert (c) 1992, 1997 ; ; courriel: don.buschert@sait.ab.ca ; buschert@spots.ab.ca ; AutoCAD Page: http://www.spots.ab.ca/~buschert/ ; ; Disclaimer: ; Permission to use, copy, modify, and distribute this software ; for any purpose and without fee is hereby granted, provided ; that the above copyright notice appears in all copies and ; that both that copyright notice and the limited warranty and ; restricted rights notice below appear in all supporting ; documentation. ; ; THIS PROGRAM IS PROVIDED "AS IS" AND WITH ALL FAULTS. THE AUTHOR ; SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF MERCHANTABILITY OR ; FITNESS FOR A PARTICULAR USE. THE AUTHOR ALSO DOES NOT WARRANT THAT ; THE OPERATION OF THE PROGRAM WILL BE UNINTERRUPTED OR ERROR FREE. ; ; Version 4.1 01/06/97 ; Added OSNAP controls. ; Version 4.0 08/14/92 ; Initial release... ; ; This program draws a polyline in the shape of insulation. ; The user enters or picks the insulation width; and enters or ; picks the insulation length and angle. ; ;*** Function INSUL ; (princ "\nChargement, attendez s'il vous plait...") (defun C:ISOLANT (/ svbm ;"BLIPMODE" sv_osmode ;"OSMODE" poi1 ;Points which calculate the arcs and lines of the ;first batt. poi2 poi3 poi4 poi5 poi6 poi7 iang ;Angle. idis ;Approximate insulation length iinc ;Increment distance. ;iwid ;Insulation width (global) poic ;Center point of arc. stpt ;Start point of insulation ) (graphscr) (setvar "CMDECHO" 0) (command "_UNDO" "_M") (setq svbm (getvar "BLIPMODE")) (setq sv_osmode (getvar "OSMODE")) (setq stpt (getpoint "\nPoint de départ de l'isolant: ")) (if iwid (setq prom (strcat " <" (rtos iwid) ">")) (setq prom "") ) (setq flag (getdist (strcat "\nEpaisseur de l'isolant" prom ": "))) (if flag (setq iwid flag) ) (setq endp (getpoint stpt "\nPointer ou donner le point d'arrivée: ") ) (setq iang (angle stpt endp)) (setq idis (distance stpt endp)) (setvar "OSMODE" 0) (princ "\nDessin de l'isolant en cours...") (setvar "BLIPMODE" 0) (setvar "TRACEWID" 0) (setq poi1 (polar stpt iang (* iwid 0.1))) (setq iinc (distance poi1 stpt)) (setq poi2 (polar poi1 (+ (dtor 90) iang) (* iwid 0.30))) (setq poi2 (polar poi2 (+ (dtor 180) iang) (* iwid 0.1))) (command "_PLINE" poi1 poi2) (while (< iinc idis) (setq poic (polar poi2 iang (* iwid 0.20))) (setq iinc (+ (distance poic poi2) iinc)) (if (< iinc idis) (progn (setq poi3 (polar poic (+ (dtor 90) iang) (* iwid 0.20))) (setq poi4 (polar poic iang (* iwid 0.2))) (setq iinc (+ (distance poi4 poic) iinc)) (if (< iinc idis) (progn (command "_ARC" "CE" poic "A" "-180") (setq poi5 (polar poi4 (+ (dtor -90) iang) (* iwid 0.6))) (setq poi5 (polar poi5 (+ (dtor 180) iang) (* iwid 0.2))) (command "_Line" poi5) (setq poic (polar poi5 iang (* iwid 0.20))) (setq iinc (+ (* iwid 0.10) iinc)) (if (< iinc idis) (progn (setq poi6 (polar poic (+ (dtor -90) iang) (* iwid 0.20))) (setq poi7 (polar poic iang (* iwid 0.20))) (setq iinc (+ (* iwid 0.20) iinc)) (if (< iinc idis) (progn (command "_ARC" "CE" poic poi7) (setq poi2 (polar poi7 (+ (dtor 90) iang) (* iwid 0.60))) (setq poi2 (polar poi2 (+ (dtor 180) iang) (* iwid 0.2))) (command "_Line" poi2) (setq iinc (- iinc (* iwid 0.10))) ) (command "_ARC" "CE" poic poi6) ) ) ) ) (command "_ARC" "CE" poic "A" "-90") ) ) ) ) (command "") (princ "\nDessin isolant terminé...") (setvar "BLIPMODE" svbm) (setvar "OSMODE" sv_osmode) (princ) ) ; ;*** End of Program ;*** Support Programs ;*** Function DTOR ;Converts degrees to radians, where degr is degrees; returns a ;radian value. ; (defun DTOR (degr) (/ (* degr pi) 180) ) Je voudrais qu'il soit dans l'idéal comme sur cette photo https://www.casimages.com/i/18060811100045436.jpg.html sinon comme celle la. https://www.casimages.com/i/18061503382228759.jpg.html par avance merci
-
Bonjour. Pour pousser le vice, est il possible que lorsque l'on ai plusieurs bloc dans un bloc (ex: plusieurs type de vis dans un bloc dynamique) il affiche le nom de la vis (ex) utilisé .? merci
-
bonjour. Ci joint un code du mème principe, mais il y a le problème des noms des sous entités qui ne sont pas afficher. Comment faire la compil de ce code et l'affichage des sous entités. (defun c:BNameLabel (/ ent entl obj) (cond ((not (setq ent (car (entsel "\nSelect block: "))))) ((not (eq (cdr (assoc 0 (entget ent))) "INSERT")) (princ "\nInvalid object!")) ((setq pt (getpoint "\nSpecify first point: ")) (setq entl (entlast)) (vl-cmdf "_.mleader" "_non" pt "\\") (while (eq (logand 1 (getvar 'CMDACTIVE)) 1) (vl-cmdf "")) (if (not (equal entl (setq entl (entlast)))) (vla-put-textstring (vlax-ename->vla-object entl) (vlax-get-property (setq obj (vlax-ename->vla-object ent)) (if (vlax-property-available-p obj 'EffectiveName) 'EffectiveName 'Name ) ) ) ) ) ) (princ) ) (vl-load-com) (princ)
-
Bonjour. Avec ce lisp, il est possible de créer un rectangle en 3 points, je voudrais savoir s'il est possible de le compléter avec des hachures quitte à avoir une liste de choix pour le type de hachures. Au final, on fait le rectangle et en fonction des hachures choisies tout se fait en 4 clics.... Merci (defun 3p-rec ( dyn / *error* gr1 gr2 lst msg ocs osf osm pt1 pt2 pt3 pt4 pt5 pt6 str tmp vec ) (defun *error* ( msg ) (if (not (wcmatch (strcase msg t) "*break,*cancel*,*exit*")) (princ (strcat "\nError: " msg)) ) (redraw) (princ) ) (if (and (setq pt1 (getpoint "\nSpecify 1st point: ")) (setq pt2 (getpoint "\nSpecify 2nd point: " pt1)) (or dyn (setq pt3 (getpoint "\nSpecify 3rd point: " pt1))) (setq vec (trans (mapcar '- pt2 pt1) 1 0 t) ocs (trans '(0.0 0.0 1.0) 1 0 t) pt4 (trans pt1 1 vec) pt5 (trans pt2 1 vec) ) (if dyn (progn (setq osf (LM:grsnap:snapfunction) osm (getvar 'osmode) msg "\nSpecify 3rd point: " str "" ) (princ msg) (while (progn (setq gr1 (grread t 15 0) gr2 (cadr gr1) gr1 (car gr1) ) (cond ( (or (= 5 gr1) (= 3 gr1)) (redraw) (osf gr2 osm) (setq pt6 (trans gr2 1 vec)) (mapcar '(lambda ( a b ) (grdraw a b 1 1)) (setq lst (list pt1 pt2 (trans (list (car pt6) (cadr pt6) (caddr pt5)) vec 1) (trans (list (car pt6) (cadr pt6) (caddr pt4)) vec 1) ) ) (cons (last lst) lst) ) (= 5 gr1) ) ( (= 2 gr1) (cond ( (= 6 gr2) (if (zerop (logand 16384 (setq osm (setvar 'osmode (boole 6 16384 (getvar 'osmode)))))) (princ "\n<Osnap on>") (princ "\n<Osnap off>") ) (princ msg) ) ( (= 8 gr2) (if (< 0 (strlen str)) (progn (princ "\010\040\010") (setq str (substr str 1 (1- (strlen str)))) ) ) t ) ( (< 32 gr2 127) (setq str (strcat str (princ (chr gr2)))) ) ( (member gr2 '(13 32)) (cond ( (= "" str) nil) ( (setq gr2 (LM:grsnap:parsepoint pt1 str)) (setq osm 16384) nil ) ( (setq tmp (LM:grsnap:snapmode str)) (setq osm tmp str "" ) ) ( (setq str "") (princ (strcat "\n2D / 3D Point Required." msg)) ) ) ) ) ) ) ) ) (if (listp gr2) (setq pt6 (trans (osf gr2 osm) 1 vec)) ) ) (setq pt6 (trans pt3 1 vec)) ) ) (entmake (list '(000 . "LWPOLYLINE") '(100 . "AcDbEntity") '(100 . "AcDbPolyline") '(090 . 4) '(070 . 1) (cons 010 (trans pt1 1 ocs)) (cons 010 (trans pt2 1 ocs)) (cons 010 (trans (list (car pt6) (cadr pt6) (caddr pt5)) vec ocs)) (cons 010 (trans (list (car pt6) (cadr pt6) (caddr pt4)) vec ocs)) (cons 210 ocs) ) ) ) (redraw) (princ) ) ;; Object Snap for grread: Snap Function - Lee Mac ;; Returns: [fun] A function requiring two arguments: ;; p - [lst] UCS Point to be snapped ;; o - [int] Object Snap bit code ;; The returned function returns either the snapped point (displaying an appropriate snap symbol) ;; or the supplied point if the snap failed for the given Object Snap bit code. (defun LM:grsnap:snapfunction ( ) (eval (list 'lambda '( p o / q ) (list 'if '(zerop (logand 16384 o)) (list 'if '(setq q (cdar (vl-sort (vl-remove-if 'null (mapcar (function (lambda ( a / b ) (if (and (= (car a) (logand (car a) o)) (setq b (osnap p (cdr a)))) (list (distance p B) b (car a)) ) ) ) '( (0001 . "_end") (0002 . "_mid") (0004 . "_cen") (0008 . "_nod") (0016 . "_qua") (0032 . "_int") (0064 . "_ins") (0128 . "_per") (0256 . "_tan") (0512 . "_nea") (2048 . "_app") (8192 . "_par") ) ) ) '(lambda ( a b ) (< (car a) (car B))) ) ) ) (list 'LM:grsnap:displaysnap '(car q) (list 'cdr (list 'assoc '(cadr q) (list 'quote (LM:grsnap:snapsymbols (atoi (cond ((getenv "AutoSnapSize")) ("5"))) ) ) ) ) (LM:OLE->ACI (if (= 1 (getvar 'cvport)) (atoi (cond ((getenv "Layout AutoSnap Color")) ("117761"))) (atoi (cond ((getenv "Model AutoSnap Color")) ("104193"))) ) ) ) ) ) '(cond ((car q)) (p)) ) ) ) ;; Object Snap for grread: Display Snap - Lee Mac ;; pnt - [lst] UCS point at which to display the symbol ;; lst - [lst] grvecs vector list ;; col - [int] ACI colour for displayed symbol ;; Returns nil (defun LM:grsnap:displaysnap ( pnt lst col / scl ) (setq scl (/ (getvar 'viewsize) (cadr (getvar 'screensize))) pnt (trans pnt 1 2) ) (grvecs (cons col lst) (list (list scl 0.0 0.0 (car pnt)) (list 0.0 scl 0.0 (cadr pnt)) (list 0.0 0.0 scl 0.0) '(0.0 0.0 0.0 1.0) ) ) ) ;; Object Snap for grread: Snap Symbols - Lee Mac ;; p - [int] Size of snap symbol in pixels ;; Returns: [lst] List of vector lists describing each Object Snap symbol (defun LM:grsnap:snapsymbols ( p / -p -q -r a c i l q r ) (setq -p (- p) q (1+ p) -q (- q) r (+ 2 p) -r (- r) i (/ pi 6.0) a 0.0 ) (repeat 12 (setq l (cons (list (* r (cos a)) (* r (sin a))) l) a (- a i) ) ) (setq c (apply 'append (mapcar 'list (cons (last l) l) l))) (list (list 1 (list -p -p) (list p -p) (list p -p) (list p p) (list p p) (list -p p) (list -p p) (list -p -p) (list -q -q) (list q -q) (list q -q) (list q q) (list q q) (list -q q) (list -q q) (list -q -q) ) (list 2 (list -r -q) (list 0 r) (list 0 r) (list r -q) (list -p -p) (list p -p) (list p -p) (list 0 p) (list 0 p) (list -p -p) (list -q -q) (list q -q) (list q -q) (list 0 q) (list 0 q) (list -q -q) ) (cons 4 c) (vl-list* 8 (list -r -r) (list r r) (list r -r) (list -r r) c) (list 16 (list p 0) (list 0 p) (list 0 p) (list -p 0) (list -p 0) (list 0 -p) (list 0 -p) (list p 0) (list q 0) (list 0 q) (list 0 q) (list -q 0) (list -q 0) (list 0 -q) (list 0 -q) (list q 0) (list r 0) (list 0 r) (list 0 r) (list -r 0) (list -r 0) (list 0 -r) (list 0 -r) (list r 0) ) (list 32 (list r r) (list -r -r) (list r q) (list -q -r) (list q r) (list -r -q) (list -r r) (list r -r) (list -q r) (list r -q) (list -r q) (list q -r) ) (list 64 '( 0 1) (list 0 p) (list 0 p) (list -p p) (list -p p) (list -p -1) (list -p -1) '( 0 -1) '( 0 -1) (list 0 -p) (list 0 -p) (list p -p) (list p -p) (list p 1) (list p 1) '( 0 1) '( 1 2) (list 1 q) (list 1 q) (list -q q) (list -q q) (list -q -2) (list -q -2) '(-1 -2) '(-1 -2) (list -1 -q) (list -1 -q) (list q -q) (list q -q) (list q 2) (list q 2) '( 1 2) ) (list 128 (list (1+ -p) 0) '(0 0) '(0 0) (list 0 (1+ -p)) (list (1+ -p) 1) '(1 1) '(1 1) (list 1 (1+ -p)) (list -p q) (list -p -p) (list -p -p) (list q -p) (list -q q) (list -q -q) (list -q -q) (list q -q) ) (vl-list* 256 (list -r r) (list r r) (list -r (1+ r)) (list r (1+ r)) c) (list 512 (list -p -p) (list p -p) (list -p p) (list p p) (list -q -q) (list q -q) (list q -q) (list -q q) (list -q q) (list q q) (list q q) (list -q -q) ) (list 2048 (list -p -p) (list p p) (list -p p) (list p -p) (list (+ p 05) -p) (list (+ p 06) -p) (list (+ p 05) -q) (list (+ p 06) -q) (list (+ p 09) -p) (list (+ p 10) -p) (list (+ p 09) -q) (list (+ p 10) -q) (list (+ p 13) -p) (list (+ p 14) -p) (list (+ p 13) -q) (list (+ p 14) -q) (list -p -p) (list p -p) (list p -p) (list p p) (list p p) (list -p p) (list -p p) (list -p -p) (list -q -q) (list q -q) (list q -q) (list q q) (list q q) (list -q q) (list -q q) (list -q -q) ) (list 8192 (list r 1) (list -r -q) (list r 0) (list -r -r) (list r q) (list -r -1) (list r r) (list -r 0)) ) ) ;; Object Snap for grread: Parse Point - Lee Mac ;; bpt - [lst] Basepoint for relative point input, e.g. @5,5 ;; str - [str] String representing point input ;; Returns: [lst] Point represented by the given string, else nil (defun LM:grsnap:parsepoint ( bpt str / str->lst lst ) (defun str->lst ( str / pos ) (if (setq pos (vl-string-position 44 str)) (cons (substr str 1 pos) (str->lst (substr str (+ pos 2)))) (list str) ) ) (if (wcmatch str "`@*") (setq str (substr str 2)) (setq bpt '(0.0 0.0 0.0)) ) (if (and (setq lst (mapcar 'distof (str->lst str))) (vl-every 'numberp lst) (< 1 (length lst) 4) ) (mapcar '+ bpt lst) ) ) ;; Object Snap for grread: Snap Mode - Lee Mac ;; str - [str] Object Snap modifier ;; Returns: [int] Object Snap bit code for the given modifier, else nil (defun LM:grsnap:snapmode ( str ) (vl-some (function (lambda ( x ) (if (wcmatch (car x) (strcat (strcase str t) "*")) (progn (princ (cadr x)) (caddr x) ) ) ) ) '( ("endpoint" " of " 00001) ("midpoint" " of " 00002) ("center" " of " 00004) ("node" " of " 00008) ("quadrant" " of " 00016) ("intersection" " of " 00032) ("insert" " of " 00064) ("perpendicular" " to " 00128) ("tangent" " to " 00256) ("nearest" " to " 00512) ("appint" " of " 02048) ("parallel" " to " 08192) ("none" "" 16384) ) ) ) ;; OLE -> ACI - Lee Mac ;; Args: c - [int] OLE Colour (defun LM:OLE->ACI ( c ) (apply 'LM:RGB->ACI (LM:OLE->RGB c)) ) ;; OLE -> RGB - Lee Mac ;; Args: c - [int] OLE Colour (defun LM:OLE->RGB ( c ) (mapcar '(lambda ( x ) (lsh (lsh (fix c) x) -24)) '(24 16 8)) ) ;; RGB -> ACI - Lee Mac ;; Args: r,g,b - [int] Red, Green, Blue values (defun LM:RGB->ACI ( r g b / c o ) (if (setq o (vla-getinterfaceobject (LM:acapp) (strcat "autocad.accmcolor." (substr (getvar 'acadver) 1 2)))) (progn (setq c (vl-catch-all-apply '(lambda ( ) (vla-setrgb o r g B) (vla-get-colorindex o)))) (vlax-release-object o) (if (vl-catch-all-error-p c) (prompt (strcat "\nError: " (vl-catch-all-error-message c))) c ) ) ) ) ;; Application Object - Lee Mac ;; Returns the VLA Application Object (defun LM:acapp nil (eval (list 'defun 'LM:acapp 'nil (vlax-get-acad-object))) (LM:acapp) ) ;;----------------------------------------------------------------------;; (vl-load-com) (princ (strcat "\n:: 3P-Rec.lsp | Version 1.0 | \\U+00A9 Lee Mac " (menucmd "m=$(edtime,0,yyyy)") " www.lee-mac.com ::" "\n:: \"3PR\" - Standard | \"3PRD\" - Dynamic ::" ) ) (princ)
-
Bonjour. Il y a quelques temps, j'avais déjà fait cette demande à cette adresse : http://cadxp.com/topic/15191-afficher-le-nom-du-bloc/page__p__79377__hl__iowa13__fromsearch__1#entry79377 mais la réponse n'est plus accessible. Quelqu'un pourrais m'aider.? par avance merci EDIT: j'ai trouvé un autre lisp qu ime convient http://cadxp.com/topic/41881-ligne-de-repere-et-attribut/ ps, je ne vois pas le bouton résolu ps2: merci pour l'info résolu
-
Bonjour. Comment faire pour ouvrir un fichier d'advance steel 2016 avec un autocad simple?. Faut il exporter le fichier.? Merci
-
Merci pour ces infos. J'ai mis les cotes dans la palette, mais est il possible de faire apparaitre le contenu de l'onglet dans une barre d'outil.? *C'est bon,j'ai mis les cotes dans une palette.
-
Ok. Merci
-
La réponse du post 4 est l'inverse de ce que je voudrais faire (ou je ne sais pas faire ) Je voudrais sélectionner la cote du dessin pour quelle devienne la référence et pas l'inverse.
-
Il me semble que le soucis vient quand je change d'espace de travail.... Je vais m'adapter à un espace qui fonctionne alors. Merci.. Et pour la seconde question, existe t'il une commande qui comme l'action "rendre le calque de l'objet courant" s'applique pour les cotations. Je clique sur un cotation d'un dessin et "hop" cela devient comme cotation courante .
-
Peut etre est ce un soucis de bandeau.... Pour le RENDCALQUECOUR, oui mais je voudrais "RENDCOTECOUR" si ca existe..
-
Bonjour. existe t il une variable ou autre qui permet que lorsque l'on appui sur la touche de la première lettre du calque que l'on veut choisir, il est sélectionné. exemple (si je ne suis pas assez clair) Je clique sur ma liste déroulante des calques, je tape la lettre "m" et hop, le premier calque qui commence par un "m" se surligne. Cela fonctionne dans le gestionnaire des propriété de calque mais pas dans le bandeau calque... question subsidiaire..... Existe t il un script qui permet de faire comme "rendre le calque courant" mais pour les cotations. C'est à dire pouvoir prendre un type de cotation en référence (le type de cotation dans son calque...) bien à vous.
-
Personne n'aurait une idée.?
-
Bonjour. J'ai trouvé un lisp pour de l'isolation que j'ai légèrement modifié pour un aspect pur estéthique. Je voudrais "juste" que le départ ai le meme aspect que l'arrivé. N'ayant aucune connaissance, je vous demande donc de l'aide. ;*** Isolant.LSP ; ;*** adapté à Autocad 14 Français le 16/03/99 par roule.@wanadoo.fr ; ;*** Written by Don J. Buschert (c) 1992, 1997 ; ; courriel: don.buschert@sait.ab.ca ; buschert@spots.ab.ca ; AutoCAD Page: http://www.spots.ab.ca/~buschert/ ; ; Disclaimer: ; Permission to use, copy, modify, and distribute this software ; for any purpose and without fee is hereby granted, provided ; that the above copyright notice appears in all copies and ; that both that copyright notice and the limited warranty and ; restricted rights notice below appear in all supporting ; documentation. ; ; THIS PROGRAM IS PROVIDED "AS IS" AND WITH ALL FAULTS. THE AUTHOR ; SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF MERCHANTABILITY OR ; FITNESS FOR A PARTICULAR USE. THE AUTHOR ALSO DOES NOT WARRANT THAT ; THE OPERATION OF THE PROGRAM WILL BE UNINTERRUPTED OR ERROR FREE. ; ; Version 4.1 01/06/97 ; Added OSNAP controls. ; Version 4.0 08/14/92 ; Initial release... ; ; This program draws a polyline in the shape of insulation. ; The user enters or picks the insulation width; and enters or ; picks the insulation length and angle. ; ;*** Function INSUL ; (princ "\nChargement, attendez s'il vous plait...") (defun C:ISOLANT (/ svbm ;"BLIPMODE" sv_osmode ;"OSMODE" poi1 ;Points which calculate the arcs and lines of the ;first batt. poi2 poi3 poi4 poi5 poi6 poi7 iang ;Angle. idis ;Approximate insulation length iinc ;Increment distance. ;iwid ;Insulation width (global) poic ;Center point of arc. stpt ;Start point of insulation ) (graphscr) (setvar "CMDECHO" 0) (command "_UNDO" "_M") (setq svbm (getvar "BLIPMODE")) (setq sv_osmode (getvar "OSMODE")) (setq stpt (getpoint "\nPoint de départ de l'isolant: ")) (if iwid (setq prom (strcat " <" (rtos iwid) ">")) (setq prom "") ) (setq flag (getdist (strcat "\nEpaisseur de l'isolant" prom ": "))) (if flag (setq iwid flag) ) (setq endp (getpoint stpt "\nPointer ou donner le point d'arrivée: ") ) (setq iang (angle stpt endp)) (setq idis (distance stpt endp)) (setvar "OSMODE" 0) (princ "\nDessin de l'isolant en cours...") (setvar "BLIPMODE" 0) (setvar "TRACEWID" 0) (setq poi1 (polar stpt iang (* iwid 0.00))) (setq iinc (distance poi1 stpt)) (setq poi2 (polar poi1 (+ (dtor 90) iang) (* iwid 0.30))) (setq poi2 (polar poi2 (+ (dtor 180) iang) (* iwid 0.10))) (command "_PLINE" poi1 poi2) (while (< iinc idis) (setq poic (polar poi2 iang (* iwid 0.20))) (setq iinc (+ (distance poic poi2) iinc)) (if (< iinc idis) (progn (setq poi3 (polar poic (+ (dtor 90) iang) (* iwid 0.20))) (setq poi4 (polar poic iang (* iwid 0.10))) (setq iinc (+ (distance poi4 poic) iinc)) (if (< iinc idis) (progn (command "_ARC" "CE" poic "A" "-180") (setq poi5 (polar poi4 (+ (dtor -90) iang) (* iwid 0.60))) (setq poi5 (polar poi5 (+ (dtor 180) iang) (* iwid 0.10))) (command "_Line" poi5) (setq poic (polar poi5 iang (* iwid 0.20))) (setq iinc (+ (* iwid 0.10) iinc)) (if (< iinc idis) (progn (setq poi6 (polar poic (+ (dtor -90) iang) (* iwid 0.20))) (setq poi7 (polar poic iang (* iwid 0.10))) (setq iinc (+ (* iwid 0.20) iinc)) (if (< iinc idis) (progn (command "_ARC" "CE" poic poi7) (setq poi2 (polar poi7 (+ (dtor 90) iang) (* iwid 0.60))) (setq poi2 (polar poi2 (+ (dtor 180) iang) (* iwid 0.10))) (command "_Line" poi2) (setq iinc (- iinc (* iwid 0.20))) ) (command "_ARC" "CE" poic poi6) ) ) ) ) (command "_ARC" "CE" poic "A" "-90") ) ) ) ) (command "") (princ "\nDessin isolant terminé...") (setvar "BLIPMODE" svbm) (setvar "OSMODE" sv_osmode) (princ) ) ; ;*** End of Program ;*** Support Programs ;*** Function DTOR ;Converts degrees to radians, where degr is degrees; returns a ;radian value. ; (defun DTOR (degr) (/ (* degr pi) 180) ) par avance merci
-
Merci pour vos réponses. je vais utiliser la version polyligne.
-
Merci pour les réponses. Pour le lisp, il faudrait (mais je ne sais pas si c'est faisable) à chaque changement de direction (apres avoir cliqué), que l'on ai un rayon qui s'affiche en fonction de l'angle ou on veut continuer (et non un angle vif comme actuellement), puis des hachures pleines et la ligne fermé à la fin ce serait bien Le soucis avec la polylign est que ce n'est qu' "un trait epais" . Je ne peux pas m'accrocher sur l'epaisseur du trait. mais bon un dessin vous aidera je pense. merci
-
Bonjour. J'utilise pour le moment la commande multiligne avec debut et fin fermé puis j'y apporte des hachures pour faire un "effet" bandes d'etanchéité. Je voudrais savoir s'il existe un lisp qui pourrait faire la bande (dans le meme principe que la multiligne)mais avec des rayons de courbure lorsqu'on change de direction, et le remplir de hachures pleine bien perpendiculaire au double ligne. merci d'avance
-
Merci tout plein. nikel sujet clos pour moi.
-
Bonjour. J'utilise actuellement la commande droite pour faire des lignes de repere. et j'aurai aimé savoir s'il existait un lisp pour supprimer d'un clic toute les droites (de la commande droite) Par avance merci
-
c'est absolument génial merci sujet clos pour moi
-
justement, c'est un mélange des 2. le principe des lignes de repères qui permet de mettre le repère la ou on veut, et la "puissance" du lisp pour donner le nom du bloc pour la ligne de repère, on clique la ou on veut et on écrit le nom du bloc ou autre chose. pour le lisp, on clique sur le nom du bloc et il nous place le repère sur l'origine du bloc (et on a pas le choix de l'emplacement. je voudrais un mélange des 2 on clic sur le bloc la ou on veut et il nous ecrit le nom du bloc....
