Aller au contenu

lecrabe

Moderateurs
  • Compteur de contenus

    10 663
  • Inscription

  • Dernière visite

  • Jours gagnés

    101

Tout ce qui a été posté par lecrabe

  1. lecrabe

    Lignes vers points topo

    Hello Mais c DEBILE ces Lignes 2D dont la Longueur = 5 cm Le vrai Point, c au Depart ou a la Fin de la Ligne ? Si tu traces une Ligne du Point de depart de la ligne au Point d insertion du MTEXT, est ce TOUJOURS la MEME longueur et le MEME angle ? -- En theorie comme le dis SI BIEN Vincent, "LGZEROTOPOINT" devrait convenir !? Bye, lecrabe
  2. Hello Si c un projet Revit 2024, il FAUT un Revit 2024 ! Aucune solution "descendante" ! RAPPEL : un Revit 20XX ne peut pas enregistrer sous une version PRECEDENTE !! Belle annee 2024, La Sante, Bye, lecrabe
  3. Hello DEJA je ne sais pas verrouiller une simple fenetre espace Objet ! DONC c IDEM pour 2/3/4 fenetres ... Mais le Vieux Decapode est pret a apprendre !? Bye, lecrabe PS: dans les Presentations / Layouts, tu peux mettre une Fenetre FMULT en mode "Full Screen" et avoir cette Fenetre VERROUILLEE donc ca devrait te convenir !?
  4. lecrabe

    Carroyage

    Hello Et voici la routine "DIM-GRID" de Bruno ( @bonuscad ) ... SVP tu nous signales si c OK sur ton AutoCAD LT 2024 et si cela te convient !? Bye, lecrabe ;; ;; https://cadxp.com/topic/49297-un-carroyage/page__pid__295829#entry295829 ;; ;; Routine: DIM-GRID par Bonuscad ;; ;; Dessin de carroyage Lambert ;; ;; ;; ---- Demande: SVP comment ajouter les Echelles a TA Liste : 150 , 400 , 1500 , 4000 , 15000 ;; ;; A la ligne 54 ou tu as: ;; l_scale '(1.0 1.25 2.0 2.5 5.0 7.5) ;; tu la passes a: ;; l_scale '(1.0 1.25 1.5 2.0 2.5 4.0 5.0 7.5) ;; ;; C'est la liste unitaire des échelles, donc quand tu parle de 15000, c'est la même que 150 (ou 15 ou 1.5) ;; En appuyant sur "+", dès que tu arrives à la fin de la liste (un multiple de 7.5) , ;; tu retournes au début de la liste en incrémentant avec un facteur de 10 et avec "-" avec un facteur de 0.1 ;; Le code propose une échelle qui est calculée en conséquence d'un A4 suivant ton hauteur de vue actuelle (variable "VIEWSIZE"), ;; donc : CONSEIL, ne pas trop s'écarter de l'échelle proposée au départ sous peine d'avoir un quadrillage très serré ;; ou à l'inverse non visible car trop écarté. Passer par exemple de 7500000 à 7500 va donner un quadrillage très serré. ;; Le mieux est de lancer la routine lorsque la partie que tu désires quadriller et visible entièrement à l'écran ;; et de rester dans l'ordre de grandeur proposé 10, 100, 1000, 10000 etc ... ;; (vl-load-com) (defun des_vec (lst col / lst_sg) (setq lst_sg (list (cadr lst) (car lst))) (setq lst (cdr lst)) (while lst (if (cadr lst) (setq lst_sg (cons (cadr lst) (cons (car lst) lst_sg))) (setq lst_sg (cons (last lst_sg) (cons (car lst) lst_sg))) ) (setq lst (cdr lst)) ) (setq lst_sg (cons col lst_sg)) (grvecs lst_sg) ) (defun l-coor2l-pt (lst flag / ) (if lst (cons (list (car lst) (cadr lst) (if flag (caddr lst) 0.0)) (l-coor2l-pt (if flag (cdddr lst) (cddr lst)) flag) ) ) ) (defun c:DIM-GRID ( / unit_draw AcDoc Space UCS save_ucs WCS dx_u hview old_snapang pt_ins dx dy pt_tmp ang l_scale format_scale coeff key pt_key s_ang nw_style f_pat nw_pl ech htx nw_pl_out nw_pl_in hatch_out hatch lst_pt str ori_txt nw_txt) (if (or (eq (getvar "USERS5") "") (not (eq (substr (getvar "USERS5") 1 2) "qz"))) (setvar "USERS5" (strcat "qz" (itoa (setq unit_draw 1000)))) (setq unit_draw (atoi (substr (getvar "USERS5") 3))) ) (setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object))) (vla-StartUndoMark AcDoc) (setq Space (if (eq (getvar "CVPORT") 1) (vla-get-PaperSpace AcDoc) (vla-get-ModelSpace AcDoc) ) UCS (vla-get-UserCoordinateSystems AcDoc) save_ucs (vla-add UCS (vlax-3d-point '(0.0 0.0 0.0)) (vlax-3d-point (getvar "UCSXDIR")) (vlax-3d-point (getvar "UCSYDIR")) "CURRENT_UCS" ) ) (vla-put-Origin save_ucs (vlax-3d-point (getvar "UCSORG"))) (setq WCS (vla-add UCS (vlax-3d-Point '(0.0 0.0 0.0)) (vlax-3d-Point '(1.0 0.0 0.0)) (vlax-3d-Point '(0.0 1.0 0.0)) "TEMP_WCS")) (vla-put-activeUCS AcDoc WCS) (if (not dx_u) (setq dx_u 210.0)) (setq hview (getvar "VIEWSIZE") old_snapang (getvar "SNAPANG") pt_ins (list (- (car (getvar "VIEWCTR")) (* hview 0.5)) (- (cadr (getvar "VIEWCTR")) (* hview 0.5))) dx dx_u dy (* dx_u (sqrt 2)) pt_tmp pt_ins ang (getvar "SNAPANG") ;; l_scale '(1.0 1.25 2.0 2.5 5.0 7.5) l_scale '(1.0 1.25 1.5 2.0 2.5 4.0 5.0 7.5) ;; Echelles supplementaires format_scale (car l_scale) coeff 1.0 ) (if (> (fix (/ hview dy)) 3) (while (> (fix (/ hview dy)) 3) (foreach value l_scale (if (> (fix (/ hview dy)) 3) (setq format_scale value dx (* dx_u format_scale) dy (* dx_u (sqrt 2) format_scale)) ) ) (if (> (fix (/ hview dy)) 3) (setq coeff (* coeff 10.0) l_scale (mapcar '(lambda (x) (* x coeff)) l_scale) format_scale (car l_scale) ) ) ) ) (if (< (fix (/ hview dy)) 1) (while (< (fix (/ hview dy)) 1) (foreach value (reverse l_scale) (if (< (fix (/ hview dy)) 1) (setq format_scale value dx (* dx_u format_scale) dy (* dx_u (sqrt 2) format_scale)) ) ) (if (< (fix (/ hview dy)) 1) (setq coeff (* coeff 0.1) l_scale (mapcar '(lambda (x) (* x coeff)) l_scale) format_scale (last l_scale) ) ) ) ) (princ (strcat "\nSpecify up rigth corner or: [P] for new Position of down left corner,[R] for make Rotate, [+/-] change scale <" (rtos (* unit_draw format_scale) 2 3) ">: ")) (while (and (setq key (grread T 4 0)) (/= (car key) 3)) (cond ((eq (car key) 5) (setq pt_key (cadr key)) (redraw) (setq dx (+ (* (- (car pt_key) (car pt_ins)) (cos ang)) (* (- (cadr pt_key) (cadr pt_ins)) (sin ang))) dy (- (* (- (cadr pt_key) (cadr pt_ins)) (cos ang)) (* (- (car pt_key) (car pt_ins)) (sin ang))) ) (des_vec (list (list (car pt_ins) (cadr pt_ins)) (list (+ (car pt_ins) (* dx (cos ang))) (+ (cadr pt_ins) (* dx (sin ang)))) (setvar "LASTPOINT" (list (+ (car pt_ins) (- (* dx (cos ang)) (* dy (sin ang)))) (+ (cadr pt_ins) (+ (* dy (cos ang)) (* dx (sin ang)))) ) ) (list (- (car pt_ins) (* dy (sin ang))) (+ (cadr pt_ins) (* dy (cos ang)))) ) 3 ) ) ((or (eq (cadr key) 114) (eq (cadr key) 82)) (initget 0) (setq s_ang (getorient pt_ins (strcat "\nNew angle<" (angtos (getvar "SNAPANG")) ">: " ) ) ) (if (not s_ang) (setq s_ang ang)) (if (and (> s_ang (/ pi 2)) (<= s_ang (/ (* 3 pi) 2))) (setq ang (+ s_ang pi)) (setq ang s_ang) ) (setvar "SNAPANG" ang) (princ (strcat "\nSpecify up rigth corner or: [P] for new Position of down left corner,[R] for make Rotate, [+/-] change scale <" (rtos (* unit_draw format_scale) 2 3) ">: ")) ) ((or (eq (cadr key) 112) (eq (cadr key) 80)) (initget 9) (setq pt_ins (getpoint "\nSpecify down left corner: ")) (setq pt_ins (list (car pt_ins) (cadr pt_ins))) (princ (strcat "\nSpecify up rigth corner or: [P] for new Position of down left corner,[R] for make Rotate, [+/-] change scale <" (rtos (* unit_draw format_scale) 2 3) ">: ")) ) ((eq (cadr key) 43) (setq format_scale (cadr (member format_scale l_scale))) (if (not format_scale) (setq format_scale (car (setq l_scale (mapcar '(lambda (x) (* x 10.0)) l_scale))))) (setq dx (* dx_u format_scale) dy (* dx_u (sqrt 2) format_scale)) (princ (strcat "\nSpecify up rigth corner or: [P] for new Position of down left corner,[R] for make Rotate, [+/-] change scale <" (rtos (* unit_draw format_scale) 2 3) ">: ")) ) ((eq (cadr key) 45) (setq format_scale (cadr (member format_scale (reverse l_scale)))) (if (not format_scale) (setq format_scale (last (setq l_scale (mapcar '(lambda (x) (* x 0.1)) l_scale))))) (setq dx (* dx_u format_scale) dy (* dx_u (sqrt 2) format_scale)) (princ (strcat "\nSpecify up rigth corner or: [P] for new Position of down left corner,[R] for make Rotate, [+/-] change scale <" (rtos (* unit_draw format_scale) 2 3) ">: ")) ) ) ) (princ "\n") (redraw) (if (not (tblsearch "STYLE" "$DIM-GRID")) (progn (setq nw_style (vla-add (vla-get-textstyles AcDoc) "$DIM-GRID")) (mapcar '(lambda (pr val) (vlax-put nw_style pr val) ) (list 'FontFile 'Height 'ObliqueAngle 'Width 'TextGenerationFlag) (list "SIMPLEX.SHX" 0.0 0.0 1.0 0.0) ) ) ) (if (not (tblsearch "LAYER" "DIM-GRID")) (vlax-put (vla-add (vla-get-layers AcDoc) "DIM-GRID") 'color 7) ) (if (not (findfile "QUADISO.pat")) (progn (setq f_pat (open (strcat (getvar "ROAMABLEROOTPREFIX") "support\\QUADISO.pat") "w")) (write-line "*QUADISO,Quadrillage lambert" f_pat) (write-line "0, -.015,0, 0,1, .03,-.97" f_pat) (write-line "90, 0,-.015, 0,1, .03,-.97" f_pat) (close f_pat) ) ) (if (not (findfile "REPQUADISO.pat")) (progn (setq f_pat (open (strcat (getvar "ROAMABLEROOTPREFIX") "support\\REPQUADISO.pat") "w")) (write-line "*REPQUADISO,Repere du quadrillage lambert" f_pat) (write-line "0, 0,0, 0,1" f_pat) (write-line "90, 0,0, 0,1" f_pat) (close f_pat) ) ) (setq nw_pl (vlax-invoke Space 'AddLightWeightPolyline (append pt_ins (polar pt_ins (+ (getvar "SNAPANG") (* pi 0.5)) (* (distance pt_ins (getvar "LASTPOINT")) (sin (- (angle pt_ins (getvar "LASTPOINT")) (getvar "SNAPANG"))))) (list (car (getvar "LASTPOINT")) (cadr (getvar "LASTPOINT"))) (polar pt_ins (getvar "SNAPANG") (* (distance pt_ins (getvar "LASTPOINT")) (cos (- (angle pt_ins (getvar "LASTPOINT")) (getvar "SNAPANG"))))) ) ) ech (* unit_draw format_scale) htx (/ ech 500.0) ) (vla-put-Closed nw_pl 1) (vla-put-layer nw_pl "DIM-GRID") (vla-Offset nw_pl (* htx 2.5)) (setq nw_pl_out (vlax-ename->vla-object (entlast))) (vla-Offset nw_pl (+ (* htx 2.5) (* htx 10.0))) (setq nw_pl_in (vlax-ename->vla-object (entlast))) (setvar "HPORIGINMODE" 0) (setvar "HPORIGIN" '(0.0 0.0)) (setq hatch_out (vla-AddHatch Space acHatchPatternTypeCustomDefined "REPQUADISO" :vlax-True)) (vlax-invoke hatch_out 'AppendOuterLoop (list nw_pl)) (vlax-invoke hatch_out 'AppendInnerLoop (list nw_pl_out)) (vla-put-patternscale hatch_out (/ ech 10.0)) (vla-put-patternangle hatch_out 0.0) (vla-put-layer hatch_out "DIM-GRID") (vla-evaluate hatch_out) (setq hatch (vla-AddHatch Space acHatchPatternTypeCustomDefined "QUADISO" :vlax-True)) (vlax-invoke hatch 'AppendOuterLoop (list nw_pl_in)) (vla-put-patternscale hatch (/ ech 10.0)) (vla-put-patternangle hatch 0.0) (vla-put-layer hatch "DIM-GRID") (vla-evaluate hatch) (setq lst_pt (l-coor2l-pt (vlax-invoke hatch_out 'IntersectWith nw_pl_out acExtendThisEntity ) T ) ) (foreach el lst_pt (cond ((or (equal (rem (car el) (/ ech 10.0)) (/ ech 10.0) 1E-8) (equal (rem (car el) (/ ech 10.0)) 0.0 1E-8)) (setq str (strcat " " (rtos (car el) 2 0) " ") ori_txt (* pi 0.5)) ) ((or (equal (rem (cadr el) (/ ech 10.0)) (/ ech 10.0) 1E-8) (equal (rem (cadr el) (/ ech 10.0)) 0.0 1E-8)) (setq str (strcat " " (rtos (cadr el) 2 0) " ") ori_txt 0.0) ) (T (setq str nil ori_txt nil)) ) (cond ((and el str ori_txt) (setq nw_txt (vla-AddText Space str (vlax-3d-point el) htx)) (vla-put-layer nw_txt "DIM-GRID") (vla-put-StyleName nw_txt "$DIM-GRID") (vla-put-Alignment nw_txt acAlignmentMiddleLeft) (vla-put-Rotation nw_txt ori_txt) (vla-put-TextAlignmentPoint nw_txt (vlax-3d-point el)) (if (vlax-invoke nw_pl 'IntersectWith nw_txt acExtendThisEntity) (vla-put-Alignment nw_txt acAlignmentMiddleRight) ) ) ) ) (setq pt_ins (polar pt_ins (+ (* pi 0.25) (getvar "SNAPANG")) (* htx 10))) (setq nw_txt (vla-AddText Space (strcat " Echelle 1/" (rtos ech 2 0)) (vlax-3d-point pt_ins) (* 2 htx))) (vla-put-layer nw_txt "DIM-GRID") (vla-put-StyleName nw_txt "$DIM-GRID") (vla-put-Alignment nw_txt acAlignmentMiddleLeft) (vla-put-Rotation nw_txt (getvar "SNAPANG")) (vla-put-TextAlignmentPoint nw_txt (vlax-3d-point pt_ins)) (and save_ucs (vla-put-activeUCS AcDoc save_ucs)) (and WCS (vla-delete WCS) (setq WCS nil)) (vla-EndUndoMark AcDoc) (setvar "SNAPANG" old_snapang) (prin1) )
  5. lecrabe

    Carroyage

    Hello Tu peux utiliser ce qui est fourni avec AutoCAD CIVIL sur ton AutoCAD, ACAD MAP, ACAD Archi, etc ... Routine Lisp : C3D_CARROY Et il faudra ajouter la Police "C3D.shx" dans tes Fonts/Polices AutoCAD ... SVP tu nous signales si c OK sur ton AutoCAD LT 2024 et si cela te convient !? Bruno ( @bonuscad ) a aussi developpe un excellent Lisp qui fait un joli Carroyage mais je ne l ai pas sous la main a l instant T ! Belle Annee 2024, La Sante, Bye, lecrabe C3D_CARROY___SHX.zip
  6. Hello Je suis venal : cela te coutera un excellent Whisky single malt ! Bye, lecrabe
  7. Hello SVP tu testes cette jolie routine "OffIn / OffOut" de Kent Cooper ... Et tu nous signales si c OK !? Belle annee 2024, La Sante, Bye, lecrabe ;; ;; https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/td-p/7835213 ;; ;| OffsetInOrOut.lsp [command names: OffIn & OffOut] To Offset selected objects all by same User-specified distance, all either Inward or Outward, regardless of drawn direction. OffIn = Offset Inward; OffOut = Offset Outward. Works on Arcs/Circles/Ellipses/planar Splines/LW or "heavy" 2D Polylines. [cannot Offset 3D Polylines or non-planar Splines]. Polylines/Splines/ Ellipses can be open/partial or closed/full. Offsets in direction that results in entity of [in OffIn] smaller or [in OffOut] larger area than original. In OffIn, detects objects too small to be Offset Inward by specified distance, and reports how many there were. Can have unintended result with Polyline/Spline if self-intersecting or of other shape that results in more than one new entity when Offset. Works in any UCS. Remembers User's distance independent of regular Offset's, and offers as default on subsequent use; on first use, offers regular Offset's if not Through. Kent Cooper, 1 August 2018 |; (defun OIO ; = Offset object(s) Inward or Outward [called by OffIn & OffOut] (subpr / *error* doc ss nogo n ent obj oarea) (defun *error* (errmsg) (if (not (wcmatch errmsg "Function cancelled,quit / exit abort,console break")) (princ (strcat "\nError: " errmsg)) ); if (vla-endundomark doc) (princ) ); defun - *error* (vla-startundomark (setq doc (vla-get-activedocument (vlax-get-acad-object)))) (initget (if (and (not *OIOdist) (= (getvar 'offsetdist) -1.0)) 7 6)) ; no Enter if no prior value and regular Offset is Through; no zero; no negative (setq *OIOdist ; global, to offer as default on subsequent use (cond ( (getdist ; User input (strcat "\nDistance to Offset " subpr "ward" (cond (*OIOdist (strcat " <" (rtos *OIOdist) ">")); prior OIO value ((/= (getvar 'offsetdist) -1.0) (strcat " <" (rtos (getvar 'offsetdist)) ">")) ; regular Offset's distance if not Through (""); no default if neither above condition ); cond ": " ); strcat ); getdist ); User-input condition (*OIOdist); User Enter with prior OIO value ((/= (getvar 'offsetdist) -1.0) (getvar 'offsetdist)) ; User Enter with no OIO value but regular Offset not Through ); cond nogo 0 ); setq (prompt (strcat "\nTo Offset object(s) " subpr "ward by same distance,")) (if (setq ss (ssget ":L" '((0 . "*POLYLINE,ARC,CIRCLE,ELLIPSE,SPLINE")))); level1 (progn ; then (setq nogo 0) (repeat (setq n (sslength ss)); level1 then (if ; level2 (and (not (member '(100 . "AcDb3dPolyline"); can't Offset 3DPolyline (entget (setq ent (ssname ss (setq n (1- n))))) ); member ); not (vlax-curve-isPlanar ent); nor non-planar [Spline only] ); and (progn ; level2 then -- proceed (setq obj (vlax-ename->vla-object ent) oarea (vla-get-Area obj) ); setq (if ; level3 (not ; Offset succeeded [returns T if so, because:] (vl-catch-all-error-p ; returns T for error if inward but too small (vl-catch-all-apply 'vla-offset (list obj *OIOdist)) ); -error-p ); not (if ; level4 is level3 then -- check comparative areas: ((if (= subpr "In") > <) (vla-get-Area (vlax-ename->vla-object (entlast))) oarea) (progn ; level4 then -- went wrong way (entdel (entlast)) (if ; level5 -- go the other way [if possible] (vl-catch-all-error-p ; returns T for error if inward but too small (vl-catch-all-apply 'vla-offset (list obj (- *OIOdist))) ); -error-p (setq nogo (1+ nogo)); then -- add to count of too-small [no else] ); if level5 ); progn ); if level4 [went wrong way -- no else; do nothing if it went right way] (if (= subpr "Out") (vla-offset obj (- *OIOdist)) (setq nogo (1+ nogo))) ; level3 else -- too small for inward; go other way only if OffOut ; if OffIn, add to count of too-small ); if level3 [Offset succeeded] ); progn [then] ); if level2 [valid object -- no else; can't Offset otherwise] ); repeat (if (> nogo 0) (prompt (strcat "\n" (itoa nogo) " objects too small to be Offset Inward. ")); then ); if ); progn -- then ); if level1 [unlocked object(s) selected] (vla-endundomark doc) (princ) ); defun -- C:OIO (defun C:OffIn (/ *error*) (OIO "In") ); defun -- C:OffIn (defun C:OffOut (/ *error*) (OIO "Out") ); defun -- C:OffIn (vl-load-com) (prompt "\nType OffIn to Offset object(s) Inward, OffOut to Offset object(s) Outward. ")
  8. Hello Depuis la version 2019 quand tu achetes / loues une nouvelle version AutoCAD (AutoCAD ToolSet) tu disposes de 7 ACADs + ACAD Raster Design : ACAD, ACAD Archi, ACAD MEP, ACAD Mechanical, ACAD Electrical, ACAD Plant, ACAD MAP En general les gens (des Services techniques des Collectivites avec des besoins SIG/Carto + Batiment) installent souvent 2 logiciels, par exemple : ACAD MAP et AutoCAD Archi (ou MEP) Belle année 2024, La Sante, Bye, lecrabe
  9. Hello Tu fais au clavier la commande : APROPOS < Entree > Et tu regardes la ligne "Base sur" ... Pour ton AutoCAD 2023, tu devrais avoir : "T181.0.0 AutoCAD 2023.1.4" Belle annee 2024, La Sante, Bye, lecrabe
  10. Hello J ai déjà utilisé des champs qui allaient chercher la Propriété INDEX (Contenu en fait) d une entité TEXT ! Ce TEXT etait en fait un Identifiant que je reprenais sur le côté (Legende) avec des explications ... Si on changeait le TEXT avec un RG la Légende était A JOUR ! Bye, lecrabe
  11. Hello Au fait as tu installé le Update AutoCAD 2023.1.4 (09/2023) sur ton AutoCAD 2023 ? Belle annee 2024, La Sante, Bye, lecrabe
  12. Hello Alors si je me souviens bien !? Avec AutoCAD. LT, Architecture, etc, il faut commencer avec GEOPOSITION ... Bye, lecrabe PS: si tu as un AutoCAD MAP (ou CIVIL) alors MAPCSSASIGN (puis un GEOCARTE pour verifier) et apres on peut donner le DWG a un AutoCAD, ACAD LT, ACAD Archi, etc !
  13. lecrabe

    bonne année 2024

    Hello @Olivier Eckmann OUI c 1996 et non pas 2016 ! MERCI, Bonne semaine, Bye, lecrabe
  14. Hello +1 avec @Olivier Eckmann Manipulation realisable avec AutoCAD MAP (ou AutoCAD CIVIL) ... Bye, lecrabe
  15. Hello @babatche06 Alors il y a des choses bien sur ton DWG : 10 LWPOLYLINE sur le Calque : "A-AREA-BDRY" et par contre "moins bien" 20 MTEXTs sur le meme Calque : "A-AREA-IDEN" ALORS qu il devrait y avoir 2 calques de TEXT : -- 1 pour le Service par exemple "Control Room" -- 1 pour l Identification unique de la piece par exemple "WHB0409E" J imagine bien la generation automatique d un Bloc avec la Surface, le Service, l Identification, etc Pour moi le hachurage devrait se faire sur un calque du genre "HATCH__Nom_du_Service" Ainsi on aurait facilement les surfaces totales par Service ... Bye, lecrabe PS: ATTENTION ton DWG est de type US ! LWPOLYLINE Calque: "A-AREA-BDRY" Espace: Espace objet Maintien = bd56 Fermée Epaisseur constante 0'-0" aire 14451.01 pouce carré (100.3543 pied carré) périmètre 42'-7 3/16"
  16. lecrabe

    bonne année 2024

    Hello 1) LA SANTE 2) Bonheur, Reussite, Argent, etc Bye, lecrabe PS: au fait vous pouvez en 2024 re-utiliser vos calendriers 1996 (meme calendrier, 366 jours, JO a Atlanta/Paris, etc)
  17. lecrabe

    Mail Autodesk "Spam"???

    Hello @metacilla OK pour ces qq Infos donc tu parles d une formation sur Autodesk REVIT ... Dans un centre ATC ? Chez un Revendeur (Lequel ?) ? SVP tu avais acces a REVIT pendant combien de jours ? ET la formation etait de combien de jours ? MERCI, Belle annee 2024, Bye, lecrabe
  18. Hello Super réponse de Olivier ! Belle fin 2023, Bye, lecrabe
  19. Hello @albator44 Si tu as des Polylignes 2D (de type CN) au niveau ZERO avec en OD (Object Data) un champ numerique qui est en fait l altitude Z, alors la routine Lisp "OD2DXF38" ci-apres est indispensable ! Merci @bonuscad / Bruno ! La Sante, Bye, lecrabe ;; ;; Routine: OD2DXF38 par BV pour Patrice B. ;; ;; "Monter" en Z Altitude les Polylignes 2D (Les LWPOLYLINEs 2D ONLY !) ;; en fonction du Contenu d un champ OD de MAP ;; indiquant le Z / Altitude de la Polyligne ;; ;; Exemple CLASSIQUE : Polylignes (avec OD de MAP) = ;; Courbes de Niveau provenant de l IGN ... ;; ;; ;; C le Code DXF 38 qui indique l ELEVATION de la Polyligne 2D ;; ;; --- Interrogation Entite/Objet en Lisp --- ;; Commande: (entget (car (entsel)) '("*")) ;; (vl-load-com) (defun str2lst (str sep / pos) (if (setq pos (vl-string-search sep str)) (cons (substr str 1 pos) (str2lst (substr str (+ (strlen sep) pos 1)) sep) ) (list str) ) ) (defun ListBox (title msg keylab flag / tmp file dcl_id choice) (setq tmp (vl-filename-mktemp "tmp.dcl") file (open tmp "w") ) (write-line (strcat "ListBox:dialog{label=\"" title "\";") file ) (if (and msg (/= msg "")) (write-line (strcat ":text{label=\"" msg "\";}") file) ) (write-line (cond ((= 0 flag) "spacer;:popup_list{key=\"lst\";") ((= 1 flag) "spacer;:list_box{key=\"lst\";") (T "spacer;:list_box{key=\"lst\";multiple_select=true;") ) file ) (write-line "}spacer;ok_cancel;}" file) (close file) (setq dcl_id (load_dialog tmp)) (if (not (new_dialog "ListBox" dcl_id)) (exit) ) (start_list "lst") (mapcar 'add_list (mapcar 'cdr keylab)) (end_list) (action_tile "accept" "(or (= (get_tile \"lst\") \"\") (if (= 2 flag) (progn (foreach n (str2lst (get_tile \"lst\") \" \") (setq choice (cons (nth (atoi n) (mapcar 'car keylab)) choice)) ) (setq choice (reverse choice)) ) (setq choice (nth (atoi (get_tile \"lst\")) (mapcar 'car keylab))) ) ) (done_dialog)" ) (start_dialog) (unload_dialog dcl_id) (vl-file-delete tmp) choice ) (defun c:OD2DXF38 ( / js obj dxf_ent ename lst_tabl_def inc_key lst_def desc_od desc_tbl str) (princ "\nSelectionnez les Polylignes 2D (avec OD de MAP) ... ") (while (null (setq js (ssget (list '(0 . "*POLYLINE") (cons 67 (if (eq (getvar "CVPORT") 1) 1 0)) (cons 410 (if (eq (getvar "CVPORT") 1) (getvar "CTAB") "Model")) ;;;;;;;;;; Filtre pour les "Bonnes" Polylignes ;;;;;;;;;; '(-4 . "<NOT") '(-4 . "&") '(70 . 112) '(-4 . "NOT>") ;;;;;;;;;; Filtre pour les "Bonnes" Polylignes ;;;;;;;;;; ) ) ) ) (princ "\nCe n est pas un objet valable pour cette fonction ! ") ) (repeat (setq n (sslength js)) (setq obj (ssname js (setq n (1- n))) dxf_ent (entget obj) ename (vlax-ename->vla-object obj) ) (cond ((ade_odgettables obj) (setq lst_tabl_def (mapcar 'ade_odtabledefn (ade_odgettables obj)) inc_key 0) (foreach n lst_tabl_def (foreach el n (if (listp (cdr el)) (foreach sel (cdr el) (foreach msel sel (if (eq (car msel) "ColName") (setq lst_def (cons (cons (strcat "key" (itoa (setq inc_key (1+ inc_key)))) (cdr msel)) lst_def)) ) ) ) ) ) ) (if (not desc_od) (setq desc_od (cdr (assoc (listbox "Donnee d Objet" "Choisir une Donnee d Objet " lst_def 1) lst_def)) desc_tbl nil) ) (foreach n lst_tabl_def (if (assoc (cons "ColName" desc_od) (cdaddr n)) (setq desc_tbl (cdar n)) ) ) (cond (desc_tbl (setq str (ade_odgetfield obj desc_tbl desc_od 0)) (cond ((eq (type str) 'STR) (setq str (atof str))) ((eq (type str) 'INT) (setq str (float str))) ) (if (eq (cdr (assoc 0 dxf_ent)) "LWPOLYLINE") (entmod (subst (cons 38 str) (assoc 38 dxf_ent) dxf_ent)) (entmod (subst (cons 10 (list (car (cdr (assoc 10 dxf_ent))) (cadr (cdr (assoc 10 dxf_ent))) str)) (assoc 10 dxf_ent) dxf_ent)) ) ) ) ) (T (princ "\nPas de Donnees d Objet (OD de MAP) attachees ! ")) ) ) (prin1) )
  20. lecrabe

    Bonnes Fêtes

    Hello Joyeux Noël et La Santé Bye, lecrabe
  21. Objet: Update AutoCAD/ACAD LT 2024.1.2 Dispo (14/11/2023) Hello Update AutoCAD 2024.1.2 environ 1.4 Go qui s applique a TOUS les ACADs https://help.autodesk.com/view/ACD/2024/FRA/?guid=AUTOCAD_2024_1_2_FIXED_ISSUES Update AutoCAD LT 2024.1.2 environ 1.0 Go https://help.autodesk.com/view/ACDLT/2024/FRA/?guid=AUTOCADLT_2024_1_2_FIXED_ISSUES La Sante, Bye, lecrabe
      • 1
      • Like
  22. Objet: Update AutoCAD/ACAD LT 2024.1.2 Dispo (14/11/2023) Hello Update AutoCAD 2024.1.2 environ 1.4 Go qui s applique a TOUS les ACADs https://help.autodesk.com/view/ACD/2024/FRA/?guid=AUTOCAD_2024_1_2_FIXED_ISSUES Update AutoCAD LT 2024.1.2 environ 1.0 Go https://help.autodesk.com/view/ACDLT/2024/FRA/?guid=AUTOCADLT_2024_1_2_FIXED_ISSUES La Sante, Bye, lecrabe
  23. lecrabe

    XREF

    Hello @Vincent P. OUI desole je me suis laisse emporte par NCOPY ! Belle fin 2023, La Sante, Bye, lecrabe
  24. Hello Desole je ne suis pas un specialiste des Ecrans mais je suis sur qu il faut au moins un 27 pouces eventuellement incurve ! Le Top c 2 ecrans 27 pouces (ou +) incurves ... Bye, lecrabe
  25. lecrabe

    XREF

    Hello Ci joint une variante amelioree de NCOPY que j utilise de temps en temps ... Routine VLisp "NCOPY_MULTIPLE" qui permet de selectionner N objets (1 par 1) dans la XREF pour les importer dans le DWG principal ! Je l ai testé sur AutoCAD LT 2024 ... C OK Bye, lecrabe ;; ;; https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/how-to-ncopy-multiple-at-same-place-or-pause-the-ncopy-command/td-p/10932882 ;; ;; ---- How to ncopy multiple at same place or pause the ncopy command ? ---- ;; ;; Not so easy to do. Possibly like this : ;; (while (setq e (cadr (nentsel))) (command "ncopy" e "" "" "")) ;; ;; But is it really necessary? I mean, how difficult is it to hit enter a couple of times. ;; ;; Anyway, just a few threads lower @pbejse posted a nice example of code ;; how this could be done without the need to fight with ncopy. HERE ;; https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/is-there-alisp-to-pick-polyline-from-apoly-line-in-or-out-block/m-p/10931411/highlight/true#M426966 ;; (vl-load-com) (defun c:NCopy_Multiple (/ obj tmp) (while (setq obj (nentselp "\nSelect (One by One) Objects to copy from XREF ... " ) ;_ end of nentselp ) (progn (setq tmp (entmakex (entget (car obj)))) (vla-transformby (vlax-ename->vla-object tmp) (vlax-tmatrix (caddr obj)) ) (Vla-put-layer (vlax-ename->vla-object (entlast)) (getvar 'clayer)) ) ) )
×
×
  • 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é