Aller au contenu

bloc sous lisp


azop

Messages recommandés

Bonjour,

je souhaiterai transformer en bloc la polyligne et les cercles que j'ai programmer en lisp

j'ai crée des polylignes à partir un programme en lisp, je cherche une commande pour transformer mes éléments en bloc ( si j'utilise la commande -bloc, comment faire sélectionner automatiquement mes polylignes ? )

Lien vers le commentaire
Partager sur d’autres sites

Salut soupra,

 

Si tu dessines avec un lisp, le plus simple est de garder un pointeur

sur le dernier objet avec entlast, puis de dessiner tes polylignes et cercles

et donc de créer un bloc avec les entités crées depuis ta sauvegarde

d'entlast au nouveau et dernier entlast.

 

Sinon, c'est que de créer une sélection vide avec ssadd, puis d'y ajouter

au fur et à mesure la polyligne ou cercle dessiné.

 

a+

Tous pour lisp, Lisp pour tous!

Avec Revit, cela ne vas trop vite...

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Tout dépend de ton niveau en LISP.

Si tu crées tes entités avec la fonction command, il faut faire comme dit bseb67 : stocker les noms d'entités dans un jeu de sélection que tu passeras comme argument de (command "_block" ...)

 

Si tu connais l'utilisation d'entmake ou des fonction vla-, alors tu crées tes entités directement dans la définition de bloc que tu insères ensuite.

 

Le plus simple pour ceux qui seraient susceptibles de t'aider serait que tu postes un bout de code.

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

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Plutôt qu'un nom aléatoire, il vaut mieux donner un nom dont tu es sûr qu'il n'existe pas déjà dans la collection de blocs du dessin.

 

Dans ce cas donner un nom incrémenté peut-être une solution :

(setq i 1)
(while (tblsearch "BLOCK" (setq nom (strcat "BLOC_" (itoa i))))
 (setq i (1+ i))
)

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

Lien vers le commentaire
Partager sur d’autres sites

 

D'accord avec (Gile), mais ca ne te génère pas un nom. C'est un choix.

 

Si tu décides de tout de même utiliser un nom aléatoire, tu peux te baser sur la variable DATE:

 

(rtos (getvar "date") 2 6)

 

Cette expression génère une nouvelle chaine de tous les 10è de seconde.

 

 

Carboléüm, qui dessine aussi à la main -> Carboleum's sketchblog

Lien vers le commentaire
Partager sur d’autres sites

  • 2 ans après...

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é