Aller au contenu

recuperer donnees apres cmd mesurer


Messages recommandés

Posté(e)

bonjour la commande mesurer ou diviser appliquée a une polyligne crée un certain nombre de points, je voudrais récupérer tous ces points ou leur point d' insertion et les metrre dans une liste afin de les exploiter si ca marche je donnerai humblement mon prg , mais je n'ai pas la moindre idée de comment proceder merci beaucoup si vous avez une idée

Posté(e)

Salut,

 

tu peux par exemple utiliser ssget "p"

 

(setq ent (car (entsel "Selectionnez une polyligne : ")))
(command "mesurer" ent distance)
ou
(command "diviser" ent distance)
(setq pts (ssget "p")) ;selection des objets nouvellement créés
(setq nb (sslength pts)) ;nombre d'entitees dans la selection

(setq nb1 0)
(while nb1 < nb) ;boucle pour récuperer les points d'insertion
  (setq ptname (ssname pts nb1) ;recuperation du nom
  (setq ptcoord (cdr (assoc 10 (entget ptname))) ;recuperation des coordonnées
  (setq nb1 (+ nb1 1))
)

Aide au téléchargement du cadastre dgfip-download-helper
Insertion de photos géolocalisées exif https://www.dropbox.com/s/gkf6o9ac2hxen97/exifscr.zip?dl=0
Script correction BUG SPDC V2, propriétaire département 21 et 22 : https://greasyfork.org/scripts/442400-spdcv2/code/SPDCV2.user.js

Posté(e)

Salut,

 

Il est assez facile de 'diviser' ou 'mesurer' une entité curviligne en LISP sans utiliser les commandes natives DIVISER ou MESURER.

 

Regarde du côté des fonctions LISP vlax-curve-*.

 

;; divCurve
;; Retourne la liste des points (coordonnées SCG) qui divisent la courbe
;;
;; Arguments
;; curve : une entité curviligne (ENAME ou VLA-OBJECT)
;; n : nombre de divisions

(defun divCurve (curve n / len inc dist result)
 (vl-load-com)
 (setq len  (vlax-curve-getDistAtParam curve
                                       (vlax-curve-getendparam curve)
            )
       inc  (/ len n)
       dist inc
 )
 (while (    (setq result (cons (vlax-curve-getPointAtDist curve dist) result)
         dist   (+ dist inc)
   )
 )
 (reverse result)
)


;; mesCurve
;; Retourne la liste des points (coordonnées SCG) à intervalle régulier sur la courbe
;;
;; Arguments
;; curve : une entité curviligne (ENAME ou VLA-OBJECT)
;; inc : longueur de l'intervalle

(defun mesCurve (curve inc / len n dist result)
 (vl-load-com)
 (setq len  (vlax-curve-getDistAtParam curve
                                       (vlax-curve-getendparam curve)
            )
       n    (fix (/ len inc))
       dist 0
 )
 (repeat n
   (setq result (cons (vlax-curve-getPointAtDist curve dist) result)
         dist   (+ dist inc)
   )
 )
 (reverse result)
)

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • 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é