Aller au contenu

demande d\'information pour débutants


Messages recommandés

Posté(e)

Bonjour à tous :cool: ,

Ce la fait lontemps que je ne suis pas venu sur le site par manque de temps,dsl.

Certaines personnes m'ont vu sur le forum LISP mais je me lance aussi en VBA qui m'a l'air un peu compliquer pour le moment.

Je voudrais savoir comment créer un bloc dans Autocad en VBA? Et existe-t-il une commande qui permet de calculer directement la distance entre 2 points? :(

Dans la documentation que j'ai pu trouver voila ce que j'ai trouver pour la création de bloc:

 

***********************************************************************

sub exemple()

 

dim ptBase as double

dim bloc as acadblock

NomBloc as string

 

ptbase(0)=0 : ptbase(1)=0

set bloc= ThisDrawing.Block.Add (Ptbase,NomBloc)

 

end sub

***********************************************************************

Voila on a définit le bloc, ok, mais comment rajouter les éléments pour le mettre dans ce bloc qui est vide pour le moment.

J'attend vos réponse avec impatience car je suis vraiment coincé pour le moment!!

Merçi

Bye

Posté(e)

Salut ssd91, je te répond par le forum carje n'arrive pas a t'envoyer un message privé

 

je ne pourrais pas t'aider je n'y connais rien en VBA, vraiment désolé

 

 

CCAD la DAO au service de l'Energie - http://c.cad.free.fr

  • 2 semaines après...
Posté(e)

salut

à mon tour de m'excuser pour mes absences :(

mais la vie est surtout faîte de BOULOT :casstet:

je n'ai pas compris ce que tu veux faire à propos du bloc

faut il CREER UN BLOC, en choisisant des entités

ou INSERER UN BLOC existant sur le disque ou dans le fichier ?

quant à ton calcul de distance il est résolu ci après :

 

dim point1 as variant

dim point2 as variant

Dim x As Double, y As Double, z As Double

Dim dist As Double

 

point1 = ThisDrawing.Utility.GetPoint (, vbCrLf & "Premier point : ")

point2 = ThisDrawing.Utility.GetPoint (point1, vbCrLf & "Second point: ")

x = point1(0) - point2(0)

y = point1(1) - point2(1)

z = point1(2) - point2(2)

dist = Sqr((Sqr((x ^ 2) + (y ^ 2)) ^ 2) + (z ^ 2))

 

amicalement

 

Posté(e)

Salut,

 

 

pour répondre à ton probleme concernant la création d'un bloc :

 

set objBloc = thisdrawing.blocks.Add(point d'insertion, nom du bloc)

 

Pour créer des entités dans un bloc :

 

objBloc.addline Pt1, Pt2 .... par exemple

 

Par ex si dessous un prog que j'ai choper d'un un boucain :

 

Public Sub BlocParking()

dim objBloc as acadBlock

dim objcarre as acadLWPolyline

Dim objTexte as acadText

dim PtInsert(0 to 2) as double

dim PtCarre(0 to 9) as double

PtInsert(0) = 5: PtInsert(1) = 5: Ptinsert(2) = 0

PtCarre(0) = 0: ptCarre(1) = 0

PtCarre(2) = 0: ptCarre(3) = 10

PtCarre(4) = 10: ptCarre(5) = 10

PtCarre(6) = 10: ptCarre(7) = 0

PtCarre(8) = 0: ptCarre(9) = 0

Set objBloc = thisdrawing.blocks.Add(PtInsert, "Parking")

Set objcarre = oblBloc.AddLightWeightPolyline(PtCarre)

objCarre.Closed = True

objCarre.ConstantWidth = 0.5

set objTexte.Alignment = acAlignmentMiddle

objTexte.textAlignmentPoint = PtInsert

objTexte.Color = acBlue

End sub

 

 

Voilà pour te servir....

 

En revanche comme je te l'expliquai, c'est sur un coucain, j'ai donc tout retaper, il se peut qu'il y est une erreur de frappe, j'ai regardé mias on n'est jamais à l'avri :D

 

 

 

 

Le DOC

  • 3 mois après...
Posté(e)

Je suis vraiment désolé mais je n'ai pas pu venir sur le site depuis lontemps...à cause du BOULOT.

Je vous remercie pour vos réponse didier et dr.loveless. Je vais essayé ce soir et je vous tiens au courant au plus vite.

Encore merçi et à bienôt.

Amicalement

 

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é