-
Compteur de contenus
1 013 -
Inscription
-
Dernière visite
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par sechanbask
-
Merci (gile) pour le coup de pouce. Comme je me sens prêt à commencer le lisp... avant ça me paraissait vraiment impossible... mais bon en commençant petit... Je ne comprend pas ta remarque sur (vl-load-com), ça sert à quoi ? vl = VisualLisp ? vla = ? Pourquoi tu as mis en forme le code de cette manière? Je pense qu'il y a bien une raison. Merci d'avance et bon week-end
-
J'en ai rêvé, c'est fabuleux ce qui t'arrive...
-
J'utilise Thunderbird, avec Ligtning pour mon agenda. Avec thunderbird, un mail qui n'a jamais été ouvert possède une étoile, si on le lit cette étoile disparait même si on le remets comme non lu... pratique pour moi. On peut mettre des couleurs sur les mails pour indiquer si ce qu'on nous a demandé à été réalisé. Les filtres de message (pour faire un tri) sont très puissants (de nombreuses syntaxes possibles). Je pourrais t'en dire plus mais bon le plus simple c'est de le tester, en plus il est complètement opérationnel dès le début car la migration est très vite faite juste après l'installation.
-
Je suis vraiment débutant, je souhaite purger tout ce qu'il y a de purgeable dans mon dessin. l'idéal serait que le programme garde en mémoire le calque courant1, puis qu'il rende courant le Calque 0, qu'il purge, et qu'il se remette sur le calque courant1 s'il existe toujours... J'ai commencé par ça: (defun c:purgertout () (vla-PurgeAll (vla-get-ActiveDocument (vlax-get-acad-object)))) c'est certainement bancale car il me fait "nil" dans la ligne de commande à la fin de l'opération néanmoins réussie... [Edité le 30/6/2007 par sechanbask]
-
N'oublie pas d'indiquer ce sujet comme "résolu"... sous ton premier message, clic sur l'ampoule pour dire que l message est résolu... Je cherche comment faire pour ta macro pour les type de ligne...
-
je pense que pour bien faire if faudrait initialiser les variables et après faire une recherche en fonction de ces variables sinon on va pas s'en sortir...
-
Je ne comprends pas tout car avec : Sub spline() ' This example creates a spline object in model space. ' Create the spline Dim splineObj As AcadSpline Dim startTan(0 To 2) As Double Dim endTan(0 To 2) As Double Dim pins As Variant Dim fitPoints(0 To 5) As Double startTan(0) = 0.5: startTan(1) = 0.5: startTan(2) = 0.5 endTan(0) = 0.5: endTan(1) = 0.5: endTan(2) = 0.5 pins = ThisDrawing.Utility.GetPoint(, vbCrLf & "premier point:") fitPoints(0) = pins(0): fitPoints(1) = pins(1) pins = ThisDrawing.Utility.GetPoint(, vbCrLf & "deuxième point:") fitPoints(2) = pins(0): fitPoints(3) = pins(1) pins = ThisDrawing.Utility.GetPoint(, vbCrLf & "troisième point:") fitPoints(4) = pins(0): fitPoints(5) = pins(1) 'pins = ThisDrawing.Utility.GetPoint(, vbCrLf & "quatrième point:") 'fitPoints(6) = pins(0): fitPoints(7) = pins(1) '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) End Sub ça ne me dessine que 2 points qui ne correspondent pas à mes getpoint... je pense que j'ai pas fini d'en baver avec ça...
-
Je cherche à comprendre pourquoi je me retrouve avec un point en 0,0 avec cette création de spline (ça vire un peu au cauchemar si on veut faire un getpoint....) Sub spline() Dim splineObj As AcadSpline Dim startTan(0 To 2) As Double Dim endTan(0 To 2) As Double Dim pins As Variant Dim fitPoints(0 To 11) As Double startTan(0) = 0.5: startTan(1) = 0.5: startTan(2) = 0.5 endTan(0) = 0.5: endTan(1) = 0.5: endTan(2) = 0.5 pins = ThisDrawing.Utility.GetPoint(, vbCrLf & "premier point:") fitPoints(0) = pins(0): fitPoints(1) = pins(1) pins = ThisDrawing.Utility.GetPoint(, vbCrLf & "deuxième point:") fitPoints(2) = pins(0): fitPoints(3) = pins(1) pins = ThisDrawing.Utility.GetPoint(, vbCrLf & "troisième point:") fitPoints(4) = pins(0): fitPoints(5) = pins(1) 'pins = ThisDrawing.Utility.GetPoint(, vbCrLf & "quatrième point:") 'fitPoints(6) = pins(0): fitPoints(7) = pins(1) '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) End Sub Merci d'avance
-
moi ça plante dès le début ThisDrawing.Linetypes.Load linetypeHidden, "acad.lin" mais je ne sais pas pourquoi... pour l'instant.
-
Ta macro va te servir à quoi au juste? Tu travailles dans quel domaine?
-
(Tu parlais de la macro de qui?) si c'est de la mienne : ThisDrawing.Linetypes.Load "StrTypeLigne", "ACAD.LIN"... La methode me paraît bonne (sauf erreur de ma part). Alors je pense que le fichier "ACAD.LIN" n'est pas chargé (il n'est peut-être pas dans un dossier où autocad fouille). Pour l'instant, je ne vois que cette erreur de possible. Essaie de voir si avec le fichier ACADISO.LIN ça fonctionne... [Edité le 29/6/2007 par sechanbask]
-
>winfield : pourquoi tu ne relève pas les fautes de formula1 ? >formula1 : je te conseille mon code car si tu utilise le tien (ou celui de winfield, et toc) à maintes reprises, tu auras une erreur de chargement (autocad va tenter de charger, en vain, plusieurs fois la même ligne). Et le mien est mieux que le votre d'abord !! Na!!
-
>winfield c'est malin... tu viens tellement souvent ici que je te pardonne ta remarque désobligeante. Ose me dire que je fait du sms et plein de fautes... Comme dirait mon estomac quand il a faim : "quand je manque de sucre et que les sucs gastriques me rongent je fais n'importe quoi." Alors je mets cette faute sur le compte de faim. Tant pis pour elle... P.S. Je suis bêtement attaché à l'orthographe alors je rectifie cette faute sans plus attendre.
-
Bon je pense que j'ai assez détaillé alors : Sub calques() Dim newlayer1 As AcadLayer Set newlayer1 = ThisDrawing.Layers.Add("NOM DU CALQUE") Dim color As AcadAcCmColor Set color = AcadApplication.GetInterfaceObject("AutoCAD.AcCmColor.16") Call color.SetRGB(80, 100, 244) newlayer1.TrueColor = color Dim linetypeName As String linetypeName = "ZIGZAG" For Each entry In ThisDrawing.Linetypes If StrComp(entry.name, linetypeName, 1) = 0 Then MsgBox linetypeName & " a été trouvé dans dessin actif." Dim trouve As Boolean trouve = True Exit For Else End If Next If trouve = False Then Dim fichier1 As String fichier1 = "acad.lin" MsgBox linetypeName & " n'a pas été trouvé dans dessin actif. Nous allons donc le chercher dans le fichier " & fichier1 ThisDrawing.Linetypes.Load linetypeName, "acad.lin" MsgBox "trouvé dans fichier..." Else End If newlayer1.Linetype = linetypeName MsgBox "le calque NOM DU CALQUE a pour type de ligne : " & linetypeName End Sub S'il y a une chose que tu ne comprends pas n'hésite pas à me demander car les réponses que je te fournirais pourront d'aider à appréhender le code et repousser tes ambitions... enfin je pense... sinon à quoi ce forum servirait-il?
-
j'ai trouvé pour le type de ligne mais le plus compliqué, ça va être de te l'expliquer car il va falloir faire des boucles, un test ... je le poste quand j'aurais fini de manger car là j'ai très faim... [Edité le 29/6/2007 par sechanbask]
-
menu deroulant gestionnaire des etats de calques
sechanbask a répondu à un(e) sujet de whitesquare dans AutoCAD 2006
en effet ça serait parfait pour changer les filtre de calques... je n'ai pas encore trouvé mais j'en rêve... -
c'est donc normal, il faut que tu ajoutes un module (menu Insertion -Module) et que tu mettes dans ton module : Sub Gaine() Load Userform1 ' si elle s'appelle comme ça userform1.show end sub En effet une macro est composé d'un module qui lance ton application, si tu as des userform elles seront chargés puis lancées par le module (pas toujours mais pour commencer oui) bon courage je cherche à comprendre le problème avec le type de ligne pour les calques... mais là je bloque un peu..
-
Alors parfois un exemple permet de comprendre l'idée générale alors: ma macro s'appelle "gaine" : Sub Gaine() mon module s'appelle "Projet" (pas original et alors?). Ce projet est situé dans "C:\Program Files\AutoCAD 2006\ADD ON\Gaine" La commande pour pour ma commande1 (celle qui lance la macro) : ^C^C-VBARUN ; "C:/Program Files/AutoCAD 2006/ADD ON/gaine/Projet.dvb!Gaine.GAINE"; si tu as d'autres questions n'hésite pas. Bon courage
-
Il fonctionne chez moi... Tu as quel type d'erreur? erreur de variable?
-
Coucou, J'avoue avoir étais un peu sec dans mes propos mais c'est pour que tu comprennes qu'une fois que tu auras réussi à comprendre l'aide de VBA, tu sauras tout faire et à ce moment là, tu n'auras plus besoin de l'aide... je déconne un peu mais l'aide est bien faite cependant mais c'est vrai qu'elle devient utilisable qu'à un certain moment... Sub calques() Dim newlayer1 As AcadLayer Set newlayer1 = ThisDrawing.Layers.Add("NOM DU CALQUE") Dim color As AcadAcCmColor Set color = AcadApplication.GetInterfaceObject("AutoCAD.AcCmColor.16") Call color.SetRGB(80, 100, 244) newlayer1.TrueColor = color 'si le type de ligne est dans les fichiers de ligne autocad For Each entry In ThisDrawing.Linetypes If StrComp(entry.name, "ZIGZAG", 1) = 0 Then Exit For End If Next newlayer1.Linetype = "ZIGZAG" End Sub Par contre si tu sais que ta ligne ne dépend d'un fichier chargé par autocad, il faut définir ton type de ligne et là attention ça devient dur voire très dur... Bon courage... je suis étonné que le forum de VBA soit si plat en ce moment et ça me désole un peu... c'est la vie, je suis dépassé par le lisp comme si j'étais un vieux mdr
-
Avec VBA, on peut tout faire enfin je pense :cool: Pense à regarder l'aide d'autocad (pas de VBA mais autocad, le dernier point du sommaire générale) Je te donne un exemple pour la couleur et si tu n'arrives à trouver la méthode pour les lignes je te filerai un coup de main : Sub calques() Dim newlayer1 As AcadLayer Set newlayer1 = ThisDrawing.Layers.Add("NOM DU CALQUE") Dim color As AcadAcCmColor Set color = AcadApplication.GetInterfaceObject("AutoCAD.AcCmColor.16") Call color.SetRGB(80, 100, 244) newlayer1.TrueColor = color End Sub bon courage...
-
est-ce que ton attribut est "verrouillé en position"? c'est la dernière ligne des propriétés, si oui, ton attribut ne peut pas bouger. Si ça ne marche toujours pas mais "non" pour constant...
-
En VBA pour créer un calque : Dim newlayer1 As AcadLayer Set newlayer1 = ThisDrawing.Layers.Add("NOM DU CALQUE") Pour le rendre actif: ThisDrawing.ActiveLayer = ThisDrawing.Layers("NOM DU CALQUE") Pour récupérer le calque courant: Function CalqueCourant() StrCalqueCourant = ThisDrawing.ActiveLayer.Name End Function Bon courage.
-
>Bred: Pour moi, les express marche avec toutes les justifications... Y'a pas moyen de copier le code des express et d'inclure les changements de calque ? Car le code des express ne me gène pas, seulement le fait qui doivent être charger pour lancer une partie de code... je ne sais pas si je suis clair pour tout le monde. > bonuscad: je n'arrive pas lancer cette lisp, le chemin est pourtant chargé, et j'ai chargé la lisp mais "commande inconnue" [Edité le 27/6/2007 par sechanbask]
-
METHODE centralisation du projet sur un seul fichier ?
sechanbask a répondu à un(e) sujet de whitesquare dans AutoCAD 2006
y'a 7zip qui lit beaucoup d'archive non destructrice et qui compresse. Et c'est un opensource !!!
