dens40 Posté(e) le 28 avril 2005 Posté(e) le 28 avril 2005 Bonjour, Comment inserer un block en le gardant accroché au curseur. On peut ainsi voir comment sera inseré le block en prévisualisation. Merci d'avance
BIM G CO Posté(e) le 28 avril 2005 Posté(e) le 28 avril 2005 (command "_-insert" (getvar "VIEWCTR") ; ou pause EchelleXdefini ; ou pause EchelleXYdefini ; ou pause Rotation prédéfinie ; ou pause) si tu n'as pas fais de pause (command "_move" (entlast) (getvar "VIEWCTR") pause) et/ou (command "_rotate" (entlast) (getvar "VIEWCTR") pause)...... ah zut j'ai pas vu que c'était en VB et VBA...... [Edité le 28/4/2005 par Maximilien] 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
Invité Patrick Posté(e) le 28 avril 2005 Posté(e) le 28 avril 2005 Un simple Thisdrawing.sendcommand "INSERER" ...etc suffit? Ou j'ai pas bien compris la question?
smellems Posté(e) le 28 avril 2005 Posté(e) le 28 avril 2005 Dans VBA pour incérer un block c'est avec la commande suivante: ThisDrawing.ModelSpace.InsertBlock(InsertionPoint, Name, XScale, YScaler, ZScale, Rotation) tu n'auras pas la chance de faire une prévisualisation, mais tu peux spécifier exactement le point d'insertion (InsertionPoint). si tu veux pouvoir le placé toi même la technique de Patrick est bonne mais tu devras choisir ton block manuellement. la meilleur façon c'est le InsertBlock... est-ce que ça aide??? :cool:
Pako Posté(e) le 28 avril 2005 Posté(e) le 28 avril 2005 Effectivement smellems, En VBA, on utilise la méthode InsertBlock, mais lorsqu'on clique un point pour créer le InsertPoint et Rotation, on ne peux pas voir (en prévisualisation) notre block, accroché au curseur. Voici un exemlpe, qu'on veux reproduire en VBA. Pour cette exemple, il faut créer un block nommé "carre" dans votre dessin. (defun c:CARRE () (setvar "cmdecho" 0) (command "INSERT" "carre" pause "" "" pause ) (setvar "cmdecho" 1) ) Merci à l'avance ! l'ACADien ! http://img124.exs.cx/img124/7999/start.gif
Invité Patrick Posté(e) le 28 avril 2005 Posté(e) le 28 avril 2005 si tu veux pouvoir le placé toi même la technique de Patrick est bonne mais tu devras choisir ton block manuellement Pourquoi manuellement? Il suffit d'en préciser le nom en donnant une variable à Sendcommand, genre: sendcommand "INSERER " & nomdubloc ...etc
dens40 Posté(e) le 29 avril 2005 Auteur Posté(e) le 29 avril 2005 Bonjour et merci pour toutes vos réponses J'ai essayé la commande Thisdrawing.sendcommand "_-insert" & VbCr & NomduBlock & VbCr effectivement ça marche mais lorsque je clique pour inserer le block, il me demande de rentrer l'échelle, l'angle de rotation. Comment faire pour n'avoir qu'à cliquer le point d'insertion et c'est tout Merci d'avance pour votre aide
Pako Posté(e) le 29 avril 2005 Posté(e) le 29 avril 2005 Ho ! Grand Manitou ! [surligneur]Pourquoi ça marche pas :[/surligneur] Public Sub INSERT_EXEMPLE() ....Dim nomBlock As String....Dim pointInsert As Variant....Dim rotInsert As Variant ....pointInsert = ThisDrawing.Utility.GetPoint(, "ENTRER LE POINT D'INSERTION")....rotInsert = ThisDrawing.Utility.GetAngle(pointInsert, "ENTRER L'ANGLE (1 pt.)")....nomBlock = "carre" ....[surligneur]ThisDrawing.SendCommand "_-insert" & vbCr & nomBlock & vbCr & pointInsert & vbCr & "1" & vbCr & "1" & vbCr & rotInsert & vbCr [/surligneur] End Sub l'ACADien ! http://img124.exs.cx/img124/7999/start.gif
Invité Patrick Posté(e) le 30 avril 2005 Posté(e) le 30 avril 2005 Sendcommand marche à 100% quand on fournit à la commande ce qu'elle attend, c'est à dire une commande AutoCAD, et je doute qu'un variant VBA soit quelque chose que la ligne de commande connaisse... Il faut évidemment spécifier le point d'insertion du bloc comme on le ferait à la ligne de commande, en utilisant par exemple le point comme séparateur décimal et non pas la virgule. J'utilise cette méthode sans jamais avoir eu aucun problème, le LISP n'est pas nécessaire. ;)
Pako Posté(e) le 1 mai 2005 Posté(e) le 1 mai 2005 Merci Pat, pour ton aide ! Si je convertie les points(Variant) en String et Replace les ",' par des "." , ça fonctionne !Mais je ne vois pas plus (en prévisualisation) mon block lors de la saissi du point d'insertion !Étant donné que la saissi est faite avant la commande "_-insert" et non pendant comme en LISP ........ Chu ! bogué :( Ho Grand Manitou ! [Edité le 1/5/2005 par Pako] l'ACADien ! http://img124.exs.cx/img124/7999/start.gif
Invité Patrick Posté(e) le 1 mai 2005 Posté(e) le 1 mai 2005 Je ne comprends pas bien ton problème: soit tu insères un bloc en lui fournissant par programmation son point d'insertion et dans ce cas tu n'as pas besoin de voir ce bloc dynamiquement puisque c'est le programme qui l'insère, soit tu ne fournis pas de point d'insertion et tu vois ton bloc.
timhothels Posté(e) le 2 mai 2005 Posté(e) le 2 mai 2005 vas voir dans le post: Insertion de bloc grace a vb J'ai mis un code complet permettant d'inserer des blocs.
Pako Posté(e) le 2 mai 2005 Posté(e) le 2 mai 2005 Merci timhothles, Le problème n'est pas l'insertion du block, mais la prévisualisation du block lors de la sassi du point d'insertion (voir mon exemple en LISP, ci-haut). SendCommand ça fonctionne ! Mais avec la méthode InsertBlock, peut-on arriver au même résultat ? Merci à vous tous ! [Edité le 2/5/2005 par Pako] l'ACADien ! http://img124.exs.cx/img124/7999/start.gif
Apollo Posté(e) le 27 novembre 2006 Posté(e) le 27 novembre 2006 Bonjour à tous, je suis début en VBA et j'ai fait un petit prog qui m'insert des blocs avec les cmd "GetPoint" et "InsertBlock", jusque là j'ai pas eu de problème. Mais je souhaite que l'utilisateur puisse avoir l'aperçu du bloc accroché au curseur pour le choix du point d'insertion et la rotation uniquement. Donc j'ai remplacer "InserBloc" par la combinaison de "SendCommand" et "-_Inserer", et la c'est la galère car j'ai un truc qui cloche : - Soit ça marche en spécifiant des paramètres supplémentaires, avec cette cmd "ThisDrawing.SendCommand "_-insert" & vbCr & "NomBloc" - soit ça marche pas avec cette syntaxe ThisDrawing.SendCommand "_-insert" & vbCr & "NomBloc" & vbCr & "" & vbCr & 1 & vbCr & 1 & vbCr & "" Formulé autrement, au cas ou je m'exprime mal, je souhaite que l'utilisateur est la preview du bloc à l'insertion, qu'il clique pour choisir le Point d'insertion, qu'il choisisse la rotation à la souris avec preview, et que les autres paramètres soient une valeur fixe.alors qu'en ligne de cmd ça marche ! quelqu'un peut éclairer ma lanterne, car je patine grave ! Merci[Edité le 27/11/2006 par Apollo] [Edité le 27/11/2006 par Apollo]
Messages recommandé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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant