GEGEMATIC
Membres-
Compteur de contenus
1 416 -
Inscription
-
Dernière visite
-
Jours gagnés
19
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par GEGEMATIC
-
Salut Il me semble que tu as déjà eu ta réponse, patrick_35 est le spécialiste du DBX, s'il te dit : 1) Un fichier dxf est un fichier texte. Donc il faut le traiter en tant que tel et se lancer à fond dans les codes dxf c'est qu'il a du déjà essayer ... je ne vois pas le problème de convertir des millier de dxf en dwg : tu lance ton traitement la nuit, ou sur un poste libre. par contre, si vraiment tu tiens à ne pas passer par cette étape,tu peu ouvrir un dwg vide, utiliser dxfin, faire ton traitement, puis faire dxfout: ça ne marchera pas s'il y a des xref, ou des maintiens. l'interret de dbx est qu'il est plus rapide, car l'ouverture d'un dessin prend du temps, mais sinon, ne néglige pas la solution "script", très simple, mais effectivement un peu plus lente. Gérald
-
salut, c'est simple, tu converti ton dxf en dwg ... Gérald
-
Zlib fichier cryptés STB
GEGEMATIC a répondu à un(e) sujet de tyrese69_ dans Pour aller plus loin en LISP
Salut, La je te comprends mieux, je n'ai jamais voulu utiliser objectdcl pour cette raison. par contre, vu le caractère assez universel de zlib (la compression gzip, rien de moins) je pense que tu peux envisager la pérennité assez facilement. Gérald -
Zlib fichier cryptés STB
GEGEMATIC a répondu à un(e) sujet de tyrese69_ dans Pour aller plus loin en LISP
Salut, ce sujet tombe à pic, j'ai moi aussi besoin de visualiser et editer ces fichiers, surtout les PMP j'avais dans un coin de ma tête une manip consistant à changer leur extension en zip, mais ça ne marche pas, je ne connais pas l'extension correspondant à la compression zlib par contre j'ai trouvé ces outils qui marchent très bien : Chez Govert qui est un gage de qualité je ne comprends pas pourquoi tu veux éviter d'utiliser cette dll ? ce n'est jamais qu'une librairie de plus ? Tu as certainement une raison, et ça m'intrigue ... Gérald -
Salut, je ne sais pas pourquoi tu veux vraiment fermer cette fenêtre, mais dans ce cas, la séquence ALT + F4 la fermera tu peux donc utiliser vbscript (regarde ce sujet) Plus concrètement, à la suite de (textscr) tu la ferme via (vlax-invoke-method (vlax-get-or-create-object "WScript.Shell") "SendKeys" "%{F4}") le % est équivalent à ALT Gérald
-
salut, tu as les 2 commandes lisp : (textscr): affiche la fenêtre texte (graphscr): affcige la fenêtre graphique Gérald
-
Salut, apparemment tu as la propriété object.Thickness je n'ai pas testé. Gérald
-
salut, tu peux aussi utiliser (vl-propagate 'symbol) Gérald
-
Salut, je n'ai pas encore renvoyé des infos de bugs sur Mep, car je n'ai pas encore assez de recul. par contre, j'ai perdu mon temps à le faire pour MAP, et les réponses qui m'ont été données "ce n'est pas un bug, mais un choix fonctionnel d'Autodesk" ne m'ont pas incité à continuer dans ce sens ... déclarer des bugs, ça prends du temps si on veut le faire bien. Gégé
-
Type d'attachement d'une référence externe
GEGEMATIC a répondu à un(e) sujet de coyotte dans ObjectARX/DBX, C++, .NET, RealDWG
salut, j'ai essayé de faire exactement l'inverse il y a deux ans ... finalement, je n'avais pas eu le temps de finir regarde ce sujet: -methode-non-managee maintenant, [mode humour], je pense que ce que tu veux faire est criminel[/fin humour], les xref de type attacher sont la pire chose qu'Autodesk ait inventé pour le travail collaboratif : Si tu insère plusieurs références qui référencent elle même une référence du même nom, (mais qui peut être différente ... ) en mode attacher, tu peut arriver rapidement à un stade où il t'es impossible de contrôler quelle xref est réellement chargée. Pire tu peut avoir des références circulaires qui te bloquent Autocad pour démêler ça, il te faut parfois beaucoup de temps et de patience. moi j'utilise un système de fichier style "ini" qui contient la liste des xref, et je transfert des états de calque pour conserver le rendu de la xref. c'est un peux lourd, l'idéal serait d'accèder à la xref (via dbx ?) récupérer la liste des sous xref qu'elle référence, ainsi que les état de calque, et d'automatiser attachement "niveau" et changement des calques. Gérald -
Salut merci, c'était ça, et apparemment, elle doit au moins en comporter un au passage je poste cette petite fonction, qui est bien utile pour moi 'usage (FindFilesLike "Directory" "filepattern" "mode = TopDirectoryOnly or AllDirectories") 'TopDirectoryOnly Inclut uniquement le répertoire actif dans une recherche. 'AllDirectories Inclut le répertoire actif et tous les sous-répertoires dans une opération de recherche. Cette option inclut des points d'analyse tels que des lecteurs montés et des liens symboliques dans la recherche. 'exemple (FindFilesLike "C:\\MonChemin\\" "MonFichierN*.pdf" "TopDirectoryOnly") 'retourne ("C:\\MonChemin\\MonFichierN1.pdf" "C:\\MonChemin\\MonFichierN2.pdf") <LispFunction("FindFilesLike")> _ Public Function FindFilesLike(ByVal rbfArgs As ResultBuffer) As ResultBuffer Dim arInputArgs As Array Dim rbfResult As ResultBuffer Dim Mode As String Dim Path As String Dim FilePattern As String Dim filesFound As Array = Array.CreateInstance(GetType(String), 0) Dim FileDetails(0) As String arInputArgs = rbfArgs.AsArray Path = CType(arInputArgs.GetValue(0), TypedValue).Value FilePattern = CType(arInputArgs.GetValue(1), TypedValue).Value Mode = CType(arInputArgs.GetValue(2), TypedValue).Value If Mode = "AllDirectories" Then filesFound = System.IO.Directory.GetFiles(Path, FilePattern, IO.SearchOption.AllDirectories) ElseIf Mode = "TopDirectoryOnly" Then filesFound = System.IO.Directory.GetFiles(Path, FilePattern, IO.SearchOption.TopDirectoryOnly) Else MsgBox("Mode de recherche : " & Mode.ToString & " Inconnu") End If 'Dim Nb As Integer = 0 If filesFound.Length > 0 Then rbfResult = New ResultBuffer For Each oneFIle In filesFound 'Nb = Nb + 1 rbfResult.Add(New TypedValue(CInt(5005), oneFIle.ToString)) Next Return rbfResult Else 'les 2 suivant retourneront (nil) 'rbfResult = New ResultBuffer(New TypedValue(CInt(LispDataType.Nil))) 'rbfResult.Add(New TypedValue(CInt(LispDataType.Nil))) 'celui là retourne nil ... Return Nothing End If End Function
-
Salut, je reprend un projet .net, car je voulais ma faire une petite extension de findfile qui accepte les joker tout marche, sauf le LispFunction <LispFunction("FindFilesLike")> _ Public Function FindFilesLike(ByVal Path As String, ByVal FilePattern As String, ByVal Mode As Integer) As ResultBuffer A l'occasion, j'ai remarqué que tous mes lispfunction que j'avais, et qui marchais créent le même message d'erreur : System.ArgumentException: Impossible d'établir une liaison avec la méthode cible, car sa signature ou sa transparence de sécurité n'est pas compatible avec celle du type délégué. à System.Delegate.CreateDelegate(Type type, Object firstArgument, MethodInfo method, Boolean throwOnBindFailure) à System.Delegate.CreateDelegate(Type type, Object firstArgument, MethodInfo method) à Autodesk.AutoCAD.Runtime.CommandClass.InvokeWorker(MethodInfo mi, Object commandObject, Boolean bLispFunction) à Autodesk.AutoCAD.Runtime.CommandClass.InvokeWorkerWithExceptionFilter(MethodInfo mi, Object commandObject, Boolean bLispFunction) à Autodesk.AutoCAD.Runtime.PerDocumentCommandClass.Invoke(MethodInfo mi, Boolean bLispFunction) à Autodesk.AutoCAD.Runtime.CommandClass.CommandThunk.InvokeLisp() "Demande ADS erronée" Si qq a des idées ? merci, Gérald
-
C'est tout à fait vrai, il y a également un bloc de hachures style "BoundingBox" qui entoure le solide 3d, que l'on peut faire disparaitre. Je dirais que pour les pièce 3d, le mieux est de faire un _flatten avant, et de poser ce flatten sur la vue 2d
-
Salut, Donc pour avoir les axes sur une coupe 2d, le bon style est "présentation Mep" Mais il manque les murs: Pour obtenir l’affichage d’un mur en mode présentation car par défaut les murs ne s’affichent pas : Gérer, Style et affichage, Gestionnaire d’affichage, : On coche modèle et plan pour le composant mur Savoie !
-
Salut, je me décerne la palme du "melon", car mon top 10 est de mon cru ... mais c'est à l'usage ce que j'utilise le plus souvent. 1 PowerClic simple = la commande "ajouter la sélection" d'Autodesk et "DEF" 2 PowerClic + ctrl = "Sélection rapide", ou "SSFilter" 3 PowerClic + ctrl = changer les propriétés : d'un élément, d'une sélection d'élements 4 PowerClic + ctrl + Zoom sur sel 1/1 : zoomer Séquentiellement sur une sélection d'entités 5 deux préHistoricLisps: RT_REF rotation avec point de référence, COUPE@ comme son nom l'indique 6 PowerClic + ctrl + CrossStringZoom : zoomer Séquentiellement sur une sélection d'entités contenant une chaine de texte 7 Commandes de SCU: C:SCAZ selection rapide de l'axe Z d'un scu par 2 point [ none ] C:SCF Applique un scu à la fenetre courante et aligne avec ce scu [ none ] C:SCG revient rapidement au scu général [ none ] C:SCO crée rapidement un scu objet [ none ] C:SCP revient rapidement au scu précédent [ none ] C:SCZ suite à la rotation du scu, aligne la fenêtre d'affichage [ none ] C:SGZ suite à la rotation la zone d'affichage ,restaure le SCU Genéral 8 PowerClic Groupe extension : Coller comme groupe, Décomposer le bloc comme groupe 9 PowerTextools : Numérotation de textes et attributs, utilitaires divers 10 PowerClic + ctrl + calquereport, blocreport, attreport : Série de plug-in pour afficher la liste des calques, des blocs ou des attributs d'une sélection. J'ai par contre un répertoire plein de lisps de Gile, Patrick35, VHD, Bonuscad ... que j'utilise plus rarement, et dont surtout, je me suis copieusement inspiré ... En .Net, c'est l'editeur Edict de Gile, et objectdatacs d'Olivier E. Gérald
-
Salut, Je confirme ce bug ... Moi je quitte le dessin et je le rouvre Gérald
-
Boite de dialogue HACHURES
GEGEMATIC a répondu à un(e) sujet de yusukens82 dans Pour aller plus loin en LISP
salut, tu peux aussi utiliser initdia (initdia) (command "_.bhatch") si tu ajoute "t" (command "_.bhatch" "t") tu vas direct à la boite de dialogue est tu boucle sur ( = (getvar "CMDACTIVE" ) 1) avec un (command pause) Gérald -
[Résolu] Ajout/suppression d'attribut à une référence de bloc
GEGEMATIC a répondu à un(e) sujet de Olivier Eckmann dans Pour aller plus loin en LISP
salut, si tu as essayé la solution de la réinsertion, c'est que ta définition de bloc n'a plus d'attributs non plus, vrai ? as-tu essayé de faire un attsync ? es-ce que hasattribute reste à 1 ? Gérald -
Salut, moi je suis sous mep 2014. Ce qui complique (inutilement) mep : - Trop de styles visuels redondant - Trop de styles de de coupes et élévation Je les ai tous passez en revus, la plupart sont des doublons. - 3 façons de créer des lignes de coupes et d 'élévation, qui sont en fait la même chose avec des paramètres de commande différent, mais ça déroute Après en gros: - activer la coupe 3d : délimite l'ensemble du dessin : inutile pour le rendu en présentation - coupe 3d : créée une copie 3d de la zone délimitée par le parallélépipède de coupe, mais impossible de respecter les couleurs d'origine des objets - coupe 2d : rendu très propre, mais impossible d'activer les axes en même temps que le gros oeuvre Il faut se plonger dans le gestionnaire d'affichage, mais là c'est vraiment une hydre ...
-
Salut, j'ai entendu parlé d’alternative à la création de coupe et élévation 2d, les élévation 3d. j'ai fait une tentative, mais je ne vois pas bien l’intérêt, j'ai une coupe dans ma vue isométrique, et après ? Les coupes 2d ont l’inconvénient d'être très lourdes. J'ai eu les axes avec Coupe Mep plan mais les murs ont disparu ! après j'ai essayé de faire des rendu directement dans les fenêtre de l'espace papier, mais le temps de traitement est très long à l'impression Quel est votre système de rendu des plans ? Merci Gérald
-
Salut, merci de ta réponse. depuis, j'ai créé mes propres composants de réduction 3xD-d en excentrique et en concentrique. je n'arrive plus à reproduire le problème dont j'ai parlé. Gérald
-
salut, le (setq mdb ne sert à rien chez moi, la méthode retourne nil l'objet sur lequel travailler reste acc. Apparemment on bénéficie bien de la même interface que VBA pour access, donc c'est assez facile de retrouver ses petits La question que je me pose, c'est : quel est l'interret comparé de la méthode de connexion par ODBC ou ADODB ? avec toutes les contraintes que ça suppose, plutôt qu'avec la méthode d'asptt9, qui est quand même beaucoup plus simple, et qui s’affranchi des problèmes de pilotes ODBC64 avec access : Il doit bien y avoir une subtilité qui m'échappe... Gérald
-
transformer polyligne en multiligne
GEGEMATIC a répondu à un(e) sujet de philous2 dans Pour aller plus loin en LISP
salut, c'est tout a fait possible, mais ya un peu de boulot je pense. 1 : il te faut créer le jeux de sélection des multi lignes à traiter 2 : parcourir ton jeu de sélection , et sélectionner les multilignes qui coupent ta multiligne, par exemple en utilisant _fastsel, sélection par trajet 2 : tu obtiens donc un nouveau jeux de sélection : les multilignes qui coupent ta multiligne 3 : tu trouve les points de coupure avec la méthode IntersectWith : RetVal = object.IntersectWith(IntersectObject, ExtendOption) ;;exemple d'utilisation en lisp : (setq e1 (vlax-ename->vla-object e1)) (setq e2 (vlax-ename->vla-object e2)) (setq res (vla-IntersectWith e1 e2 acExtendNone)) 4: il te faut classer les point d'intersection trouvé par ordre de parcours le long de ta multiligne : Pour cela utilise les fonction curve, notamment celle ci : vlax-curve-getDistAtPoint Returns the length of the curve's segment between the curve's start point and the specified point (vlax-curve-getDistAtPoint curve-obj point) 5: ensuite tu parcours ces intersection dans l'ordre et tu alterne l'ordre de sélection des multilignes pour l'opération croix fermées il te faut également émuler un entsel avec un liste composée de ton point d'intersection et de chacune des multilignes : (setq sel (list maMultiligne monInters)) (setq sel2 (list maMultiligneCoupee1 monInters)) (command "_mledit" "CF" sel sel2) Voilà, en gros, c'est faisable, mais ya du boulot. Gérald -
rensigner un attribut avec un lisp
GEGEMATIC a répondu à un(e) sujet de Infinicad dans LISP et Visual LISP
salut, ce qui est rigolo, c'est que le dump pour mac donne beaucoup d'infos supplémentaires, un mix d'info événementielles, voir pour le polylignes, des infos de type vlax curve il faudra un peu de temps pour voir les conséquences positives éventuelles de ces fonctions : ci dessous un comparatif d'un vlax-dump-object et d'un dumpallproperties (pour le visualiser, copier-coller dans un tableur avec ; comme séparateur) Gérald (vlax-dump-object (eobj));(dumpallproperties (enam) ) IAcadLWPolyline2: Interface AutoCAD Lightweight Polyline; Valeurs de propriétés:; Application (RO) = #<VLA-OBJECT IAcadApplication 000000014090a1d8>;(class: AcDbPolyline) ;Annotative (type: bool) (LocalName: Annotatif) = Failed to get value ;AnnotativeScale (type: AcString) (RO) (LocalName: Echelle annotative) = ;Failed to get value Area (RO) = 51752.8;Area (type: double) (RO) (LocalName: Aire) = 51752.793979 ;BlockId (type: AcDbObjectId) (RO) = 7ffff6039f0 ;CastShadows (type: bool) = 0 Closed = 0;Closed (type: bool) (LocalName: Fermé) = 0 ;CollisionType (type: AcDb::CollisionType) (RO) = 1 ;Color (type: AcCmColor) (LocalName: Couleur) = DUCALQUE ConstantWidth = 0.0;ConstantWidth (type: double) (LocalName: Largeur globale) = 0.000000 Elevation = 0.0;Elevation (type: double) (LocalName: Elévation) = 0.000000 ;EndParam (type: double) (RO) = 3.000000 ;EndPoint/X (type: double) (RO) (LocalName: Extrémité X) = Failed to get value Coordinate = ...Contenu indexé masqué...;EndPoint/Y (type: double) (RO) (LocalName: Extrémité Y) = Failed to get value Coordinates = (754.125 1135.2 1382.56 1419.34 1392.54 1312.17 ... );EndPoint/Z (type: double) (RO) (LocalName: Extrémité Z) = Failed to get value Document (RO) = #<VLA-OBJECT IAcadDocument 000000002547c3f0>;ExtensionDictionary (type: AcDbObjectId) (RO) = 0 ; " EntityTransparency = ""DuCalque""";Transparency (type: AcCmTransparency) (LocalName: Transparence) = 0 " Handle (RO) = ""BE4""";Handle (type: AcDbHandle) (RO) = be4 HasExtensionDictionary (RO) = 0;HasBulges (type: bool) (RO) = 0 ;HasFields (type: bool) (RO) = 0 ;HasSaveVersionOverride (type: bool) = 0 ;HasWidth (type: bool) (RO) = 0 Hyperlinks (RO) = #<VLA-OBJECT IAcadHyperlinks 0000000038c489b8>;Hyperlinks (type: AcDbHyperlink*) ;IsA (type: AcRxClass*) (RO) = AcDbPolyline ;IsAProxy (type: bool) (RO) = 0 ;IsCancelling (type: bool) (RO) = 0 ;IsEraseStatusToggled (type: bool) (RO) = 0 ;IsErased (type: bool) (RO) = 0 ;IsModified (type: bool) (RO) = 0 ;IsModifiedGraphics (type: bool) (RO) = 0 ;IsModifiedXData (type: bool) (RO) = 0 ;IsNewObject (type: bool) (RO) = 0 ;IsNotifyEnabled (type: bool) (RO) = 0 ;IsNotifying (type: bool) (RO) = 0 ;IsObjectIdsInFlux (type: bool) (RO) = 0 ;IsOnlyLines (type: bool) (RO) = 1 ;IsPeriodic (type: bool) (RO) = 0 ;IsPersistent (type: bool) (RO) = 1 ;IsPlanar (type: bool) (RO) = 1 ;IsReadEnabled (type: bool) (RO) = 1 ;IsReallyClosing (type: bool) (RO) = 1 ;IsTransactionResident (type: bool) (RO) = 0 ;IsUndoing (type: bool) (RO) = 0 ;IsWriteEnabled (type: bool) (RO) = 0 " Layer = ""0""";LayerId (type: AcDbObjectId) (LocalName: Calque) = 7ffff603900 Length (RO) = 1159.55;Length (type: double) (RO) (LocalName: Longueur) = 1159.548792 Lineweight = -1;LineWeight (type: AcDb::LineWeight) (LocalName: Epaisseur de ligne) = -1 " Linetype = ""ByLayer""";LinetypeId (type: AcDbObjectId) (LocalName: Type de ligne) = 7ffff603950 LinetypeGeneration = -1;Plinegen (type: bool) (LocalName: Génération du type de ligne) = 1 LinetypeScale = 1.0;LinetypeScale (type: double) (LocalName: Echelle du type de ligne) = 1.000000 ;LocalizedName (type: AcString) (RO) = Polyligne " Material = ""ByLayer""";MaterialId (type: AcDbObjectId) (LocalName: Matériau) = 7ffff603ec0 ;MergeStyle (type: AcDb::DuplicateRecordCloning) (RO) = 1 Normal = (0.0 0.0 1.0);Normal/X (type: double) = 0.000000 ;Normal/Y (type: double) = 0.000000 ;Normal/Z (type: double) = 1.000000 ObjectID (RO) = 151;ObjectId (type: AcDbObjectId) (RO) = 7ffff617140 ObjectID32 (RO) = 151; " ObjectName (RO) = ""AcDbPolyline"""; OwnerID (RO) = 152;OwnerId (type: AcDbObjectId) (RO) = 7ffff6039f0 OwnerID32 (RO) = 152; " PlotStyleName = ""ByLayer""";PlotStyleName (type: AcString) (LocalName: Style de tracé) = ByLayer Thickness = 0.0;Thickness (type: double) (LocalName: Epaisseur) = 0.000000 TrueColor = #<VLA-OBJECT IAcadAcCmColor 0000000038c48e90>;ReceiveShadows (type: bool) = 0 ;ShadowDisplay (type: AcDb::ShadowFlags) (RO) (LocalName: Affichage des ;ombres) = Failed to get value ;StartParam (type: double) (RO) = 0.000000 ;StartPoint/X (type: double) (RO) (LocalName: Départ X) = Failed to get value ;StartPoint/Y (type: double) (RO) (LocalName: Départ Y) = Failed to get value ;StartPoint/Z (type: double) (RO) (LocalName: Départ Z) = Failed to get value ; ; ;Vertices (type: AcDbPolylineVertex) ;Item 0: ; Bulge (type: double) = Failed to get value ; EndWidth (type: double) = Failed to get value ; Id (type: int) = Failed to get value ; IsA (type: AcRxClass*) (RO) = AcRxBoxedValueOnStack ; LocalizedName (type: AcString) (RO) = ; Point/X (type: double) = Failed to get value ; Point/Y (type: double) = Failed to get value ; StartWidth (type: double) = Failed to get value ;Item 1: ; Bulge (type: double) = Failed to get value ; EndWidth (type: double) = Failed to get value ; Id (type: int) = Failed to get value ; IsA (type: AcRxClass*) (RO) = AcRxBoxedValueOnStack ; LocalizedName (type: AcString) (RO) = ; Point/X (type: double) = Failed to get value ; Point/Y (type: double) = Failed to get value ; StartWidth (type: double) = Failed to get value ;Item 2: ; Bulge (type: double) = Failed to get value ; EndWidth (type: double) = Failed to get value ; Id (type: int) = Failed to get value ; IsA (type: AcRxClass*) (RO) = AcRxBoxedValueOnStack ; LocalizedName (type: AcString) (RO) = ; Point/X (type: double) = Failed to get value ; Point/Y (type: double) = Failed to get value ; StartWidth (type: double) = Failed to get value ;Item 3: ; Bulge (type: double) = Failed to get value ; EndWidth (type: double) = Failed to get value ; Id (type: int) = Failed to get value ; IsA (type: AcRxClass*) (RO) = AcRxBoxedValueOnStack ; LocalizedName (type: AcString) (RO) = ; Point/X (type: double) = Failed to get value ; Point/Y (type: double) = Failed to get value ; StartWidth (type: double) = Failed to get value Visible = -1;Visible (type: AcDb::Visibility) = 0 -
rensigner un attribut avec un lisp
GEGEMATIC a répondu à un(e) sujet de Infinicad dans LISP et Visual LISP
salut, incroyables ces 4 fonctions : • • dumpallproperties Retrieves an entity’s supported properties. • • getpropertyvalue Returns the current value of an entity’s property. • • ispropertyreadonly Returns the read-only state of an entity’s property. • • setpropertyvalue Sets the property value for an entity. est-ce que, à l'instar des fonction non documentées vlax-put et vlax-get elle retournes et acceptent des arguement de type "lisp" plutôt que de type "object" ? Gérald
