Jump to content

Recommended Posts

Autocad 2021 full

 

Bonjour, 

Je dessine avec plusieurs scu sur mon dessin. Et il m'arrive souvent d'avoir Ă  changer de scu pour dessiner.

Sauf que changer de scu en cliquant sous le viewcube, c'est long et je n'aime pas. 😒

 

Est-ce possible de faire cela avec une fonction que je pourrais activer avec un alias?

Avec par exemple un alias pour chaque fonction, chacune étant afférente à un scu bien particulier.

 

Merci de vos retours,

 

RĂ©mi

Link to post
Share on other sites

Salut,

Tu parles de SCU (systÚme de coordonnées) ou de vues ? Parce que le ViewCube, comme son nom l'indique, c'est pour changer de vue.

Pour changer de vue (orthogonales et iso), tu peux utiliser le LISP vues_pavé sur cette page.

Gilles Chanteau - gileCAD -
DĂ©veloppements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Link to post
Share on other sites

Bonjour,

Perso, j'ai personnalisé mon ruban avec la liste déroulante prévu en natif dans Autocad.
y8tr.jpg

Son petit nom "ContrÎle de liste déroulante SCU nommé"

www.cad-is.fr
Autocad Map 2018 - Covadis/Autopiste V17.0d - Mensura Genius V8
Nous n’hĂ©ritons pas de la Terre de nos ancĂȘtres, nous l’empruntons Ă  nos enfants
Link to post
Share on other sites

Hello - https://gilecad.azurewebsites.net/Lisp.aspx

Vues_pavé : Les vues prédéfinies avec le pavé numérique
commandes : 0 (Bas), 1 (Isométrie sud Ouest), 2 (Avant), 3 (Isométrie sud Est), 4 (Gauche), 5 (Haut), 6 (Droite), 7 (Isométrie Nord Ouest), 8 (ArriÚre), 9 ( Isométrie Nord Est)

Cela devrait se nommer "Le Pave Gilles" !

La Sante, Bye, lecrabe (triste & fatigue)

 

Autodesk Expert Elite Team

Link to post
Share on other sites

Bonjour, 

Merci pour vos retours rapides et efficaces.

 

Je parle bien du SCU !

Le lisp de Gile est gĂ©nial, existe-t-il pour les SCU? 😀

Avec par exemple une liste de SCU prédéfinie dans le lisp.

 

RĂ©mi

Link to post
Share on other sites

Yes j'ai regardé, c'est pas mal la liste déroulante en personnalisation du ruban !

 

Par contre je ne sais qu'utiliser les lisp, pas les créer, et vba je ne sais l'implémenter que sur Excel.

 Et clairement niveau timing, là je n'ai pas le temps de regarder ^^

Link to post
Share on other sites

ben tu veux faire quoi en faite ?

Car si tu veux toujours les meme SCU sur certains de tes dessins c'est la solution LA LOZERE via un gabarit

Si tes scu sont toujours différents c'est donc manuel...

donc ?

PS :

Quote

vba je ne sais l'implémenter que sur Excel.

La tu te trompe !

Si tu fais du VBA excel tu sais potentiellement faire du VBA sur autocad !

La seul difference c'est qu'au lieu d'avoir des plages : tu auras des objets avec des propriétés !

d'ailleurs une plage est un objet... et tu agit sur des propriétés : value... interior.color ... etc... ben autocad c'est pareil mais c'est plus des plages c'est tout ^^

 

Link to post
Share on other sites

Je veux en effet avoir diffĂ©rents scu, dont le nom est bien connu, qui seront les mĂȘmes dans plusieurs fichiers, mais je souhaite changer de scu au clavier, pas Ă  la souris.

 

Oui je pense bien avoir une base vba et avoir la possibilitĂ© de passer sans trop de difficultĂ©s sur AutoCAD, mais lĂ  je suis sur un rush de projet et je n'ai pas le temps de regarder ça avant 2 mois 😕

Link to post
Share on other sites

Je doute que tu puisses avoir plus rapide que 2 clics pour changer de SCU Ă  ta guise perso'...
Tu peux accéder à cette liste déroulante à de nombreux endroits de ton espace de travail :

  1. Au-dessous du ViewCube
  2. Depuis le ruban comme l'a montré La LozÚre
  3. Depuis un raccourci de commande situé dans la barre d'outils "SCU II"
  4. Si tu ne veux pas utiliser la souris, alors je suppose qu'une simple macro de la commande SCU fera l'affaire

Je peux te proposer ceci au besoin pour t'Ă©pargner l'Ă©criture du nom du SCU pour le remplacer par un nombre en fonction de sa position dans la liste des SCU :

(defun c:QSCU (/ lst i n)

	(defun SymbolTable->list (name / tbl lst)

		(if (not
			(vl-catch-all-error-p
				(setq tbl
					(vl-catch-all-apply
						'tblnext
						(list name T)
					)
				)
			)
		    )
			(while tbl
				(setq lst (cons (cdr (assoc 2 tbl)) lst)
				      tbl (tblnext name)
				)
			)
		)
		lst

	)

	(initget 5 "?")
	(setq lst (SymbolTable->list "UCS"))
	(while (/= (type (setq i (getint "\nChoose the UCS number [?] : "))) 'INT)
		(setq n 0)
		(prompt	(strcat	"\nUCS list : "
				(apply 'strcat (mapcar '(lambda (u) (strcat "\n" (itoa (setq n (1+ n))) ". " u)) lst))
			)
		)
	)
	(cond
		((= 0 i)
			(command "_UCS" "")
		)
		
		((<= i (length lst))
			(command "_UCS" "_Name" "_Restore" (nth (1- i) lst))
		)
	)
	(princ)

)

