Aller au contenu

winfield

Membres
  • Compteur de contenus

    775
  • Inscription

  • Dernière visite

winfield's Achievements

Newbie

Newbie (1/14)

0

Réputation sur la communauté

  1. des rubans ? Ha ces trucs qui bouffent la moitié de l'écran ! En fait c'est comme les écrans 50" pour certains. Ils ont un grand écran, donc ils mettent des icones taille xxl M'enfin, vive le clavier :heartpump: :heartpump: :heartpump:
  2. Slt En reprenant le 1er code: Sub PtMilieu0() Dim PtMid As Variant Dim ObjSelection As AcadSelectionSet Dim StrSelection As String Dim ObjCircle As AcadCircle Dim ObjTxt As AcadText StrSelection = "SelectMid" On Error Resume Next Set ObjSelection = ThisDrawing.SelectionSets(StrSelection) If Err Then Err.Clear Set ObjSelection = ThisDrawing.SelectionSets.Add(StrSelection) End If ObjSelection.Clear Dim CodeDXF(1) As Integer Dim VarDXF(1) As Variant CodeDXF(0) = 0: VarDXF(0) = "LINE" CodeDXF(1) = 8: VarDXF(1) = "MonCalque" ObjSelection.SelectOnScreen CodeDXF, VarDXF For I = 0 To ObjSelection.Count - 1 PtMid = ThisDrawing.Utility.PolarPoint(ObjSelection(I).StartPoint, ObjSelection(I).Angle, ObjSelection(I).Length / 2) Set ObjCircle = ThisDrawing.ModelSpace.AddCircle(PtMid, ObjSelection(I).Length / 20) Next End Sub Cette modification du code permet de faire une fenetre de selection et ne selectionnera que les objets "Line" qui sont dans le calque "MonCalque", s'il existe bien entendu. Tu peux insérer aussi des conditions "Si" "OU" "ET" par ex : Toutes les lignes qui sont dans le calque "toto" ET dans le calque "Tutu" ET qui sont de couleur "Red"..... Tiré de l'Aide : Bon courage !
  3. Slt Content que t'avoir aidé Pour améliorer ta routine, tu pourrais faire en sorte que ça marche peu importe le SCU ;) Si tu ne t'interrsse qu'aux lignes et arcs, tu pourrais aussi intégrer des filtres de selections.
  4. Slt Fais attention, une ligne peut cacher une polyligne ! Ceci sans compter qu'une ligne peut avoir le même point de départ ET d'arrivée etc... Si c'est une poly, il peut y a avoir encore plus de difficultés. Ton tableau ne fait que t'apporter des soucis supplémentaire dans ton contexte, enfin, ça dépend du pourquoi de la nécessité de connaitre le mlieu de chaque segment et ce que tu veux faire de ces informations. Je te laisse un exemple pour régler ton soucis, à modifier par rapport à tes besoins. Sub PtMilieu() Dim PtMid As Variant Dim ObjSelection As AcadSelectionSet Dim StrSelection As String Dim ObjCircle As AcadCircle Dim ObjTxt As AcadText StrSelection = "SelectMid" On Error Resume Next Set ObjSelection = ThisDrawing.SelectionSets(StrSelection) If Err Then Err.Clear Set ObjSelection = ThisDrawing.SelectionSets.Add(StrSelection) End If ObjSelection.Clear ObjSelection.SelectOnScreen For I = 0 To ObjSelection.Count - 1 PtMid = ThisDrawing.Utility.PolarPoint(ObjSelection(I).startPoint, ObjSelection(I).Angle, ObjSelection(I).length / 2) Set ObjCircle = ThisDrawing.ModelSpace.AddCircle(PtMid, ObjSelection(I).length / 20) Next End Sub
  5. winfield

    Souci de macro

    Slt peut-on voir ce code ? Comme ça, à froid, je dirais : a) une mauvaise utilisationd des codes dxf ? b) un oubli de déclaration du RGB ? Pour le 1 et 2, voir petit b Pour le 3, fais une recherche sur "ACAD_SORTENTS" dans l'Aide d'Acad ou sur le forum VB/VBA, il y a des exemples dont un de moi, par contre je ne saurais pas t'aiguiller pour le mot clé. Je croyais qu'Acad 2010 le faisait automaiquement ?! ... à moins que ça ne soit que pour l'impression ?! m'enfin ... bon courage et bonne continuation
  6. slt, Reb je te suggère de modifier certaines choses dans ton questionnaire (j'ai lu en travers mais bon) à la page 2 Q1 : il faudrait inverser les propositions C et D En effet, si on lit comme a l'habitude (de gauche à droite), on trouve en 2ème position le "les 3 métiers ..." Si on lit en suivant les indices, cette même proposition se retrouve en 3ème proposition. Dans les 2 cas, on cherche le ou les autres métiers dont tu parles. C'est juste une histoire de mise en forme Q4 : La réponse est trop simple Il y a un problème de double liste de proposition dont la seule réponse validable n'est pas dans la liste que vous pensez car même si vous pensez que LA bonne réponse se trouve dans la bonne liste rien ne vous dit qu'en réalité, la bonne réponse ne se trouve pas dans la mauvaise liste. Si vous avez compris, vous pouvez prendre un café et une aspirine ;) Q5 : En réponse B, je te suggère " Cliquer dans la zone ou de sélectionner un contour" mais c'est vrai qu'à l'écrit, ça fait long comme réponse. bravo et bonne continuation
  7. slt textObj.TextString = "A:9.57"
  8. winfield

    Ordre de tracé en VBA

    Slt, je passais dans le coin fait une recherche sur "SortentsTable" tj tiré de l'aide : Le code de l'exemple Sub Example_SortentsTable() ' This example creates a SortentsTable object and ' changes the draw order. ' Set drawing to display lineweights and create a True Color object Dim ACADPref As AcadDatabasePreferences Set ACADPref = ThisDrawing.Preferences ACADPref.LineWeightDisplay = True Dim MyColorObjOne As AcadAcCmColor Set MyColorObjOne = AcadApplication.GetInterfaceObject("AutoCAD.AcCmColor.18") Call MyColorObjOne.SetRGB(80, 100, 244) ' Draw a polyline Dim plineObj As AcadPolyline Dim points(0 To 8) As Double points(0) = 4: points(1) = 4: points(2) = 0 points(3) = 3: points(4) = 5: points(5) = 0 points(6) = 6: points(7) = 20: points(8) = 0 Set plineObj = ThisDrawing.ModelSpace.AddPolyline(points) plineObj.Lineweight = acLnWt211 Call MyColorObjOne.SetRGB(90, 110, 150) plineObj.TrueColor = MyColorObjOne ' Draw a line Dim lineObj As AcadLine Dim startPoint(0 To 2) As Double Dim endPoint(0 To 2) As Double startPoint(0) = 5: startPoint(1) = 13: startPoint(2) = 0 endPoint(0) = 5: endPoint(1) = 27: endPoint(2) = 0 Set lineObj = ThisDrawing.ModelSpace.AddLine(startPoint, endPoint) lineObj.Lineweight = acLnWt211 Call MyColorObjOne.SetRGB(50, 80, 230) lineObj.TrueColor = MyColorObjOne ' Draw a circle Dim circleObj As AcadCircle Dim centerPoint(0 To 2) As Double Dim radius As Double centerPoint(0) = 10: centerPoint(1) = 15: centerPoint(2) = 0# radius = 5# Set circleObj = ThisDrawing.ModelSpace.AddCircle(centerPoint, radius) circleObj.Lineweight = acLnWt211 Call MyColorObjOne.SetRGB(60, 200, 220) circleObj.TrueColor = MyColorObjOne ZoomAll AcadApplication.Update 'Gxet an extension dictionary and, if necessary, add a SortentsTable object Dim eDictionary As Object Set eDictionary = ThisDrawing.ModelSpace.GetExtensionDictionary ' Prevent failed GetObject calls from throwing an exception On Error Resume Next Dim sentityObj As Object Set sentityObj = eDictionary.GetObject("ACAD_SORTENTS") On Error GoTo 0 If sentityObj Is Nothing Then ' No SortentsTable object, so add one Set sentityObj = eDictionary.AddObject("ACAD_SORTENTS", "AcDbSortentsTable") End If Dim ObjIds(2) As Long ObjIds(0) = plineObj.ObjectID ObjIds(1) = lineObj.ObjectID ObjIds(2) = circleObj.ObjectID Dim varObject As AcadObject Set varObject = ThisDrawing.ObjectIdToObject(ObjIds(2)) Dim arr(0) As AcadObject Set arr(0) = varObject 'Move the circle object to the bottom sentityObj.MoveToBottom arr AcadApplication.Update End Sub j'ai testé le code posté mais il ne fonctionne pas, du moins plus ou pas chez moi, maintenant. J'avais balancé ce code rapidement sans chercher plus loin (à l'époque il fonctionnait, du moins sur mon pc). Désolé du peu d'aide, mais l'informatique n'est plus mon centre du monde
  9. acceuil ? :casstet:
  10. winfield

    Formules champs

    slt, rien de spécifique. Je voulais juste connaitre les limites des calculs avec les champs
  11. winfield

    Formules champs

    Bonsoir à tous Qqn aurait une liste des calculs qu'on peut faire dans les champs en dehors des 4 modes opératoires ? j'en ai juste trouvé 2 pour le moment : puissance : ça ne change pas d'un tableur racine : =Nb^(1/x) x représentant la puissance
  12. désolé, j'avais mal compris. Du coup je dis : pdf creator + routine Hypothèse : Chaque impression est au format A4 Paysage Un rectangle symbolise chaque format et tous ces rectangles sont accolés les uns au autres et les uns au dessus des autres. Chaque rectangle fait 210x297 UNITES (peu importe qu'on soit en EP ou EO, c'est l'Unité qui importe. j'avais écrit une routine qui boucle en X et en Y suivant deux points qui envellope tous les rectangles. Le X le à gauche et le Y le plus bas étant le point de départ. un calcul pour trouver les coordonnées du point haut (PtHaut(0)=Ptdep(0)+297:PtHaut(1)=PtDep(1)+210...PtDep=PtHaut...) on lance les impressions sur PDF Creator, celui-ci démarre, tu clics sur "Mettre en file d'attente", toutes les impressions se mettront en file d'attente. Quand ta routine à fini, dans PDF Creator, tu fusionne le tout, et tu te retrouves avec un fichier avec pleins de page. Ouf, j'espère m'être rattrappé
  13. Sans programmation : avec pdf creator, simple efficace même s'il ne gère pas les calques... http://www.framasoft.net/article1572.html
  14. winfield

    faire une selection

    Slt http://www.cadxp.com/modules.php?op=modload&name=XForum&file=viewthread&tid=13800
  15. winfield

    Equivalent Pedit

    slt, il n'y as pas d'outil équivalent à ceux que tu cites, et ceci peut importe le langage. Les commandes que tu cites sont des "programmes". Si tu souhaites une commande d'édition de polyline, soit tu "pedit" avec l'outil fournie avec AutoCAD, soit tu en recrée une dans le langage que tu veux. Si tu veux des infos en lisp, vlisp, vba tu peux en trouver dans l'aide d'AutoCAD, ici, ainsi que sur d'autres forums/sites. Note : dans la mesure du possible, évite les command et les sendcommand, surtout les sendcommand.
×
×
  • 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é