Aller au contenu

sechanbask

Membres
  • Compteur de contenus

    1 013
  • Inscription

  • Dernière visite

Tout ce qui a été posté par sechanbask

  1. P.S. On peut redimensionner des tableau avec redim... au cas ou tu en aies besoin.
  2. c'est quoi le lisp ASAP ??
  3. as-tu finalement réussi à faire ton filtre ?
  4. Bonjour, comme je suis fou (merci fisacad) j'ai commencé à créer une commande pour me tracer de la gaine souple... ça marche mais y'a des améliorations à apporter : 1 : ça fonctionne si le dessin est en millimètre, en centimètre en mètre mais pas sur tout les postes. Sur certains postes je ne peux pas dessiner la gaine si le plan est en mètre... si quelqu'un pouvait m'aider... 2 ajuster automatiquement la gaine et la faire partir avec une tangente = à la direction de la gain circulaire rigide précédemment dessinée 3 faire en sorte que ça marche quelque soit le SCU, SGC 4 faire un bloc à la fin de l'opération en ajoutant un attribut invisible avec la longueur (pour cumuler la quantité de gaine 5 si possible que la commande me prépare un thé à chaque gaine réussie (donc à chaque gaine.. car j'en ai marre d'avoir soif, là faute à fisacad ! ) Dim color As AcadAcCmColor Dim newlayer2 As AcadLayer Dim linetypeName1 As String Public coef As Double Dim actlayer As String Sub Gaine_souple() Dim splineObj As AcadSpline Dim splineObj1 As AcadSpline Dim splineObj2 As AcadSpline Dim startTan(0 To 2) As Double Dim endTan(0 To 2) As Double Dim pins As Variant Dim diametre As Double Dim fitPoints(0 To 8) As Double Dim unitvar As String Dim coef As Double Dim coeftypeline As Double 'On Error GoTo gserror unitvar = ThisDrawing.GetVariable("INSUNITS") Select Case unitvar Case 4 '(millimètre) coeftypeline = 1 coef = 1 Case 5 '(centimètre) coef = 0.1 coeftypeline = 0.1 Case 6 '(mètre) coef = 0.001 coeftypeline = 0.0005 Dim nombre2zéro As Integer nombre2zéro = 4 Dim variable As String variable = "LUPREC" ThisDrawing.SetVariable variable, nombre2zéro End Select diametre = ThisDrawing.Utility.GetReal("Veuillez indiquer le diamètre de la gaine en mm : ") diametre = diametre * coef calque_tout startTan(0) = 0: startTan(1) = 0: startTan(2) = 0 endTan(0) = 0: endTan(1) = 0: endTan(2) = 0 pins = ThisDrawing.Utility.GetPoint(, vbCrLf & "premier point:") fitPoints(0) = pins(0): fitPoints(1) = pins(1): fitPoints(2) = 0 pins = ThisDrawing.Utility.GetPoint(, vbCrLf & "deuxième point:") fitPoints(3) = pins(0): fitPoints(4) = pins(1): fitPoints(5) = 0 pins = ThisDrawing.Utility.GetPoint(, vbCrLf & "troisième point:") fitPoints(6) = pins(0): fitPoints(7) = pins(1): fitPoints(8) = 0 ' pins = ThisDrawing.Utility.GetPoint(, vbCrLf & "quatrième point:") ' fitPoints(9) = pins(0): fitPoints(10) = pins(1): fitPoints(11) = pins(0) 'pins = ThisDrawing.Utility.GetPoint(, vbCrLf & "quatrième point:") 'fitPoints(8) = pins(0): fitPoints(9) = pins(1) 'pins = ThisDrawing.Utility.GetPoint(, vbCrLf & "quatrième point:") 'fitPoints(10) = pins(0): fitPoints(11) = pins(1) Set splineObj = ThisDrawing.ModelSpace.AddSpline(fitPoints, startTan, endTan) With splineObj .Layer = actlayer .Linetype = "ZIGZAG" .LinetypeScale = coeftypeline .Update End With 'On Error Resume Next Dim offsetvar As Variant 'diametre = 2 offsetvar = splineObj.Offset(diametre / 2) offsetvar = splineObj.Offset(-diametre / 2) newlayer2.Linetype = "AXES" With splineObj .Layer = actlayer & "-A" .LinetypeScale = 1 * coef .Linetype = linetypeName1 .Update End With Exit Sub gserror: Select Case Err.Number Case "-2145386493" MsgBox "La gaine ne peut pas s'afficher car les unités de votre fichier (définies dans Fromat- Contrôles des unités ou ligne de commande UNITS) ne correspondent pas aux unités de votre plan." Case "-2147352567" ThisDrawing.Utility.Prompt "Annulée par l'utilisateur." Case Else Debug.Print Err.Number, Err.Description ThisDrawing.Utility.Prompt "Une erreur inconnue est survenue, veuillez contacter le développeur." End Select End Sub Function calque_tout() Dim newlayer1 As AcadLayer Dim linetypeName As String Dim trouve As Boolean Dim var As String Dim fichier1 As String Dim soulayer As ACAD_LAYER Dim layers As AcadLayers actlayer = ThisDrawing.ActiveLayer.Name Set newlayer1 = ThisDrawing.layers.Add(actlayer) 'Set color = AcadApplication.GetInterfaceObject("AutoCAD.AcCmColor.16") 'Call color.SetRGB(80, 100, 244) 'For Each soulayer In layers 'if actlayer & "A" like 'Next Set newlayer2 = ThisDrawing.layers.Add(actlayer & "-A") linetypeName = "ZIGZAG" Dim entry As AcadObject For Each entry In ThisDrawing.Linetypes If StrComp(entry.Name, linetypeName, 1) = 0 Then 'MsgBox linetypeName & " a été trouvé dans dessin actif." trouve = True Exit For Else End If Next If trouve = False Then var = ThisDrawing.GetVariable("MEASUREMENT") If var = 0 Then ThisDrawing.SetVariable "MEASUREMENT", 1 var = ThisDrawing.GetVariable("MEASUREMENT") 'MsgBox "Le système des unités est initialisé en unités S.I." End If fichier1 = "acadiso.lin" ThisDrawing.Linetypes.Load linetypeName, "acadiso.lin" 'MsgBox "trouvé dans fichier..." Else End If trouve = False linetypeName1 = "AXES" For Each entry In ThisDrawing.Linetypes If StrComp(entry.Name, linetypeName1, 1) = 0 Then 'MsgBox linetypeName & " a été trouvé dans dessin actif." trouve = True Exit For Else End If Next If trouve = False Then var = ThisDrawing.GetVariable("MEASUREMENT") If var = 0 Then ThisDrawing.SetVariable "MEASUREMENT", 1 var = ThisDrawing.GetVariable("MEASUREMENT") 'MsgBox "Le système des unités est initialisé en unités S.I." End If fichier1 = "acadiso.lin" ThisDrawing.Linetypes.Load linetypeName1, "acadiso.lin" 'MsgBox "trouvé dans fichier..." Else End If 'MsgBox "le calque NOM DU CALQUE a pour type de ligne : " & linetypeName End Function
  5. salut, j'ai trouvé ça pour toi :http://silkyroad.developpez.com/VBA/ListView/ plus précisément : Private Sub CommandButton1_Click() Dim objShell As Object, objFolder As Object, oFolderItem As Object Dim Chemin As String 'récupère le nom du répertoire sélectionné Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire", &H1&) On Error Resume Next Set oFolderItem = objFolder.Items.Item Chemin = oFolderItem.Path If Chemin = "" Then Exit Sub End If ElementsRepertoire Chemin End Sub [Edité le 3/10/2007 par sechanbask]
  6. Avis au lispeurs et réacteurs : peut-on donner une valeur de type formule à la propriété de rotation d'un attribut. personnellement, je souhaiterais que mon attribut ne suive pas la rotation d'un bloc mais pour qu'il reste parallèle au SCU : je voudrais que l'attribut prenne comme rotation : -%<\AcObjProp.16.2 Object(?BlockRefId,1).Rotation>% mais j'arrive à savoir comme je donne à la rotation dynamique cette formule...
  7. Help
  8. Je ne comprend pas trop ta question : mais tant que j'ai pas réponse de mes patrons, je ne peux pas trop divulguer de code. Cependant, je te donne l'algorithme pour de la gaine circulaire galva normalisée auquel j'ai pensé: -Je demande à l'utilisateur le diamètre de la gaine. -puis je lui demande le premier point -et le second, là je lui donne le choix, poursuivre, ou faire une réduction _s'il poursuit, je lui demande un autre point -si le point n'est pas aligné avec les 2 autres: _l'angle est normalisé alors insertion d'un bloc représentant le coude. _lui dire que ce point n'est pas valable (il pourra le forcer ou un prendre en donner un autre) - si le point est aligné ok on rajoute un point dans la polyligne _s'il s'arrête il pourra insérer une réduction et repartir avec la bonne dimension* etc... Pour l'instant, seul le * est fait avec tous les angles possible (pour gérer l'angle d'insertion de la réduction) et les échelle de dessin mm, cm m ....mais comme je suis fou, je V continuer... je souhaiterais rapidement faire de la gaine souple pour tous les angles et SCU car fisacad merde à mort avec les SCU non généraux. Mais je suis coincé ici (un de mes collègues a des plans en mètre et ma gaine souple pour l'instant ne s'adapte pas à cette unité à cause de ça:): http://www.cadxp.com/modules.php?op=modload&name=XForum&file=viewthread&tid=16794#pid67578 P.S. j'ai également fais les impacts (vu coupé du tube, gaine et gaine rectangulaire) l'impact de la gaine rectangulaire est même adapté à tous les SCU... et je suis en train de passer tous mes projets d'insertion avec la même méthode pour garantir à l'utilisateur une fonction tout terrain... P.S. j'ai un bêta testeur personnel très performant, mais qui sature un peu de bêta tester c'est pourquoi j'aimerais rendre mon code publique... [Edité le 30/9/2007 par sechanbask]
  9. je testerais ça au boulot... merci
  10. sechanbask

    groupe dans autocad

    avant l'envoi à d'autres collaborateurs un peu boulets, je lies mes Xref (facile avec etransmit), comme ça ils apparaissent en tant que blocs et ça ne fait plus qu'un seul fichier... Je faisais ça également pour l'envoi à la reprographie avant qu'on ait un traceur.
  11. On ne peut pas mettre d'épaisseur sur une spline sauf avec un code, mais ça plante parfois alors c'est pas pratique
  12. c'est pas pratique pour moi car il ne me fait pas polyligne alors je dois sélectionner les lignes puis les éditer... par terrible, alors je fait toujours de polyligne avec arc et direction puis ligne... une vie de misère... mdr...
  13. et avec attsync pour mettre à jour la définition du bloc... battman, je ne connais pas...
  14. sechanbask

    groupe dans autocad

    je ne vois pas trop l'intérêt de mettre les cotes dans des blocs ou des groupe, car la première chose que va faire quelqu'un qui reçoit ton fichier par exemple, un autre corps d'état, va supprimer les cotes car sur autocad tous les outils sont là pour éviter de prendre des mesures. Les cotes ne sont là que pour l'impression à mon avis, alors le mieux pour moi c'est Xref. Ce n'est que mon avis, je bosse dans un BE fluides et les cotes sur les plan archi et béton, on les supprime pour voir clair sur les plans, on garde uniquement ce qui nous préoccupe, hauteur de poutre, épaisseur de dalle, hauteur sous plafonds etc...
  15. Merci pour la fonction MAINLEV, je ne la connaissais pas, je dirais même plus, personne au bureau ne la connaissait... Je pense que ça va me faire gagner du temps merci...
  16. Bonsoir, j'aimerais savoir comment on peut récupérer les coordonnées du curseur sans demander à l'utilisateur de saisir un point. En gros, je voudrais savoir comment autocad fait pour afficher les coordonnées du curseur en bas à gauche de l'écran, mais non pas si bas, juste au dessus de la ligne de commande..) Ça serait pour récupérer des points afin de tracer des segments de droite sur des points pris tous les millième de seconde par exemple pendant 3 secondes pour faire une espèce de courbe à main levée...
  17. rebcao : tu vas faire la macro comment, en script ?
  18. sechanbask

    Ca fait longtemps....

    pour l'instant j'ai pas de gosse alors je porte la barbe, maintenant j'angoisse à l'idée de devoir perdre mes poils ou de devoir me battre contre mon enfant juste pour des bisous.... La vidéo est terrible, je ne sais pas si c'est une pub qui passe à la télé dans un autre pays que la France mais je ne pense pas qu'elle passera à la télé française...
  19. pascal19 tu as du mal refermé ta citation... as-tu fais [ / quote] sans les espaces ? Ton programme insère des blocs pour les pièces de transformation, coudes, etc. ? Car j'ai la necessité de faire un programme qui me permette de compter tous les éléments, et même mieux, le poids de la gaine et bien d'autre... [Edité le 27/9/2007 par sechanbask]
  20. est-ce que ton SCU est nommé ? car en VBA, lorsqu'il n'est pas nommé, j'arrive à rien faire, c'est peut-être similaire en lisp...
  21. sechanbask

    Evenements

    Merci ça marche, je regarde le code et essaie de voir si j'arrive à l'utiliser pour mon application. Je te remercie vivement.
  22. C'est un programme créer par qui ? avec quel langage ? ça serait con de faire un doubon si on peux s'allier non?
  23. sechanbask

    Tester si SCU // SCG

    je crois que j'ai pas aidé, mais je me rappelle d'une personne qui souhaitait toujours écrire à l'horizontale par rapport à sa vue malgré les différents SCU qu'elle utilisait, je ne sais pas où la question était posé ni si ça était résolut mais y'aurait pas moyen de faire ce qu'elle voulait avec la réponse proposé par (gile)??[Edité le 26/9/2007 par sechanbask] [Edité le 26/9/2007 par sechanbask]
  24. sechanbask

    Tester si SCU // SCG

    j'ai un peu ce que tu veux en vba mais en vba : je te donne l'algorithme: récupération du nom du système de coordonnées - si j'ai un nom je suis dans un scu - sinon j'ai une erreur que je dois gérer donc je suis dans un scu sans nom ou SCG. Pour l'instant j'ai pas trouvé la parade car c'est la même erreur que l'on soit dans un SCU sans nom ou scG. mais je part du principe que l'on est dans le scg. en fonction de ça je mais un boolean = true pour le SCU et quand je cherche mes points je transform by ou pas.. j'espère que ça pourra t'aider et ma macro marche pour tout les angles de rotations jusqu'à présent trouvé.
×
×
  • 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é