Aller au contenu

fonctions vla


fabcad

Messages recommandés

Bonsoir,

Je souhaiterais creer des vues sur autocad 2005 en visual lisp avec une fonction du

genre vla-add-view mais je n'ai pas encore touche a l'automation vlisp.

 

En 2 creer un objet ligne en recuperant le point d'insertion, la longueur et l'angle d'un texte ou d'un mtexte pour creer des amorces d'axes de voies sur du cadastre.

Merci pour vos réponses...

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Pour les vues, en Vlisp, on ajoute un objet View à la collection Views du document actif ActiveDocument de l'application AutoCAD.

 

Pour ajouter la vue courante à la collection de vues :

 

(vla-add
 (vla-get-Views
   (vla-get-ActiveDocument
     (vlax-get-acad-object)
   )
 )
 "NomDeLaVue"
) 

 

On peut aussi décomposer et utiliser des variables :

 

le document actif :

(setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object)))

 

 

la collection de vues :

(setq Vues (vla-get-Views AcDoc)) 

 

la nouvelle vue :

(setq Vue1 (vla-add Vues "NomDeLaVue")) 

 

On peut ensuite changer les propriétés de la vue Height, Width, Center, Target ...

 

par exemple, mettre la largeur à 50.0:

(vla-put-Width Vue1 50.0) 

 

ou la cible sur le point (50.0 200.0 150.0)

(vla-put-Target Vue1 (vlax-3d-point '(50.0 200.0 150.0)))

 

Si la vue n'est pas stoquée dans une variable, on peut y accéder par son nom (NomDeLaVue)

(vla-Item (vla-get-Views AcDoc) "NomDeLaVue") 

 

En espérant avoir été clair ...

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

Lien vers le commentaire
Partager sur d’autres sites

En 2 creer un objet ligne en recuperant le point d'insertion, la longueur et l'angle d'un texte ou d'un mtexte pour creer des amorces d'axes de voies sur du cadastre.

Merci pour vos réponses...

 

Regarde ce code sur un Text :

 

(setq ovj(vlax-ename->vla-object(car(entsel))))
(setq ins(vlax-safearray->list (vlax-variant-value (vla-get-Insertionpoint ovj))))
(setq rot(vla-get-rotation ovj))
(setq ou2(polar ins rot 100))

(setq pt1 (vlax-3d-point ins))
(setq pt2 (vlax-3d-point ou2))

(setq doc(vla-get-ActiveDocument(vlax-get-acad-object)))
(setq *ModelSpace*(vla-get-ModelSpace doc))
(vla-addLine *ModelSpace*    pt1 pt2   )

 

Il suffit de s'y mettre.

 

Un conseil :

double-clique sur "ins", par exemple, ensuite clique-droit puis choisis "inspecter.." tu verras tout ce à quoi tu peux acceder en vla-get-

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

Suggestion simpliste pour le point 2.

 

Pourquoi ne pas modifier simplement ta chaine de texte en inserant %%u au tout début.

 

Mais si tu veux vraiment une ligne, il te faudra améliorer la ligne de Tramber

(setq ou2(polar ins rot 100))

en remplacant 100 par la vrai longueur que tu pourras obtenir avec un "BoundingBox" de ton texte

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

merci pour vos infos,

Ces lignes de programme associées à l'analyseur LISP d'Autodesk MAP qui a ses propres fonctions qui simplifie largement l'acces aux objets vont rendre le travail de creation des vues efficace.

 

Le but etant de generer des vues sur des limites communales (polylignes fermées avec un champ nom de commune pour le nom de la vue)

 

Effectivement je ne veux pas souligner ou surligner le texte mais bien de creer une ligne sur du texte.

 

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é