Aller au contenu

fabcad

Membres
  • Compteur de contenus

    877
  • Inscription

  • Dernière visite

  • Jours gagnés

    8

Tout ce qui a été posté par fabcad

  1. Bonjour à tous et meilleurs vœux, N'ayant pas AutoCAD MAP lors de l'écriture de mon post, je reviens faire quelques corrections : Sur un AutoCAD MAP 2013 la variable cgeocs n'existe pas donc avec un AutoCAD MAP on peut récupérer le nom du système de coordonnées en autolisp avec ce genre de programme : (defun c:dProp_Syst_Coord (/ dProps dProp) (vl-load-com) (setq acadObject (vlax-get-acad-object)) (setq acadDocument (vla-get-ActiveDocument acadObject)) ;;Récupérer the SummaryInfo (setq dProps (vlax-get-Property acadDocument 'SummaryInfo)) ;; Récupération du Systeme de coordonnées par AutoCAD MAP (setq systeme_coord (ade_projgetwscode)) ;;Ajouter une entrée dans l'onglet "Custom" (vla-addcustominfo dProps "Systeme de Coordonnees" systeme_coord) (princ) ) On peut mettre le résultat de la variable autolisp "systeme_coord" dans une propriété personnalisée du DWG courant pour que d'autres utilisateurs ayant AutoCAD ou AutoCAD LT pré 2014 puissent ainsi récupérer la valeur dans des champs. Bonne journée, Fabrice Le Rennais Métropolitain.
  2. Bonjour à tous et meilleurs vœux, Je pencherais plutôt l'envoi du résultat de la fonction ade_projgetwscode dans une propriété personnalisée d'AutoCAD MAP ou d'AutoCAD ou alors via la variable cgeocs pour ainsi la récupérer dans n'importe quelle version d'AutoCAD. Bonne journée, Fabrice Le Rennais Métropolitain.
  3. fabcad

    Bonne année!

    Meilleurs vœux, une bonne année 2015 et aussi la santé à toutes et à tous. Fabrice Le Rennais Métropolitain.
  4. Hello à tous, Meilleurs vœux, personnels et professionnels, pour vous ainsi que vos proches. En ces temps perturbés, que 2015 apporte la sérénité dans ce vaste monde. Continuons à partager nos savoirs, c'est déjà un commencement. Cordialement, Fabrice Le Rennais Métropolitain.
  5. Bonsoir, Merci pour l’intérêt que tu porte à concevoir cette routine très utile. On m'a demandé de créer des surfaces d’après des parcelles et j'ai donc pu tester la fonction, j'ai zoomé sur ma zone de travail afin de ne pas utiliser la molette. L'ajout de la sélection du point de départ est très bien car on voit tout de suite où partir, après il faut aller doucement pour ne pas oublier un segment. Merci encore, Fabrice
  6. Merci Bonuscad, :-) Tu as lu dans mes pensées car c'est effectivement lors de la création de zonages POS/PLU ou des des demandes de surfaces issues de plusieurs parcelles. J'ai testé la fonction hier soir et effectivement un ajout de points au même endroit se fait sur des sommets mais c'est quand même grandiose. Pour info : Je connais AutoLISP mais je ne maitrise pas beaucoup la partie géométrie, j'ai réalisé des fonctions mais dans le domaine des chaines de caractères et des données attributaires sur AutoCAD MAP. Merci beaucoup, Bonne journée, Fabrice
  7. Bonsoir, Merci Bonuscad pour cet embryon de programme, j’essayerai de l'approfondir c'est quand même un très grand pas. Bonne soirée,
  8. Bonsoir à tous, J'ai trouvé ce génial programme qui permet de créer plusieurs perpendiculaires par rapport à la polyligne tout en faisant glisser la souris sur cette polyligne, c'est ce qui m'épate et donc j'ai imaginé prendre ce concept pour créer une polyligne sans cliquer les points des extrémités de polylignes dont elle serait issue. Voici l’algorithme de la fonction rêvée : Merci d'avance, elle permettra des créations de polylignes de surfaces très rapidement pour l'utilisateur. VovKa_LPer.lsp
  9. Bonjour à tous, Je souhaiterais pour ma part que le mot clé soit volume. Je suis fatigué d'entendre "baisse le son" car le volume sonore augmente lors des publicités par rapport aux programmes. Voilà une de mes requêtes télévisuelles,
  10. Lieu : Ille et Vilaine Diplôme : BEP Dessinateur en Génie Civil et formation Informatique du Bâtiment Poste : Dessinateur / Cartographe / Développeur AutoCAD, AutoCAD MAP et ArcGIS. Ancienneté : 4 ans privé + 20 ans public (24 ans d'expérience dans la cartographie) Salaire : 2000 € net/mois annualisé (primes incluses, TR, pas de voiture) Actuellement à Rennes Métropole service Aménagement Urbain - Pole Dessin / SIG Fabcad
  11. Bonjour, Merci pour l’intérêt que tu portes à ce genre de traitement. En ré-indentant mon programme, j'ai déclaré toutes mes variables et ma routine a fonctionné comme par magie. Je vais chronométrer comme tu fais pour voir la différence de temps. En lisant ton programme, il serait souhaitable de cliquer sur une entité texte pour récupérer le calque ou par un autre moyen car il y deux calques d'altitudes pour du 200 et du 500ème nommés EA_AL200 et EA_AL500 pour ainsi créer la sélection filtrée. Bonne journée, Fabcad, Le Rennais Métropolitain ;; CIRCSEL par Gille Chanteau ;; crée un jeu de sélection à partir d'un cercle ;; Arguments ;; cen = centre du cercle (point coordonnées SCU) ;; rad = rayon du cercle (réel) ;; mod = mode de sélection ("_CP" ou "_WP") ;; fltr = filtre de sélection (liste comme pour ssget) (defun circsel (cen rad mod fltr / ang lst) (setq ang 0) (repeat 50 (setq lst (cons (polar cen ang rad) lst) ang (+ ang (/ pi 25)) ) ) (ssget mod lst fltr) ) ;; Fonction principale ;; Permet de créer la Justification des côtes Altimétriques pour faciliter le ;; changement de la taille des textes. (defun c:Justification_cotes_Altis (/ I L i base bloc_en_cours calque_maitre filtre_calque filtre_nom_de_bloc filtre_type fltr insertion_bloc justif_trouvee maitre_de_selection nom_bloc_maitre nombre_blocs nombre_textuels rad selection_points_altis selection_textuels t_lst textuel_en_cours type_maitre valeur_qtextmode x_base x_ins_bloc y_base y_ins_bloc ) (setvar "cmdecho" 0) (setq valeur_qtextmode (getvar "QTEXTMODE")) (setvar "QTEXTMODE" 1) (command "REGEN") (setq rad 0.05 maitre_de_selection (car (entsel "\n Pointez un bloc alti pour la sélection : ")) calque_maitre (cdr (assoc 8 (entget maitre_de_selection))) type_maitre (cdr (assoc 0 (entget maitre_de_selection))) );fin setq (setq fltr (list '(0 . "TEXT,MTEXT") (cons 8 calque_maitre)) ) ; Si l'objet maitre est de type "INSERT" (if (= type_maitre "INSERT") (progn ;creation des filtres (setq filtre_calque (cons 8 calque_maitre) filtre_type (cons 0 type_maitre) filtre_nom_de_bloc (cons 2 (cdr (assoc 2 (entget maitre_de_selection)))) );fin de la creation des filtres (setq selection_points_altis (ssget (list filtre_type filtre_nom_de_bloc filtre_calque))) );fin progn );fin if si l'objet maitre est de type "INSERT" ;; Traitement sur la sélection des Points (setq nombre_blocs (sslength selection_points_altis)) (setq i 0) (while (<= i (- nombre_blocs 1)) (setq bloc_en_cours (ssname selection_points_altis i)) (setq insertion_bloc (cdr (assoc 10 (entget bloc_en_cours)))) (setq x_ins_bloc (nth 0 insertion_bloc) y_ins_bloc (nth 1 insertion_bloc) ) (setq selection_textuels (circsel insertion_bloc rad "_CP" fltr)) (setq nombre_textuels (sslength selection_textuels)) (if (= nombre_textuels 1) (progn ;;; met dans t_lst la liste dxf du textuel (setq textuel_en_cours (ssname selection_textuels 0)) (setq t_lst (entget (ssname selection_textuels 0))) (if (or (= "MTEXT" (cdr (assoc 0 t_lst))) (and (= "TEXT" (cdr (assoc 0 t_lst))) (= 0 (cdr (assoc 73 t_lst))) (= 0 (cdr (assoc 72 t_lst))) );fin and (and (= "ATTRIB" (cdr (assoc 0 t_lst))) (= 0 (cdr (assoc 74 t_lst))) (= 0 (cdr (assoc 72 t_lst))) );fin and );fin or (setq base (trans (cdr (assoc 10 t_lst)) 0 1)) (setq base (trans (cdr (assoc 11 t_lst)) 0 1)) );fin if (setq x_base (nth 0 base) y_base (nth 1 base) ) ;;; x_ins_bloc, y_ins_bloc ;(setq ang (angle base insertion_bloc)) (setq justif_trouvee (cond ((and (> x_base x_ins_bloc) (> y_base y_ins_bloc)) "BG") ((and (> x_base x_ins_bloc) (< y_base y_ins_bloc)) "HG") ((and (< x_base x_ins_bloc) (> y_base y_ins_bloc)) "BD") ((and (< x_base x_ins_bloc) (< y_base y_ins_bloc)) "HD") (T "MC") );fin cond ) (command "JUSTIFIERTEXTE" textuel_en_cours "" justif_trouvee);fin command JUSTIFIERTEXTE (command "CHPROP" textuel_en_cours "" "COuleur" "ducalque" "");fin command CHPROP );fin progn (princ "\nTrops d'objets sélectionnés ! ") );fin if (prompt (strcat "\r Traitement de " (itoa i) " Blocs alti sur " (itoa nombre_blocs) " Blocs alti. ")) (setq i (+ i 1)) ); fin while (setvar "QTEXTMODE" valeur_qtextmode) (command "REGEN") );fin defun Justification_cotes_Altis [/code
  12. Bonjour, Merci pour ton aide. C'est vrai que j'avais cet algorithme dans la tête mais je ne voyais pas cette solution de sélection par le contour des textes. Je vais décortiquer ton programme pour m'approprier ton raisonnement. Bonne journée, Fabcad,
  13. Bonjour à tous, Je souhaiterais finaliser une fonction qui me permettrait d'agrandir des textes d'altitude en relation avec leur justification. Je voulais faire par l'angle entre le textuel et son ponctuel mais ca ne fonctionnait pas, j'ai dû me résoudre à utiliser la fonction Justifier AutoCAD. Mais cela m'embête car prendre une fonction AutoCAD, ce n'est pas élégant dans un lisp. Il y a 4 cas de figure HG, HD, BD, BG pour effectuer le traitement. La routine utilise (merci Gilles) une sous-fonction de sélection circulaire pour sélectionner le texte à proximité d'un point (bloc). La routine fonctionne pour un objet mais pas pour plusieurs points. Je ne vois plus mes erreurs. L'avis des experts se rait la bienvenue. Merci pour votre aide. J'ai joint dans le sujet deux fichiers lisp et l'extrait d'un fichier dwg. Bonne journée, Fabcad, Le Rennais Métropolitain, dwg-lsp.zip
  14. fabcad

    Vérification de vla-offset

    Bonjour amis Lispeurs, Merci pour votre aide, c'est vrai que je n'avais pas pensé au phénomène du papillon mais les plines venant du SIG, je pense qu'ils ont fait des contrôles topologiques. Mais c'est à creuser. Fabcad Le Rennais Métropolitain.
  15. Bonjour amis Lispeurs, J'ai créé une routine pour "monter" des polylignes en solides 3d. Pour les RDC et Niveaux pas de problème, mais pour les attiques, je suis obligé de décaler via vla-offset avec une distance de 2.8m, mais sur certaines polylignes le décalage est impossible car la distance d'un segment est trop petite. Mes interrogations sont : - Savoir si le décalage a bien fonctionné auquel cas je peux récupérer la dernière polyligne décalée sinon message d'erreur. Merci pour votre aide, Fabcad Le Rennais Métropolitain. (defun Attique (Pline_en_cours /) (setq vlaobjet_pline (vlax-ename->vla-object Pline_en_cours)) (setq code_attique (nth 1 liste_elements) hauteur_rdc 3.5 hauteur_attique 2.8 altitude_attique 3.5 );fin setq variables ;Creation de l'attique (if (and (eq "AcDbPolyline" (vla-get-objectname vlaobjet_pline)) (LM:ListClockwise-p (_group (vlax-get vlaobjet_pline 'coordinates))) ) (setq tableau_attique (vla-offset vlaobjet_pline dist_attique)) (setq tableau_attique (vla-offset vlaobjet_pline (- dist_attique))) );fin if ;;; Etape 1 Récupération de la polyligne Attique. (setq objet_attique (vlax-safearray-get-element (vlax-variant-value tableau_attique) 0)) ;;; Affectation du calque et la couleur à la polyligne en cours (vla-put-color objet_attique acRed) (vla-put-Layer objet_attique calque_Attiques) (vla-put-Elevation objet_attique altitude_attique) ;;; Etape 2 Changer l'épaisseur (pseudo-extrusion) (vla-put-Thickness objet_attique 2.8) ;;; Etape 3 Conversion de l'objet Attique epaissi en objet Attique solide ;;; Conversion de l'objet vlisp en objet AutoCAD et sa conversion en solide 3D (setq acad_objet_Attique (vlax-vla-object->ename objet_attique)) (command "_convtosolid" acad_objet_Attique "") );fin defun Attique
  16. fabcad

    [Résolu] gdb

    Bonjour a tous, Étant depuis peu dans un service de production de PLU, ce dernier utilise des GDB (Géo Data Base) et il m'est apparu aussi la question sur l'import ou la connexion via FDO. Je pensais qu'on pouvait connecter ce genre de Données SIG. Fabcad, Le Rennais Métropolitain.
  17. fabcad

    Un peu de frime...

    Bonjour Gile, Bravo tu es l'un des grands contributeurs de ce site et sur bien d'autres sites francophones et anglophones. Merci pour l'aide apportée. Cordialement, Fabcad, Le Rennais Métropolitain,
  18. Bonjour à tous, J'ai joint dans le sujet les deux fichiers lisp et l'extrait du fichier d'extension xyz, j'ai du changer cette dernière car elle ne passait pas en pièce jointe. Bonne journée, Fabcad, Le Rennais Métropolitain,
  19. Bonjour à tous, Étant sur la 2007 il y a 3 mois, j'utilisais la fonction Mapplot pour du phasage de travaux. ayant eu des mises à jours à faire, je me suis aperçu que la fonction plantait et ce malgré des tests sur anciens fichiers ou de nouveaux créés de toute pièce sur la version AutoCAD MAP 2013. Les messages d'erreur sont un problème de sélection de requêtes ou bien la non prise en compte du calque de la fenêtre principale.. Je pense qu'il bloque lors du script à l'ouverture de la viewport car il insère le bloc d'impression. Est-ce un bug de cette version. Pour info, dans mon ancienne collectivité, mapplot fonctionnait sur la version 2009. Bonne journée, Fabcad, Le Rennais Métropolitain,
  20. Hello a tous, Lors d'un export issu d'un logiciel topo, nous récupérons un extrait de la base de données en dxf ainsi que des fichiers d'extension xyz contenant des points. C'est un fichier texte pouvant être lu dans un bloc-notes mais la structure d'un point est complexe. En effet, comme dans les exemples ci-dessous, les caractéristiques de chaque point peuvent être sur deux ou plusieurs lignes. Mon but étant de créer l'objet point avec les coordonnées X, Y et Z et mettre dans des variables Autolisp du nom se trouvant devant le signe égal les valeurs pour mettre ces dernières en tant que Données d'Objets (xdatas évoluées de AutoCAD MAP). Je n'ai pas d'idée sur le moyen de faire une sous boucle lorsque je trouve une ligne ou se trouve un X= pour lire les suivantes afin de récupérer le matricule et récupérer la ou les valeurs et aller après ces lignes. Merci pour votre aide, Bonne journée, Fabcad, extrait.txt import_xyz-v2.lsp
  21. Bonjour, Voici une routine qui traite cette copie d'index de textuel. Bonne journée, Fabcad le Rennais métropolitain. ID-TXT.LSP
  22. fabcad

    Unité de dessin

    Bonjour, Ta question étant posée sur un forum AutoCAD LT 2013, je pense donc que c'est la version LapTOP que tu utilises et donc les langages AutoLISP ou VLISP ne peuvent pas fonctionner avec cette version, il ne te reste donc que le langage Script qui je crois répond tout à fait à ta demande. Il faudra que ton autocad soit en ouverture unique de dwg puis tu lanceras ton script sur l'ensemble de tes fichiers. Suivre le conseil de alala semble le top de la manipulation. Fabcad Le Rennais Metropolitain
  23. fabcad

    _mapiinsert

    Bonsoir, J'ajoute que la plupart des commandes MAP par cases de dialogue se gèrent par la variable cmddia. Fabcad, Le Rennais Metropolitain
  24. Bonsoir, Il vaut mieux prendre le terme de palette pour l'ensemble des userform d'AutoCAD. Bonne soirée, Fabcad, Le Rennais Métropolitain
  25. Bonjour a tous, J'ai créer une routine pour créer des étiquettes (mtextes) issues de valeurs de Données d'Objets (Xdatas améliorées de MAP). Si vous avez des astuces pour faciliter le programme, je suis preneur. Bonne journée, Fabcad, Le Rennais Métropolitain, Ecrire_Etiquettes-OD-avec-choix-v3.lsp
×
×
  • 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é