Aller au contenu

une routine bloc sur point


pierricq

Messages recommandés

Bonjour,

 

Je suis a la recherche d'une routine qui me permettrai de remplacer des points (avec données d'objets) par des blocs qui récupereraient ces derniere...

de plus j'aimerai que cela soit possible avec une selection par calque...

 

Je m'expilque:

 

J'ai un semis de points genre shape que j'insert sur autocad map, ces points sont ordonné par calque (suivant le type de données d'objet qui y sont integrée)

j'aimerai dire:

je veux tout les points qui sont dans ce calque (et leur données associées)

et les remplacer par tel bloc (qui récupère les données des points...)

 

j'espere avoir été assez clair...

 

C'est possible de faire ça en lisp???

 

J'ai trouvé cette routine qui ne fait qu'inserer un bloc sur les points...

 

C'est déjà pas mal mais il ne fais pas de sélection par calque et ne prends pas en compte les données d'objet...

 

  ;;; Routine pour dessiner un Bloc sur des points graphiques
;;; Version 2 corrigee pour ne traiter que des points
;;; Commande:  P2B
;;;--------------------------------------------------------------------;
;;; PNT2BLK.LSP -  July 2001 - Original Routine 
;;; Place a block object in the location of selected point objects.
;;;--------------------------------------------------------------------;
;;; Function: PNT2BLK --> P2B
;;; function to convert point objects to blocks.
;;; block must be defined in the current drawing
;;; blocks including attdefs will not address the attributes
;;; if the block references attdefs with default or constant values, 
;;; these will be populated.


(defun c:p2b (/ ss ct len e eb bname pt attreqhold echohold)

;;;get command echo setting and store it
(setq echohold (getvar "CMDECHO"))

;;;set command echo off
(setvar "CMDECHO" 0)

;;;get attribute request setting and store it
(setq attreqhold (getvar "ATTREQ"))

;;;set attribute request off
(setvar "ATTREQ" 0)

;;;get name of block to insert
(setq bname (getstring "\nBlock name: "))

;;;check that the block is defined in the current drawing
(if (tblsearch "block" bname)
(progn

;;;prompt for point selection
(princ "\nSelect point objects:")


(if (setq ss (ssget '((0 . "POINT"))))

(progn

;;;walk through point objects
(setq len (sslength ss))
(setq ct 0)
(while (< ct len)

;;;for each point
(setq e (ssname ss ct))
(setq ct (+ ct 1))
(setq eb (entget e))
;;;get insert point
(setq pt (cdr (assoc 10 eb)))
;;;insert block
(command "_insert" bname pt "" "" "")
)
)

(princ "\nNo point  objects selected.")
)
)
(princ "\nInvalid, block not defined in drawing.")
)

;;;restore command echo setting to stored value
(setvar "CMDECHO" echohold)

;;;restore attribute request setting to stored value
(setvar "ATTREQ" 0)

(princ)
) 

 

 

Est ce qu'une ame charitable saurait la modifier pour avoir la selection par calque et l'insertion des données associées au bloc insérer sur le point (chaque point a des données différentes)

 

Merci[Edité le 7/5/2009 par pierricq]

 

[Edité le 7/5/2009 par pierricq]

Lien vers le commentaire
Partager sur d’autres sites

Si tu es sur MAP pas trop besoin de ce lisp car tu peux sur le volet taches faire une requête sur ton dessin courant sur une partie ou la totalité de tes points, faire au prélable une Annotation (Bloc AutoCAD MAP avec Attributs récupérant les propriétés AutoCAD ainsi que les données d'objets, liens de bases de données) et sur la couche points du volet Taches Ajouter un style Annotation qui dessinera le bloc sur chaque point.

 

Fabcad

 

Lien vers le commentaire
Partager sur d’autres sites

coucou

 

ça me semble possible

mais il va falloir que tu expliques ce que sont ces "données d'objet"

 

ce sont des XDATAS ?

si c'est le cas quelle application est à l'origine ?

au fait c'est quoi "genre shape" ???

 

 

amicalement

 

[Edité le 8/5/2009 par didier]

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir,

 

Pour répondre à didier le format shapefile dont l'extension est .shp .C' est un format de fichier issu du monde du SIG développé par ESRI.

Donc c'est un format SIG comme l'est le SDF pour Autocad MAP.

 

Les données d'objet ce sont des données attributaires d'un objet, on peut les apparenter aux Xdatas (Les Xdatas c'est la méthode autocad pour avoir des données attributaires, les données d'objets, c'est la méthode universelle de donner des informations à un objet)

 

Voilou

 

@plus

 

LB

Lien vers le commentaire
Partager sur d’autres sites

  • 4 semaines après...

Re,

 

Merci de vous être posés sur mon problème.

 

Fabcad, en faite je veux supprimer le point ou a la rigueur le transformer en bloc tout en gardant les attributs.

 

les attributs ou données d'objets, comme le dit lovecraft, c'est des données qui sont consultables et liées a un objet graphique, une base de données géoréférencée en qulque sorte...

 

Didier, tu as besoin d'autres infos??

 

il s'agit d'un export apic vers autocad

Lien vers le commentaire
Partager sur d’autres sites

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é