Aller au contenu

tyrese69_

Membres
  • Compteur de contenus

    161
  • Inscription

  • Dernière visite

Tout ce qui a été posté par tyrese69_

  1. Re bonjour, Quelques infos complémentaires sur notre site ! http://www.techniptps.com/recrutement.htm Daniel OLIVES
  2. Bonjour, Nous sommes un important groupe d'Ingénierie dans le secteur du bâtiment, avec plusieurs agences sur la France. Nous sommes à la recherche de projeteurs avec expérience dans les dommaines suivant : - projeteur en structure - projeteur en plomberie sanitaire et si possible CVC. Ces postes sont à pourvoir sur l'agence de Lyon, mais il y a des possibilités sur nos autres agences. Les notions d'Xrefs, espace papier, mise en page nommée, publication doivent être parfaitement intégrées. Un débutant pourrait malgré tout trouver sa place selon sa motivation. Envoyer Cv et lettre de motivation à : Technip TPS 6 rue St Nestor 69008 LYON à l'attention de JJ GUYOT
  3. tyrese69_

    Bienvenu

    Bonsoir à tous, Bonne idée, ce forum tombe à pic, je viens de recevoir cette version pour notre bureau ! Les tests vont pouvoir commencer. A bientôt Daniel OLIVES
  4. Bonjour, Voici les commandesutiles pour celà La première ligne forc el déchargement pour être sur que la seconde puisse marcher sans erreur, la troisienne permet de positionner le menu, juste avant le ? de l'aide ! (command "_menuunload" "MonMenu") (command "_menuload" "MonMenu.mnu") (menucmd "Gacad.pop11=+MonMenu.pop1") Bon courage pour la suite ! Daniel OLIVES Lyon-FRANCE
  5. Bonsoir à tous, Quelque soit le langage utilisé, seuls le LISP, VLISP et VBA sont avec plateforme de "debugage" intégrée à AutoCAD. Pour les autres il faut se débrouiller ! Par contre un petit sondage permettrait d'avoir la proportion de routines dévelloppées en LISP(VLISP) ou VBA. Chacuns des langages à ces avantages et inconvénients. Mais avec les modules de class comme VLAX les deux cohabitent bien ! Dire que le VBA peut être abandonné serait une erreure car beaucoup de développeurs pour OFFICE, WORD, EXCEL utilisent le VBA. Chacun peut se formé sur l'un ou l'autre langage, mais me semble t'il la connaissance des deux est le meilleur compromis (Lapalisse n'aurait pas fait mieux) Pour notre société, à ce jour 50 / 50 car les anciens ne connaissent que le LISP ou VLISP par contre tous les nouveaux se mettent au VBA, plus simple à utiliser en dévelloppement surtout pour les boites de dialogue. Donc dans l'avenir cette tendance và s'infléchir vers le VBA, VB voir C ou .NET Je pense qu'il faut distinguer les routines usuelles et les applicatifs. Du VBA au VB le passage doit être assez simple, pour le .NET et autres il est plus réservé aux applicatifs. Nous évoquons même le langage JAVA pour certaines applications internet ! (GED) Chacun trouve parfait, se qu'il connait le mieux ! Mais c'est la remise en cause de nos propres acquis, qui seule peut nous faire avancer. Bonne fin de week-end Daniel OLIVES
  6. tyrese69_

    ObjectDBX

    Bonsoir, Aprés avoir lu le sujet sur les objets DBX du forum vlisp, j'ai cherché sur le net ce qui existe en VBA. Un peut en vrac le résultat ! Juste un petit point par rapport Vlisp, par le VBA l'accès aux possibiltés de ces fonctions est beaucoup plus aisé. Mais le but de toute chose varie selon chacun ! Daniel OLIVES Lyon - FRANCE Option Explicit ' Module Type MessPunkt Rechtswert As Double Hochwert As Double Höhe As Double PNR As String End Type Public Punkte() As MessPunkt ' ' Opening a drawing with ObjectDBX 'Function dbxOpen(fn As String) As AXDB16Lib.AxDbDocument ' If Dir(fn) <> "" Then ' Dim dwgX As New AXDB16Lib.AxDbDocument ' dwgX.Open (fn) ' ' If Err.Number <> 0 Then ' If Err.Number <> -2147467259 Then 'Invalid filename ' regObjectDBX ' dwgX.Open (fn) ' End If ' End If ' Set dbxOpen = dwgX ' End If 'End Function ' Sub ImportLayout(ByVal lyName As String, ByVal fileName As String) Dim cmdName As String cmdName = Join(Split(fileName, "\", , 1), "/") cmdName = "(command ""._Layout"" ""_T"" """ & cmdName & """ """ & lyName & """) " ThisDrawing.SendCommand cmdName End Sub ' ' Add reference to AutoCAD/ObjectDBX Common 16.0 Type Library (axdb16enu.dll) ' This samples copies all dimstyles from specified drawing to the current drawing ' Existing dimstyles are not affected Public Sub ImportDimstyles() Dim oAxDbDoc As New AxDbDocument oAxDbDoc.Open "c:\DimStyles.dwg" Dim oObj() As Object Dim oDs As AcadDimStyle Dim i As Integer For i = 0 To oAxDbDoc.DimStyles.Count - 1 ReDim Preserve oObj(i) Set oObj(i) = oAxDbDoc.DimStyles(i) Next oAxDbDoc.CopyObjects oObj, ThisDrawing.Database.DimStyles End Sub ' ' 2000-03-08 ' By Jimmy Bergmark ' Copyright © 1997-2003 JTB World, All Rights Reserved ' Website: www.jtbworld.com ' E-mail: info@jtbworld.com ' Runs in All AutoCAD version if axdb1'x'.dll (must be referenced) ' Example of batch for listing all layers on all drawings in a directory. ' ' http://www.jtbworld.com/VBA/listlayer.htm ' ' Corrected by d.OLIVES - for All version and test vbReadOnly ' 2007-02-02 Private Sub ListLayers() Dim indir As String Dim elem As Object Dim filenom As String Dim WholeFile As String Dim newHeight As Double Dim objDbx As AxDbDocument Dim MyAttr As Integer Dim acadTyp As String acadTyp = Left$(ThisDrawing.Application.Version, 2) Set objDbx = ThisDrawing.Application.GetInterfaceObject("ObjectDBX.AxDbDocument." & acadTyp) indir = "C:\Program Files\Egid\Cache" filenom = Dir$(indir & "\*.dwg") MyAttr = GetAttr(indir & "\" & filenom) Do While filenom <> "" ThisDrawing.Utility.Prompt vbCrLf & "File: " & filenom ThisDrawing.Utility.Prompt vbCrLf & "-----------------" WholeFile = indir & "\" & filenom objDbx.Open WholeFile For Each elem In objDbx.Layers ThisDrawing.Utility.Prompt vbCrLf & elem.name Next Set elem = Nothing If (MyAttr And vbReadOnly) <> vbReadOnly Then objDbx.SaveAs WholeFile End If filenom = Dir$ ThisDrawing.Utility.Prompt vbCrLf Loop End Sub ' ' ' 2000-03-08 ' By Jimmy Bergmark ' Copyright © 1997-2003 JTB World, All Rights Reserved ' Website: www.jtbworld.com ' E-mail: info@jtbworld.com ' Runs in All AutoCAD version if axdb1'x'.dll (must be referenced) ' Example of batch for listing all xrefs on all drawings in a directory. ' ' http://www.jtbworld.com/VBA/listxref.htm ' ' Corrected by d.OLIVES - for All version and test vbReadOnly ' 2007-02-02 Private Sub ListXREF() Dim indir As String Dim elem As Object Dim filenom As String Dim WholeFile As String Dim newHeight As Double Dim objDbx As AxDbDocument Dim MyAttr As Integer Dim acadTyp As String acadTyp = Left$(ThisDrawing.Application.Version, 2) Set objDbx = ThisDrawing.Application.GetInterfaceObject("ObjectDBX.AxDbDocument." & acadTyp) indir = "C:\Program Files\Egid\Cache" filenom = Dir$(indir & "\*.dwg") MyAttr = GetAttr(indir & "\" & filenom) Do While filenom <> "" ThisDrawing.Utility.Prompt vbCrLf & "File: " & filenom ThisDrawing.Utility.Prompt vbCrLf & "-----------------" WholeFile = indir & "\" & filenom objDbx.Open WholeFile For Each elem In objDbx.Blocks If elem.IsXRef = True Then ThisDrawing.Utility.Prompt vbCrLf & elem.name End If Next Set elem = Nothing If (MyAttr And vbReadOnly) <> vbReadOnly Then objDbx.SaveAs WholeFile End If filenom = Dir$ ThisDrawing.Utility.Prompt vbCrLf Loop End Sub ' ' Runs in All AutoCAD version if axdb1'x'.dll (must be referenced) ' Example of batch for listing all SummaryInfo = DWG Properties in a directory. ' by d.OLIVES - for All version and test vbReadOnly ' 2007-02-02 Private Sub ListPROPS() Dim indir As String Dim elem As Object Dim filenom As String Dim WholeFile As String Dim newHeight As Double Dim objDbx As AxDbDocument Dim MyAttr As Integer Dim acadTyp As String Dim myProps As AcadSummaryInfo Set myProps = ThisDrawing.SummaryInfo myProps.RevisionNumber = 1 Set myProps = Nothing acadTyp = Left$(ThisDrawing.Application.Version, 2) Set objDbx = ThisDrawing.Application.GetInterfaceObject("ObjectDBX.AxDbDocument." & acadTyp) indir = "C:\Program Files\Egid\Cache" filenom = Dir$(indir & "\*.dwg") MyAttr = GetAttr(indir & "\" & filenom) Do While filenom <> "" ThisDrawing.Utility.Prompt vbCrLf & "File: " & filenom ThisDrawing.Utility.Prompt vbCrLf & "-----------------" WholeFile = indir & "\" & filenom objDbx.Open WholeFile ThisDrawing.Utility.Prompt vbCrLf & "Auteur : " & objDbx.SummaryInfo.Author Set elem = Nothing If (MyAttr And vbReadOnly) <> vbReadOnly Then objDbx.SaveAs WholeFile End If filenom = Dir$ ThisDrawing.Utility.Prompt vbCrLf Loop End Sub ' ' Pour VB 'http://discussion.autodesk.com/thread.jspa?messageID=5167190 Public Sub DbxRefTest() ' To test, set references to: 'Microsoft Visual Basic for Applications Extensibility 5.3 'C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB 'AutoCAD/ObjectDBX Common 16.0 Type Library 'C:\Program Files\Common Files\Autodesk Shared\axdb16enu.tlb 'Run in: AutoCAD 2007 Dim Dbx As AxDbDocument Dim i As Integer Dim oVBE As VBE Dim oVBP As VBProject Dim Version As String Version = Mid(ThisDrawing.GetVariable("acadver"), 1, 2) 'Fix Reference Set oVBE = Application.VBE Set oVBP = oVBE.ActiveVBProject With oVBP.References For i = 1 To .Count If .Item(i).name Like "AXDBLib" Then If Not .Item(i).Description Like _ "AutoCAD/ObjectDBX Common " & _ Version & ".0 Type Library" Then .Remove .Item(i) .AddFromFile _ "C:\Program Files\Common Files" & _ "\Autodesk Shared\axdb" & _ Version & "enu.tlb" End If GoTo FixRefDone End If Next End With FixRefDone: Set oVBP = Nothing Set oVBE = Nothing 'Get Template Dbx If CInt(Version) < 16 Then Set Dbx = AcadApplication.GetInterfaceObject("ObjectDBX.AxDbDocument") Else Set Dbx = AcadApplication.GetInterfaceObject("ObjectDBX.AxDbDocument." & Version) ' End If Dbx.Open ThisDrawing.Application.Preferences.Files.QNewTemplateFile 'Clear Dbx Set Dbx = Nothing End Sub ' Sub TestATTRIBUTS() Dim objDbx As Object 'Dim arx As AxDbDocument Dim col(0) As Object Dim blockdef As AcadBlock Dim acadTyp As String Dim indir As String Dim elem As Object Dim filenom As String Dim WholeFile As String Dim newHeight As Double 'Dim objDbx As AxDbDocument Dim MyAttr As Integer Dim Anzahl As Long Dim Entity As AcadEntity Dim BlockRef As AcadBlockReference Dim InsPkt As Variant Dim PNR As String Dim Attr As AcadAttributeReference ReDim Punkte(0 To 0) acadTyp = Left$(ThisDrawing.Application.Version, 2) ' For Each blockdef In objDbx.Blocks ' If blockdef.IsLayout = False Then ' Set col(0) = blockdef ' Call objDbx.CopyObjects(col, ThisDrawing.Blocks) ' End If ' Next blockdef Set objDbx = ThisDrawing.Application.GetInterfaceObject("ObjectDBX.AxDbDocument." & acadTyp) indir = "C:\TEMP\T_Essai" filenom = Dir$(indir & "\*.dwg") MyAttr = GetAttr(indir & "\" & filenom) Do While filenom <> "" WholeFile = indir & "\" & filenom On Error GoTo Err_Trap objDbx.Open WholeFile For Each Entity In objDbx.PaperSpace If Entity.EntityType = acBlockReference Then If Entity.name = "Cartouche" Then Anzahl = Anzahl + 1 Set BlockRef = Entity InsPkt = BlockRef.insertionPoint ReDim Preserve Punkte(0 To UBound(Punkte) + 1) Punkte(UBound(Punkte)).Rechtswert = InsPkt(0) Punkte(UBound(Punkte)).Hochwert = InsPkt(1) Punkte(UBound(Punkte)).Höhe = InsPkt(2) If BlockRef.HasAttributes Then Dim varAttributes As Variant Dim i As Integer Dim strAttributes As String ThisDrawing.Utility.Prompt vbCrLf & "File: " & filenom ThisDrawing.Utility.Prompt vbCrLf & "-----------------" varAttributes = BlockRef.GetAttributes For i = LBound(varAttributes) To UBound(varAttributes) strAttributes = strAttributes & " Tag: " & varAttributes(i).TagString & _ " Value: " & varAttributes(i).textString & " " ThisDrawing.Utility.Prompt vbCrLf & "Auteur : " & strAttributes ThisDrawing.SummaryInfo.Author = varAttributes(i).textString strAttributes = "" Next PNR = 12345678 Punkte(UBound(Punkte)).PNR = PNR If (MyAttr And vbReadOnly) <> vbReadOnly Then objDbx.SaveAs WholeFile End If End If End If End If Next Entity ' Cas du fichier déjà ouvert passe au fichie suivant suite: filenom = Dir$ ThisDrawing.Utility.Prompt vbCrLf Loop Set objDbx = Nothing ThisDrawing.Utility.Prompt vbCrLf Exit Sub Err_Trap: Select Case Err.Number ' Cas du fichier déjà ouvert Case -2147467259 MsgBox "Attention ce fichier est déjà ouvert veuillez d'abord le fermer !", _ vbCritical, "Gestion des cartouches" Err.Clear GoTo suite Case Else Err.Clear Exit Sub ' Sortie sous-routine End Select End Sub ' - - - - - - - - - - - - - - - - - - - - - - - - - - Sub TestobjDbx() Dim objDbx As Object 'Dim arx As AxDbDocument Dim col(0) As Object Dim blockdef As AcadBlock Dim acadTyp As String acadTyp = Left$(ThisDrawing.Application.Version, 2) Set objDbx = ThisDrawing.Application.GetInterfaceObject("ObjectDBX.AxDbDocument." & acadTyp) objDbx.Open "C:\Program Files\Egid\Modeles\2002\Cartouche.DWG" For Each blockdef In objDbx.Blocks If blockdef.IsLayout = False Then Set col(0) = blockdef Call objDbx.CopyObjects(col, ThisDrawing.Blocks) End If Next blockdef Set objDbx = Nothing End Sub
  7. tyrese69_

    A l\'aide!

    Bonjour, Patrick Je perd régulièrement des morceaux liés au VBA aprés un nettoyage trop profond de ma base de registre, et à chaque fois à réinstall ou réparation d'AutoCAD a été nécessaire, je n'ai pas eu le temps de cherche quelle entrée dans la base de registre étaient concernée. (vesrion 2006 !) Daniel OLIVES
  8. tyrese69_

    PlotConfiguration courante

    Re bonjour, Pour être plus précis, à l'affichage avec la boite de dialogue le fond blanc et bien que dans la zone définie et le pointillé de page en page est présent, par contre avec la programmation, le fond blanc est pour tout l'espace papier, il n'y a pas de pointillé mais le format est correct, à l'apercu et à l'impression ?? Daniel OLIVES Un extrait du code : CoinBasX = -1462.7: CoinBasY = 0 CoinHautX = 217.3: CoinHautY = 889.93 pt1(0) = CoinBasX: pt1(1) = CoinBasY: pt1(2) = 0 pt2(0) = CoinHautX: pt2(1) = CoinHautY: pt2(2) = 0 ' Modification du nom de l'onglet de présentation objPresentation.name = "A0+++_" & objPresentation.name ' Ajout d'une mise en page pour DWG Set PlotConfig = _ ThisDrawing.PlotConfigurations.Add(objPresentation.name) ' passe active la présentation ThisDrawing.ActiveLayout = objPresentation PlotConfig.ConfigName = "TraceurLyon0.pc3" PlotConfig.CanonicalMediaName = "User259" objPresentation.PaperUnits = acMillimeters ' unité papier objPresentation.SetCustomScale 1, 1 objPresentation.RefreshPlotDeviceInfo ' Transfert du point 3D vers un point 2D ptz1(0) = pt1(0) ptz2(0) = pt2(0) ptz1(1) = pt1(1) ptz2(1) = pt2(1) PlotConfig.SetWindowToPlot ptz1, ptz2 PlotConfig.GetWindowToPlot ptz1, ptz2 PlotConfig.PlotType = acWindow ' Fenêtre PlotConfig.CenterPlot = True ' Centré le tracé ZoomWindow pt1, pt2 ' zoom fenêtre ' ThisDrawing.ActiveLayout.PlotRotation = ac90degrees ' or ac0degrees, ac180degrees, ac270degrees ' passage de la présentation nommée au la vue courante objPresentation.CopyFrom PlotConfig ThisDrawing.Regen acAllViewports ' pour prise en compte ThisDrawing.ActiveLayout.RefreshPlotDeviceInfo 'If valOpBut_apercu = True Then ThisDrawing.Plot.DisplayPlotPreview acFullPreview 'End If
  9. Bonjour à tous, Par la méthode j'ai créé une mise en page "nommée" Set PlotConfig = ThisDrawing.PlotConfigurations.Add(objPresentation.name) et par la méthode : objPresentation.Copyfrom PlotConfig, je la copie dans la présentation courante mais l'apercu n'est pas identique à la même fonction par la boite de dialogue "Gestionnaire de mise en page" --> Mise en page --> "Définir courante". Est ce la bonne méthode ou bien il ya t'il une autre façons pour procéder ? Daniel OLIVES
  10. tyrese69_

    vbs

    Re Pardon , j'ai oublié Patrick_35 pour son aide ici et ces réponses aux sujets connexes ! Daniel OLIVES
  11. tyrese69_

    vbs

    Bonjour, Pour résoudre mon problème, j'ai créé un script qui lance le chargement et la commande d'un lisp d'initilisation des fichiers de support désirés ! Sur le réseau général du serveur le script est disponible et lance le lisp qui parmètre le poste sur lequel je souhaite utiliser la configuration standard "entreprise". Pour le VBS je regarderais plus tard ! Sur le JTB blog il ya des exemples, mais seulement pour une installation d'autocad ! Daniel OLIVES
  12. tyrese69_

    vbs

    Bonjour à tous, Comment en vbs, paramétrer AutoCAD, par exemple, ajouté un chemin de recherche de fichiers de support. Daniel OLIVES
  13. Bonjour, Je n'avais plus le lien ! Un erecherche google "stein vlisp V2" m'a donné : http://discussion.autodesk.com/servlet/JiveServlet/download/130-424196-4943076-87782/The%20Visual%20LISP%20Developers%20Bible.pdf#search=%22stein%20vlisp%20V2%22 Il fonctionne !! Daniel olives
  14. Bonjour, Pour la blible VLISP il existe une version V2 légèrement plus récente ! Daniel OLIVES
  15. tyrese69_

    entsel hachures

    Bonjour, Merci pour ces explications, il faut que je fouille cela ! Je suis moins à l'aise avec le lisp qu'avec le VBA mais, rien n'est possible l'un sans l'autre. Je me suis donc mis également au lisp / vlisp. Daniel OLIVES
  16. tyrese69_

    entsel hachures

    Bonsoir, Merci Zebulon_ pour ton aide et pour ce lisp trés fourni ! Je vais regarder celà de plus prés. Je me permettrait de te demander de l'aide sur les différentes options de sélection de ta boite de dialogue. Car ce que je cherche à obtenir c'est un décalage d'offset de la trame de 0.3,0.3 afin de pouvoir dans certains cas centrer les hachures sur le contour d'une dalle et non pas par son centre. J'espère avoir été assez clair dans ma demande. @+ Dans la finalité de mon approche, les réseaux de luminaires s'auto adapteront au contour selon un module de base prédéfini. Daniel OLIVES
  17. tyrese69_

    entsel hachures

    Bonjour, Voici le résultat ! (Je suis électricien et ) j'ai besoin de calpiner des luminaires dans un contour correspondant à un local, équipé d'un plafond 600x600. Ce petit lisp est une première approche, il reste des cas complexes à traiter selon les projets. J'ai mis ce bout de code dans AutoCAD.lsp ; Hachures intelligentes ; pas de 600 x 600 mm avec motif centré ; (defun c:hspe(/ ccourante ss) ; hachures "solid" NET 0.192 soit 600x600 mm ; pour échelle 1 U = 1 m, angle 0° puis Cr (command "_-hatch" "p" "NET" "0.193" "0" "") ; Créer des hachures Associatives? [Oui/Non] Non puis Cr Cr (command "_-hatch" "A" "A" "N" "" "") ; Créer des hachures séparées? [Oui/Non] Non puis Cr Cr (command "_-hatch" "A" "H" "N" "" "") ; Origine soit: O, "utilise par Défaut l'étendue des contour" soit: D , ; "Centre" soit: C, stocker en tant qu'origine par défaut ? O/N soit: N puis Cr (command "_-hatch" "o" "d" "c" "o" "") (princ "hachure") ; puis sélection du contour ! (setq ccourante (getvar "CLAYER")) (command "_-layer" "e" "ZZ_const" "") (prompt "\nSélectionner des polylignes ! ") (if (setq ss (ssget '((0 . "LWPOLYLINE") (-4 . "&") (70 . 1)))) (command "_-hatch" "_s" (ssadd (entlast) ss) "" "") ) (command "_-layer" "e" ccourante "") )
  18. Bonsoir, La der de la semaine ! Comment modifier cette ligne pour pouvoir sélectioner plusieures polyligne? (command "_-hatch" "s" (setq p1(car(entsel "\nSélectionner une polyligne ! "))) "" "") Daniel OLIVES
  19. Bonjour, Dans la base de registre ! Un exemple pour la recherche des CTB, idem pour le répertoire d'installation. Il faut rechercher le chemin qui devrait être : Clé : HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R16.2\ACAD-4001:40C Noms : AcadLocation Valeur : C:\Program Files\AutoCAD 2006 Daniel OLIVES (defun GetPathPSSD (nomctb / ) (vl-load-com) (setq PathPSSD (vl-registry-read (strcat "HKEY_CURRENT_USER\\" (vlax-product-key) "\\Profiles\\" (vla-get-activeprofile (vla-get-profiles (vla-get-preferences (vlax-get-acad-object)) ) ) "\\General" ) "PrinterStyleSheetDir" ) ) (setq nometpathPSSD (strcat PathPSSD "\\" nomctb)) (if (eq (findfile (strcat PathPSSD "\\" nomctb)) nometpathPSSD) (setq sUsers1 "yes") (setq sUsers1 "no") ) ; end if ) ; Fin de GetPathPSSD - - - - -
  20. Re bonjour, Merci Gile la première ligne était due à un copié coller malheureux ! C'est "ATTREQ" qui me posait un problème ! Cà marche ! Je vais pouvoir finir la routine d'insertion de bloc dans une polyligne pour y inscrire la surface et autres données propres au local concerné ! Daniel OLIVES
  21. Re aprés essai , c'est ma facons d'écrire : crochet code puis crochet qui à ouvert le mode "code" puis le second crochet fin code crochet à perturbé 'affichage ! Aprés lecture de l'aide j'ai compris l'utilisation du bouton "dièse" ! Il suffisait de lire l'aide ! Daniel Olivès
  22. Re bonjour, juste une petite question de mise en page ! derrière [ texte code ] ma justification est à droite pourquoi ? daniel OLIVES [fin code]
  23. Bonjour Gile, C'est bien mon problème, mais j'obtiens en fin de command, ce message d'erreur lors de l'envoi des valeurs d'attribut ! (copie écran F2) Commande: insbloc _.insert Entrez le nom du bloc ou [?]: testatt Spécifiez le point d'insertion ou [PointdeBase/Echelle/X/Y/Z/Rotation/PEchelle/PX/PY/PZ/PRotation]: 0,0 Entrez le facteur d'échelle en X, spécifiez le coin opposé ou [Coin/XYZ] <1>: 1.000000000000000 Entrez le facteur d'échelle en Y d'échelle en X>: Spécifiez l'angle de rotation <0>: Commande: _.insert Entrez le nom du bloc ou [?] : testatt Spécifiez le point d'insertion ou [PointdeBase/Echelle/X/Y/Z/Rotation/PEchelle/PX/PY/PZ/PRotation]: 0,0 Entrez le facteur d'échelle en X, spécifiez le coin opposé ou [Coin/XYZ] <1>: 1.000000000000000 Entrez le facteur d'échelle en Y d'échelle en X>: Spécifiez l'angle de rotation <0>: Commande: Val att 1 Commande inconnue "VAL ATT 1". Appuyez sur F1 pour obtenir de l'aide. Commande: Val att 2 Commande inconnue "VAL ATT 2". Appuyez sur F1 pour obtenir de l'aide. Commande: Val att 3 Commande inconnue "VAL ATT 3". Appuyez sur F1 pour obtenir de l'aide. Commande: 0 (defun c:insbloc ( / LstEnt LstEntIns) (command "_.insert" "testatt" "0,0" (getvar "dimscale") "" "") (setq old_dia (getvar "ATTDIA")) (setvar "ATTDIA" 0) (command "_.insert" "testatt" "0,0" (getvar "dimscale") "" "" "Val att 1" "Val att 2" "Val att 3" ) (setvar "ATTDIA" old_dia) ) [fin code] J'avais bien trouvé un exemple de ce type mais avec "AutoCAD 2006", il semble que j'ai qqs PB ! C'est pour celà que j'essayais une autre méthode ! Daniel OLIVES
  24. Bonjour à tous, Aprés une insertion d'un bloc nommé "testatt", depuis un programme lisp (command "_.insert" "testatt" "0,0" (getvar "dimscale") "" "") Comment modifier la fonction suivante pour que seul le dernier bloc insérer puisse être sélectionné , et ses attributs modifés ? Daniel OLIVES (defun MAJREP (REP / AncVal LstEnt NomEnt) (setq NomEnt (entnext)) (while NomEnt (setq LstEnt (entget NomEnt)) (if (and (member '(0 . "ATTRIB") LstEnt) (member '(2 . "REP") LstEnt)) (progn (setq AncVal (cdr (assoc 1 LstEnt))) (setq LstEnt (subst (cons 1 REP) (cons 1 AncVal) LstEnt)) (entmod LstEnt) (entupd NomEnt) ) ; fin progn ) ; fin If (setq NomEnt (entnext NomEnt)) ) ; fin while (princ) )
  25. Re Ceci est la part qui gère le champ ! (strcat "%<\\AcObjProp Object(%<\\_ObjId " (itoa id) ">%).Area \\f \"%lu6%qf1 m2>%") C'est la concaténation d'une chaine de caractères "strcat" %\\AcObjProp Object(%<\\_ObjId l'Id de l'objet et la suite >%).Area\\f\"%lu6%qf1 m2>%" En VBA le strcat ce fait avec des & entre chaque partie ! http://discussion.autodesk.com/thread.jspa?threadID=487773 Le lien suivant te donne un exemple ! Daniel OLIVES
×
×
  • 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é