Donc en terme de retour c'est relativement simple :

Quote

Commande: QSCU
Choose the UCS number [?] : ?
UCS list :
1. Centrale PV
Choose the UCS number [?] : 1

Bisous,
Luna

Link to post
Share on other sites

De fait le clic est assez rapide, mais j'ai une souris avec des boutons personnalisables et je peux ainsi activer des commandes en un clic de souris, ce qui bat tous les records de vitesse. 😉

 

Ton lisp est trÚs intéressant Luna.

 

Je suppose qu'il doit pouvoir faire ce que je cherche, mais je ne saurai le modifier pour... Quelle partie de ton code permet de définir le scu courant?

 

Ce que je cherche :

Dans mes plans j'ai deux scu, intitulés "Gauche", et le SCG. Je souhaite avoir deux lisps, chacun ayant son propre alias clavier (ou raccourci clavier, peu importe car je peux paramétrer ma souris pour les deux) et correspondant, l'un au scu "Gauche" et l'autre au scg.

 

J'ai donc juste besoin, dans le lisp (ou macro), de définir le nom du scu qui doit devenir courant en activant la commande correspondante.

 

Link to post
Share on other sites

Bonjour,

 

tu as des changements de vue ?

Pour ma part je navigue entre le scu général et le scu vue en tapant simplement "SG" ou "SV" et ça me suffit.

Il est aussi possible d'écrire un bout de code qui te changera automatiquement dans le scu nommé "Gauche" automatiquement comme l'exemple précédant en forçant un nom de scu fixe.

 

Amicalement.

Link to post
Share on other sites

Mon programme permet simplement de ne pas utiliser la souris pour choisir le SCU. En supposant que tu as une liste de SCU comme ceci :

  1. Gauche
  2. Droite
  3. Test
  4. SCU1
  5. SCU2

Si tu connais par coeur ta liste de SCU alors tu peux directement saisir QSCU suivi de 1 (= Gauche) ou 2 (= Droite), etc ou 0 (= SCG). Autrement dit tu as 2 saisies clavier (1 pour lancer la commande QSCU, 1 autre pour choisir le SCU Ă  activer). Ce programme rĂ©pond en parti Ă  ton soucis mais permet d'ĂȘtre plus "gĂ©nĂ©raliste" sur son utilisation.

Pour ton cas trÚs précis, une simple macro suffit (je ne suis pas douée en macro) car c'est une simple utilisation de commande avec une donnée précise... En lisp on peut faire chat, mais il n'y a pas de vérification sur l'existence d'un soit-disant SCU nommé "Gauche" (ou "Droite") !!
 

(defun c:SCU-Gauche ()

	(command "_UCS" "_Name" "_Restore" "Gauche")
	(princ)

)

(defun c:SCU-Droite ()

	(command "_UCS" "_Name" "_Restore" "Droite")
	(princ)

)

AprÚs tu affectes la commande comme bon te semble mais si le SCU "Gauche" ou le SCU "Droite" n'existe pas, cela va générer une erreur et tu devras quitter la commande manuellement !!! (vl-catch-all-apply) ne fonctionne pas sur la fonction (command)

Bisous,
Luna

Link to post
Share on other sites

Top, merci Luna !

J'ai transcris ton script en macro, ça posera sûrement moins de souci en cas d'inexistence du SCU.

 

Ca donne ça :

^C^C_UCS _Name _Restore "Gauche"

 

Et avec un raccourci clavier, attribuĂ© Ă  ma souris, un simple clic sous le doigt suffit Ă  changer de scu en 20 ms 🙂

 

Merci beaucoup !

Link to post
Share on other sites

Que se soit en LISP ou sous forme de macro, si le SCU n'existe pas, tu auras une erreur, mais bon le principal c'est que cela fonctionne correctement chez toi !

Bisous,
Luna

Link to post
Share on other sites

J'aie l'impression d'avoir loupé une sacré grosse marche : il est possible de lancer une macro comme on lance un alia clavier ?????

C'est l'une des raisons pour lesquelles je me suis orienté LISP et aie complétement ignoré les macros : je n'aie jamais réussit à lancer une macro autrement que via un bouton ou une palette d'outil, tout deux nécessitant l'usage de la sourie, contrairement aux LISP pour lesquelles il est trÚs simple et rapide de leur attribuer un alias qui nous convienne.

Je suis dysorthographique alors lùchez-moi les basques avec ça, je fait déjà de mon mieux.
Membre d'Extinction Rebellion, car pour sauver le monde il n'est jamais trop tard, amour et rage !
Pour écrire un vraie point médian (e·x·e·m·p·l·e) [Alt + 0183] ou ajout d'un raccourci clavier personnalisé (ex. [AltGr + ;])

Utilisateur d'AutoCAD 2018 sous Windows 10

Link to post
Share on other sites
Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...