Aller au contenu

sechanbask

Membres
  • Compteur de contenus

    1 013
  • Inscription

  • Dernière visite

Tout ce qui a été posté par sechanbask

  1. j'ai trouvé 2 méthodes: -rendre invisible l'attribut avec les état de visibilité du bloc dynamique... -mettre la propriété de l'attribut en "constant" sauf que s'i c'est un bloc dynamique qui dois changer de "nom", le nom ne pourra pas changer... en plus tu seras embêté lorsque tu feras une extraction d'attribut de blocs car pour les attributs constants c'est pas la même méthode de programmation donc ce n'est pas pris en compte (à ma connaissance) sauf ici : http://www.cadxp.com/sujetXForum-16438.htm si tu as des problèmes pour le faire marcher, tu peux me demander, je suis le créateur de ce code. [Edité le 17/10/2007 par sechanbask]
  2. je ne sais pas si le vbscript fonctionne de la même manière que le VBA mais ton test est mal construit. Pour le test if tu n'a le droit qu'à un elseif. Donc le test complet if se construit comme ça: if blabla then 'action elseif 'action end if ou comme ça if blabla then 'action donc vb interprète mal ce que tu lui as donné à manger : il va toujours prendre la dernière condition. Intervertis ta condition finale avec ton avant avant dernière condition. Tu verras il va de renvoyé "RESULT = "ERROR ANCRAGE"" qui est actuellement ton avant avant dernière réponse à la condition. à ta place je construirais ça comme ça : select case St case ("PA Demi DV Simple" or St = "PA Demi DV Simple + Brx" or St = "PAV DV Simple" or St = "PAV DV Simple + Brx" if la = "990" Then RESULT = "ERREUR LARGEUR" end select et pareil pour les autres conditions. j'aimerais t'aider plus mais je ne comprend pas les tenants ni les aboutissants de ton programme, et je comprends pas ce qu'est le VBSCRIPT??? tu code ça dans quel logiciel ?
  3. je ne sais pas ce qu'est le VBscript mais si ça se comporte comme le VBA ou le VB : 1- Est-ce que tu peux poster tout ton test pour qu'on puisse vérifier s'il n'y a pas une erreur de syntaxe sur l'ensemble du test.. if blabla then elseif blabla end if 2- Vu la complexité de ton test, pourquoi ne pas utiliser un select case ? select case St case "SAS Solaris" if la = "670" case else end select ou deux tests if imbriqués if St = "SAS Solaris"then if la = "670" or la ="870" then 'action à réaliser end if end if 3- Que contient la variable la ? j'ai l'impression que c'est un nombre non ? si c'est le cas, le mieux est de la mettre dans une variable de type single dim la as single et le test deviendra: if la = 670 then elseif end if le nombre sans les "...." J'espère que ça t'aidera, sinon repost avec un peu plus de ton code.. Bon courage [Edité le 17/10/2007 par sechanbask]
  4. sechanbask

    Calques plus classés

    >Defman : N'oublie pas de mettre ton sujet en résolu : cliques sur l'ampoule en dessous de ton premier message (lorsque tu es loggé)...
  5. j'arrive à obtenir le résultat mais uniquement quand je crée mon bloc dans l'éditeur de bloc. Le résultat de la formule ne se met à jour même avec attsync et battman et mettre à jour les champs... c'est quand même gênant, j'ai pourtant relu ton poste surper détaillé mais je ne vois pas où j'ai fait une bêtise...
  6. excellente idée pour les données contenu dans le plan !!! Mais j'arrive pas à formuler l'addition de mon attribut ARASE : %<\AcObjProp.16.2 Object(1817026104,1).TextString>% avec le contenu de la variable contenue dans le plan %<\AcVar CustomDP.NGF>% je suis novice en formule d'attribut.. j'ai essayé dans le champs de mettre ça : %<\AcVar CustomDP.NGF>%+%<\AcObjProp.16.2 Object(1817026104,1).TextString>% dans le champs formule mais quand j'évalue la forumle, j'ai dans l'expression du champs : %<\AcExpr (%<\_FldPtr 2101584880>%+%<\_FldPtr 2101584544>%)>% mais rien ne s'affiche dans l'aperçut... Merci par anticipation
  7. Bonjour, je suis sûr que le sujet à déjà été évoqué mais je ne le retrouve pas..; Je possède un bloc avec 2 attributs. L'un est l'arase de mon réseau et l'autre le niveau NGF, j'aimerais que le niveaux NGF soit la somme de l'arase + une constante que je pourrais modifier en fonction des niveaux de mon plan.... merci de me répondre ou de me renvoyer le lien vers une discussion similaire et solutionnée... bonne journée
  8. j'ai réussi... mais c'est pas juste, je suis aguerri et en plus j'ai déjà fait des bout de codes similaires.. dois-je poster maintenant?
  9. sechanbask

    Proposition de programme

    Comme je suis un abruti, je change rarement d'avis. Les astrologue diraient que c'est par ce que je suis bélier mais je suis certain que c'est uniquement parce que je suis fou... je viens quasiment de finir l'impact rectangulaire sauf que personne ne m'aide pour choisir la licence sauf laquelle je voudrais poster ça alors... je n'ose pas poster car vu comment certain progiciel sont nul, je ne voudrais pas qu'il se fasse de beurre avec mon code que moi je souhaiterais libre pour les utilisateurs...
  10. Bien le bonjour ami du VBA Puisque tu as trouvé la solution à ton problème, n'oublie pas de mettre ton sujet comme résolu en cliquant sur l'ampoule en dessous de ton premier message (lorsque tu es loggé)... bonne continuation dans la programmation...
  11. Très bonne initiatve : l'algorithme devrait ressembler à ça : une boucle de 1 à 3 pour dessiner chaque carte au même endroit et en fin de boucle, les déplacer bonne chance
  12. coordonner en voilà un joli mot... euh qqun peut me donner un peu de temps pour que je puisse avoir des journées de 36 h pour avoir le temps de bosser, de profiter, de programmer et d'organiser des challenges... Bon bon, j'arrête un peu mais je pense que je vais avoir du mal à trouver des sujets pour permettre aux autres de grandir leurs connaissances... Il faudrait donner des orientations car moi je ne connais que ce dont j'ai eu besoin... Je vais d'abord proposer des challenges sur des fonctions d'autocad existante mais avec des ajouts d'arguments... enfin bon je fais ça dans mon coin et quand j'ai plusieurs sujet, je vous les propose.
  13. sechanbask

    Proposition de programme

    -aide au dimensionnement de réseaux -insertion de blocs dont les différents entités peuvent être modifiées ors de l'insertion pour être en accords avec les choix de la charte graphique -tracer des réseaux en bifilaire 2D -insertion d'objet sur des textes, des attributs ou des blocs. -addition d'attributs et créer un bloc dans lequel un attribut recevra la somme ( je m'en sers pour cumuler les puissance des radiateurs sur un collecteur par exemple) -ajout de fonction élémentaires mais vitale : copier coller avec comme point de base 0,0 sans avoir à donner d'argument, une rotation à 180° -transformation de bloc dyn en bloc classique -extraction d'attribut avec la totalité des propriété et pour finir la possibilité de piloter autocadLT depuis un interpréteur VBA tel que EXCEL et plus tard depuis openoffice via l'interpréteur STAR BASIC pour l'instant beaucoup de choses ont été commencé et quand je vois comment ça bouille dans ma tête que les journées ne font que 24h... je balise je ne finirais jamais malgré le fait que je progresse et que les temps de réalisation diminue à grand pas... je pense que beaucoup de projets pourront se greffer dessus ce que j'ai programmé car c'est simplement des routines... le problème c'est que c'est du VBA et que c'est pas le langage le plus usité ici mais ça...
  14. sechanbask

    Proposition de programme

    -aide au dimensionnement de réseaux -insertion de blocs dont les différents entités peuvent être modifiées ors de l'insertion pour être en accords avec les choix de la charte graphique -tracer des réseaux en bifilaire 2D -insertion d'objet sur des textes, des attributs ou des blocs. -addition d'attributs et créer un bloc dans lequel un attribut recevra la somme ( je m'en sers pour cumuler les puissance des radiateurs sur un collecteur par exemple) -ajout de fonction élémentaires mais vitale : copier coller avec comme point de base 0,0 sans avoir à donner d'argument, une rotation à 180° -transformation de bloc dyn en bloc classique -extraction d'attribut avec la totalité des propriété et pour finir la possibilité de piloter autocadLT depuis un interpréteur VBA tel que EXCEL et plus tard depuis openoffice via l'interpréteur STAR BASIC pour l'instant beaucoup de choses ont été commencé et quand je vois comment ça bouille dans ma tête que les journées ne font que 24h... je balise je ne finirais jamais malgré le fait que je progresse et que les temps de réalisation diminue à grand pas... je pense que beaucoup de projets pourront se greffer dessus ce que j'ai programmé car c'est simplement des routines... le problème c'est que c'est du VBA et que c'est pas le langage le plus usité ici mais ça...
  15. Bonjour, je souhaiterais mettre à disposition le code de mon application VBA pour les utilisateurs qui en voudraient... C'est un projet VBA (.dvb) avec quelques fichiers (.dwg, .txt) qui permet de dessiner des impacts circulaire et rectangulaire mais le nombre de fonctions augmentent de jour en jour( dimensionnement de réseaux hydraulique, aéraulique, plomberie... Je veux à terme remplacer un applicatif graphique payant et permettre à ceux qui n'ont les moyens de pouvoir jouir de ces fonctions (mieux codées que l'original). Bien sur, les plus aguerris en VBA pourront le modifier pour l'adapter à leur besoin... Pour cela j'aimerais être contacter une personne qui à l'habitude de proposer des programmes opensource pour qu'il m'aide dans le choix d'une licence. J'aimerais que : - le programme soit libre d'utilisation, - le programme soit libre de modification - le code soit toujours en opensource quelque soit son évolution et que les sources soient renseignées - le code soit compatible avec les liens vers d'autres bibliothèques ouvertes ou non - mon prénom et nom apparaissent en tant qu'initiateur du projet Je crois que c'est tout pour l'instant... j'aimerais que le programme et ses greffons soient hébergés ici : http://www.cadxp.com/telechargements_admin.htm
  16. sechanbask

    Largeur d\'une polyligne

    Merci pour ton post et au MP de (gile) qui m'a donné la méthode qu'il avait utilisé pour son célèbre edit_bloc, car j'ai réussi ce que je voulais faire... je posterai le code quand il sera un peu plus abouti... vive lili2006 pour ses encouragements ! P.S. je suis sur que les gens très fort en VBA, ne sont pas très actifs ici car ils programment comme des fous, néanmoins j'aimerais bien les retrouver ici pour qu'ils aident un peu la communauté du VBA à progresser pour arriver à leur niveau (moi y compris)...
  17. sechanbask

    Largeur d\'une polyligne

    oublie pas de mettre ton message en résolu : l'ampoule en dessous de ton premier message (lorsque que tu es loggé) P.S. pourquoi personne ne me donne de solution pour mes postes snif ???
  18. il faudrait que tu fasses des copies d'écran pour voir ce que tu dessines pour savoir si personne n'a fait de programme pouvant te donner un coup de pouce... Surtout les tâches récurrentes: dimensionnement et etc, dans mon bureau, j'ai automatisé le dimensionennement de gaine aéraulique, bon il reste 2 bug + 7 améliroations à apporter mais ... ça fait gagner du temps....
  19. sechanbask

    COTATION EO ou EP ?

    je ne cote que sur du 50ième, pour les autres échelle, je ne fait pas de tirage de plan. Moi, je suis peinard. Mais je conçois que c'est pas évident car quand je reçois des plan de structure, j'ai souvent des calques cotations avec des échelles différentes. Mais je suis sûr que des gens avec des réacteurs sont capable de modifier les hauteurs de texte en fonction de l'échelle utilisée, non ?
  20. oulà, j'y vois pas clair... je vais devoir faire un tour chez l'opticien... Désolé, l'erreur venait de ma lecture, en tout cas merci grâce à ça il n'a pas fallut longtemps à mon collègue pour changer le nom de ces bouches...
  21. c'est vrai c'est pas très pratique mais il y a quand même le multistrech des express pour modifier les entités en les étirant...
  22. [résolu] Bonjour, Je souhaiterais modifier un bloc déjà existant, je souhaiterais changer de propriété et de calque quelques entités, mais je ne sais pas comment naviguer dans les entités de mon bloc... J'ai trouvé Sub Impact_circulaire() Dim objCercle As AcadObject Dim objBloc As AcadBlockReference Dim varPins As Variant Dim strUnitvar As String Dim sngCoef As Single Dim dblteta As Double Dim teta As Double Dim dbldiamech As Double Dim SngCalo As Single Dim dblDiametre As Double Dim objLine As acadline Dim objLine1 As acadline Dim varPinsLineH(0 To 2) As Double Dim varPinsLineH1(0 To 2) As Double Dim varPinsLineV(0 To 2) As Double Dim varPinsLineV1(0 To 2) As Double Dim strCalqueActive As String Dim newlayer As AcadLayer 'On Error GoTo Gestion strCalqueActive = ThisDrawing.ActiveLayer.Name Set newlayer = ThisDrawing.layers.Add(strCalqueActive & "-A") Set newlayer = ThisDrawing.layers.Add(strCalqueActive & "-calo") strUnitvar = ThisDrawing.GetVariable("INSUNITS") Select Case strUnitvar Case 4 '(millimètre) sngCoef = 1 Case 5 '(centimètre) sngCoef = 0.1 Case 6 '(mètre) sngCoef = 0.001 End Select 'On Error Resume Next dblDiametre = ThisDrawing.Utility.GetReal("Veuillez indiquer le diamètre de la gaine en mm : (ou le diamètre précédent: Ø" & dblDiametrePrec & ")") Select Case Err.Number Case -2145320928 dblDiametre = dblDiametrePrec Err.Clear Case -2147352567 ThisDrawing.Utility.Prompt "Annulée par l'utilisateur." Err.Clear Exit Sub Case Is <> 0 Debug.Print Err.Number, Err.Description Err.Clear ThisDrawing.Utility.Prompt "Une erreur inconnue est survenue, veuillez contacter le développeur." Exit Sub End Select 'On Error GoTo Gestion dblDiametrePrec = dblDiametre dbldiamech = sngCoef * dblDiametre dblDiametre = dbldiamech / 2 varPins = ThisDrawing.Utility.GetPoint(, "Veuillez choisir un point : ") teta = 0 Set objBloc = ThisDrawing.ModelSpace.InsertBlock(varPins, "Sect_circ_bloc.dwg", dbldiamech#, dbldiamech#, dbldiamech#, teta) objBloc.GetExtensionDictionary Dim explodedObjects As Variant explodedObjects = objBloc.Explode ' Loop through the exploded objects Dim I As Integer For I = 0 To UBound(explodedObjects) explodedObjects(I).Layer = strCalqueActive explodedObjects(I).color = acByLayer Dim ent As AcadEntity Dim objBlock As AcadBlock Set objBlock = ThisDrawing.Blocks.Item(explodedObjects(I).Name) For Each ent In objBlock Debug.Print ent.ObjectName Select Case ent.ObjectName Case "AcDbLine" ent.Layer = strCalqueActive & "-A" ent.Update End Select explodedObjects(I).Update Next Next objBloc.Delete Dim keyWord As String ThisDrawing.Utility.InitializeUserInput 0, "Avec Sans" keyWord = ThisDrawing.Utility.GetKeyword(vbCrLf & "Entrer une option (/Sans) calo: ") Select Case keyWord Case "s", "S", "sans", "Sans" Case "", "a", "A", "avec", "Avec" 'On Error Resume Next SngCalo = ThisDrawing.Utility.GetReal("Veuillez indiquer l'épaisseur du calo en mm : (ou calo précédent " & SngCaloPrec & "mm)") Select Case Err.Number Case -2145320928 SngCalo = SngCaloPrec Err.Clear Case -2147352567 Err.Clear ThisDrawing.Utility.Prompt "Annulée par l'utilisateur." Exit Sub Case Is <> 0 Debug.Print Err.Number, Err.Description Err.Clear ThisDrawing.Utility.Prompt "Une erreur inconnue est survenue, veuillez contacter le développeur." Exit Sub End Select 'On Error GoTo Gestion SngCaloPrec = SngCalo Dim varDecalage As Variant Set objCercle = ThisDrawing.ModelSpace.AddCircle(varPins, dblDiametre + (SngCalo * sngCoef)) With objCercle .Layer = strCalqueActive & "-calo" .color = acByLayer .Update End With ' For I = 0 To UBound(varDecalage) ' varDecalage(I).Layer = strCalqueActive & "-calo" ' varDecalage(I).color = acByLayer 'varDecalage(I).Update 'Next End Select Exit Sub Gestion: Select Case Err.Number 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 J'arrive à insérer un bloc sur un plan. Ce bloc est en fait un fichier qui contient uniquement le bloc "section_circulaire". Lorsque j'insère ce bloc sur mon plan, l'objet inséré devient un bloc (que l'on va appelé "bloc B") qui contient le bloc "section_circulaire". Pour ne pas garder de bloc imbriqués, j'explose "bloc B", je navigue dans les objets explosés : je trouve uniquement mon "section_circulaire" et je le change de calque, je lui attribue la couleur DUCALQUE, et je navigue dans les entités du bloc pour modifier le calque des entité "ligne" et finalement, je supprime l'objet bloc B". [Edité le 9/10/2007 par sechanbask] [Edité le 13/10/2007 par sechanbask]
  23. ils se sont trompés de caractère, pour moi ça marche uniquement si je mets \P... [Edité le 9/10/2007 par sechanbask]
  24. Bonjour, je souhaite remplacer le texte: "BP Ø125" par le texte : "Bouche STIK ref. BP Ø125" comment simuler la touche entrée dans l'éditeur de texte = le saut de ligne... Merci d'avance [Edité le 9/10/2007 par sechanbask]
  25. l'élégance, c'est uniquement pour le fun, parfois, un code moins élégant sera plus performant... Il m'arrive souvent de "tricher" quand je ne connais pas la méthode normale.
×
×
  • 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é