Aller au contenu

Messages recommandés

Posté(e)

Comment créer un Groupe SansNom

 

J'ai deux entités enregistrés à l'aide de (entlast) :

 

(command "_-INSERT" (nth 1 (nth 2 public_style_cote)) p1

(nth 2 (nth 2 public_style_cote)) "" a5 )

(setq PRIVE_FLECHE (entlast))

(command "_line" p1 p3 "")

(setq PRIVE_LIGNE (entlast))

 

Au départ je créais une ligne de repère de style type prédéterminé

(command "_leader" p1 p3 "" "" "A")

 

Or comme mes collaborateurs ne comprennent pas le système de la ligne de repère je dois me tourner vers un autre système :

créer un bloc et tracer une ligne mais mon souci c'est que je veux pouvoir les déplacer de manière unique

Je ne vois que l'option de groupe.

Mais en essayant cette commande elle me demande un nom. Quel nom dois-je mettre?

En sachant que j'ai de multiple ligne à effectuer de cette manièrs j'ai voulu les indéxer par rapport au nom de l'entité : PRIVE_LIGNE. Mais le problème c'est que je n'arrive pas à manipuler les paires pointées : ( (0 . ) ... ).

mon but n'est pas d'avoir un nom spécifique, je voudrais connaitre s'il y a un moyen de créer des groupes SansNom comme le créer la commande TEXTMASK du menu express (incluant un Wipeout+Texte).

 

Dessinateur AutoCAD, Modeleur BIM, consultant informatique logiciels métier

Lenovo ThinkStation P330 i9 9900K 32Gb RAM 512 SSD + 1To

GstarCAD, Fisa-CAD, Revit, FisaBIM CVC, Microsoft Office

 

PlaquetteDeplianteMars2024.pdf

Posté(e)

Salut,

 

Je trouve que pour débuter en LISP, ta demande est nettement pour un utilisateur très averti en Lisp.

 

Néanmoins je te livre quelques lignes qui te permettrons de faire des groupes sans Noms (ils n'apparaitrons pas dans la boite de dialogue de la commande "Groupe" )

 

Il te faut savoir quand même qu'un groupe est DECOMPOSABLE ou simplement inactivable à l'aide des touches [CTRL+SHIFT+A]

 

(command "_.-INSERT" (nth 1 (nth 2 public_style_cote)) p1
(nth 2 (nth 2 public_style_cote)) "" a5 )
(setq PRIVE_FLECHE (entlast))
(command "_.line" p1 p3 "")
(setq PRIVE_LIGNE (entlast))	

(if (null (dictsearch (namedobjdict) "LIGNE_FLECHE"))
	(setq xname (entmakex '((0 . "DICTIONARY") (100 . "AcDbDictionary")))
	      newdict (dictadd (namedobjdict) "LIGNE_FLECHE" xname)
	)
	(setq newdict (cdar (dictsearch (namedobjdict) "LIGNE_FLECHE")))
)
(setq xname
	(entmakex
		(append
			'(
				(0 . "GROUP")
				(100 . "AcDbGroup")
				(300 . "Fleche & Ligne")
				(70 . 0)
				(71 . 1)
			)
			(list
				(cons 340 prive_fleche)
				(cons 340 prive_ligne)
			)
		)
	)
)
(if (not (assoc 3 (dictsearch (namedobjdict) "LIGNE_FLECHE")))
	(dictadd newdict "RECORD_1" xname)
	(dictadd newdict (strcat "RECORD_" (itoa (1+ (atoi (substr (cdr (assoc 3 (dictsearch (namedobjdict) "LIGNE_FLECHE"))) 8))))) xname)
)

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

Posté(e)

Merci j'en ferai bon usage et je souhaite encore que mes collaborateurs ne me décomposeront pas encore çà c'est vraiment c...... de sélectionner la ligne et le bloc de fleche.....

Dessinateur AutoCAD, Modeleur BIM, consultant informatique logiciels métier

Lenovo ThinkStation P330 i9 9900K 32Gb RAM 512 SSD + 1To

GstarCAD, Fisa-CAD, Revit, FisaBIM CVC, Microsoft Office

 

PlaquetteDeplianteMars2024.pdf

Posté(e)

Personnellement j'aurais écrit ça :

 

Tu sélectionnes tes entités ( MES-ENTITES ) et tu passes la commande -GROUPE...

 

(command "-groupe" "" "*" "Blabla description du groupe" MES-ENTITES "")

 

Christian

 

[Edité le 14/12/2004 par rebcao]

Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...

cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)

Posté(e)

Pour te répondre Christian, (t'inquietes pas je pense à t'envoyer les CD):

 

La commande _-GROUP (getcname "-GROUP") nécessite un Nom pour être sûr de ne pas avoir de redondance : ("-_GROUP" "_Create" "*" => Nom invalide)

- soit faire un (tblsearch "Dictionnary" ....) si encore la clé "Dictionnary" existe

- soit indexer par rapport à un identifiant qui n'a aucune chance d'être en double : (le nom d'entité) : (vl-string-left-trim "Nom d'entité: "(vl-string-trim "\<\>" (vl-princ-to-string prive_ligne)))

où PRIVE_LIGNE est une entité défini grâce au (entlast)

 

Pour ajouter l'utile à l'agréable bonusCAD voici une petite routine interressante.

Un groupe est utilie quand il est sélectionnable donc quand la variable PICKSTYLE est impair

 

(if (= (boole 1 (getvar "PICKSTYLE") 1) 0) (setvar "PICKSTYLE" (+ (getvar "PICKSTYLE") 1))) ; Rend sélectionnable les groupes;

 

Comme PICKSTYLE n'a de valeur 0, 1, 2 et 3 il n'y aura pas de dépassement de valeur puisque la valeur la plus grande est impaire.

Selection des groupe:

PICKSTYLE = (1 ou 3) base 10 (01 ou 11) base 2

 

De la même façon on peut l'applique avec les hachures

PICKSTYLE = (2 ou 3) base 10 (11 ou 10) base 2 en prenant garde que la valeur doit être strictement inférieur à 4

;)

Dessinateur AutoCAD, Modeleur BIM, consultant informatique logiciels métier

Lenovo ThinkStation P330 i9 9900K 32Gb RAM 512 SSD + 1To

GstarCAD, Fisa-CAD, Revit, FisaBIM CVC, Microsoft Office

 

PlaquetteDeplianteMars2024.pdf

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é