sail
Membres-
Compteur de contenus
25 -
Inscription
-
Dernière visite
sail's Achievements
Newbie (1/14)
0
Réputation sur la communauté
-
merci de t'etre penché sur le probléme méme si il n'est pas résolu . Je continu mes investigations sur le net . Merci Sail
-
bonjours à tous Comment puis-je appeler une macro en tapant une lettre au clavier ? Le meme principe que ctrl+lettre mais sans le ctrl . On ma parler du fichier PGP mais je n'y comprend pas grand chose . Merci Sail
-
OK winfield ,je suis enfin arrivé à mes fins merci a+
-
decidement je ne dois pas etre en forme en ce moment car je n'arrive pas obtenir le bon prog. J'ai suivi tes instructions mais une fois que j'ai choisi mon bloc ,je l'insere autant de fois que ma boucle tourne . Une fois que cette boucle tourne je ne peux plus intervenir dedans pour changer de bloc . Es ce que je fais une erreur de syntaxe ? je te livre mon code . Private Sub APERCUBLOC_Click() DI.Hide Dim I As Integer On Error Resume Next ' Define the valid keywords Dim keywordList As String keywordList = "1Bloc 2Bloc 3Bloc" ' Call InitializeUserInput to setup the keywords ThisDrawing.Utility.InitializeUserInput 128, keywordList ' Get the user input Dim returnPnt As Variant '---------------------------------------------------------------- 'a adapter en fonction de la boucle '---------------------------------------------------------------- For I = 0 To 5 '---------------------------------------------------------------- 'Mettre une boucle '---------------------------------------------------------------- returnPnt = ThisDrawing.Utility.GetPoint(, "Enter a point(1Bloc/2Bloc/3Bloc): ") If Err Then If StrComp(Err.Description, "La saisie utilisateur est un mot clé", 1) = 0 Then ' One of the keywords was entered Dim inputString As String Err.Clear inputString = ThisDrawing.Utility.GetInput MsgBox "You entered the keyword: " & inputString '---------------------------------------------------------------- 'Ton code pour l'insertion des blocs en fonction du mot clé par ex avec Select Case '---------------------------------------------------------------- Select Case inputString Case "1" Dim T As AcadBlockReference Dim PTI As Variant Dim Z As String PTI = ThisDrawing.Utility.GetPoint(, "point d'insertion du bloc ?") Z = "001DAI.dwg" Set T = ThisDrawing.ModelSpace.InsertBlock(PTI, "C:\DID\DAI\" & Z, 1, 1, 1, 0) Case "2" Dim T1 As AcadBlockReference Dim PTI1 As Variant Dim Z1 As String PTI1 = ThisDrawing.Utility.GetPoint(, "point d'insertion du bloc ?") Z1 = "002DAI.dwg" Set T1 = ThisDrawing.ModelSpace.InsertBlock(PTI1, "C:\DID\DAI\" & Z, 1, 1, 1, 0) Case "3" Dim T3 As AcadBlockReference Dim PTI3 As Variant Dim Z3 As String PTI3 = ThisDrawing.Utility.GetPoint(, "point d'insertion du bloc ?") Z3 = "003DAI.dwg" Set T3 = ThisDrawing.ModelSpace.InsertBlock(PTI3, "C:\DID\DAI\" & Z, 1, 1, 1, 0) End Select '------------------------------------------------------------------------------------ Else MsgBox "Error selecting the point: " & Err.Description Err.Clear End If Else ' Display point coordinates MsgBox "The WCS of the point is: " & returnPnt(0) & ", " & returnPnt(1) & ", " & returnPnt(2) End If '---------------------------------------------------------------- 'Fin de la boucle '---------------------------------------------------------------- Next I End Sub merci pour une eventuelle reponse sail
-
salut winfield malgre l'exemple je n'y arrive pas . Si tu pouvais me livrer un code clé en main se serait sympa . merci d'avance sail
-
merci winfield pour ton aide mais j'ai du mal à comprendre "InitializeUserInput" peux-tu m'ecrire un petit programme qui par exemple quand je tape "e" m'insere un bloc1 quand je tape "f" m'insere le bloc2 et quand je tape "g" m'insere le bloc3 et tant que je n'ai pas taper "entree" je continu à inserer mes blocs . je te remerie d'avance sail Un programmeur du dimanche .
-
Ce n'est pas tout à fait ca . Avec un petit exemple cela va etre plus clair Imaginons un programme qui m'insere un blocs tous les 10 cm selon x . je voudrais par exemple en tapant "e" sur le clavier au cour du deroulement du progamme que mon bloc soit insere tous 20 cm . cela est il possible merci sail
-
salut à tous Une petite question : comment puis-je faire pour appeler une routine ou intevenir dans un programme en cour d'execution en tapant sur le clavier "r" par exemple . Je sais que cela est possible en lisp . merci Sail
-
salut tous le monde Pas la peine de me repondre , j'ai trouvé la solution à l'aide de "GetBoundingBox" a+ sail
-
rebonjour Merci pour ta réponse , mais cela ne fonctionne pas . Que ma ligne coupe le bloc ou pas cela me retourne "oui" . Je vais aller plus loin dans mon explication . Dans mon dessin j'ai x blocs(bloc1) . Chaque bloc(bloc1)est relié ou pas à un autres bloc(bloc2) par une spline .Mon but est en un clic de souris de lister tous mes blocs dans une listebox (une colonne avec le nom du bloc1et une deuxieme colonne qui m'indique si se bloc1 est relié au bloc2 .). Je pense que par la methode "IntersectWith" cela est possible .Sachant que je peux avoir plus de cent blocs dans mon dessin il serait trop long de cliquer à chaque fois sur la spline . Si quelqu'un à une idée ? Merci Sail
-
Bonjour à tous Voici mon probléme : Je voudrais savoir si une ligne touche ou traverse mon bloc .J'ai créé une routine qui ne fonctionne pas . Pourquoi ? Private Sub CommandButton1_Click() Dim OBJET As AcadEntity Dim IntCodeDXF(0) As Integer Dim ValCodeDXF(0) As Variant Dim bloc As AcadBlockReference Dim line As AcadLine Dim objJeu As AcadSelectionSet DI.Hide Set objJeu = ThisDrawing.SelectionSets.Add("Jaax") IntCodeDXF(0) = 0: ValCodeDXF(0) = "INSERT" objJeu.SelectOnScreen IntCodeDXF, ValCodeDXF For Each OBJET In objJeu Set bloc = OBJET If bloc.IntersectWith(line, acExtendNone) = True Then MsgBox "oui" Else MsgBox "non" End If Next objJeu.Delete End Sub Si quelqu'un a une solution . Merci sail
-
salut punky0149 Avec cint cela ne marche pas , en revenche avec cdbl cela fonctionne bien merci pour tout a+ sail
-
Je n'ai pas msn . Je crois que j'ai trouve la solution . En fait il me retourne bien un nombre mais celuis le plus proche de 9 . Pour le prog le 25 par exemple, il le place entre 2 et 3 .Par contre si je mets un 0 devant 1 ou 2 ....9 ,effectivement il me retiendra le 25 .Comment faire pour eviter ce probleme de 0 . merci sail
-
Je vais te donner un exemple ce sera plus explicite . Mon bloc 248UNI est inceré X fois dans mon dessin en l'occurence il est incere 3 fois dans cet exemple.Il comporte plusieurs attributs . Ex : bloc n°1 248UNI(valeur de l'attribut n° 1: 10) (valeur de l'attribut n° 2: 11) (valeur de l'attribut n° 3: 15) bloc n°2 248UNI(valeur de l'attribut n° 1: 5) (valeur de l'attribut n° 2: 8) (valeur de l'attribut n° 3: 25) bloc n°3 248UNI(valeur de l'attribut n° 1: 1) (valeur de l'attribut n° 2: 12) (valeur de l'attribut n° 3: 13) Dans ce cas la , en listant tous les attributs des blocs 248UNI , je veux afficher la valeur 25. En faite cela est une petite partie de mon prog et cette fameuse valeur conditionne la suite de ma routine . Merci d'avance PUNKY 0147 Sail
