Aller au contenu

yann69690

Membres
  • Compteur de contenus

    88
  • Inscription

  • Dernière visite

Visiteurs récents du profil

Le bloc de visiteurs récents est désactivé et il n’est pas visible pour les autres utilisateurs.

yann69690's Achievements

Enthusiast

Enthusiast (6/14)

  • One Year In Rare
  • Dedicated Rare
  • Collaborator Rare
  • Reacting Well Rare
  • First Post Rare

Recent Badges

0

Réputation sur la communauté

  1. yann69690

    Hachures pour Zébras

    Bonjour, Je deterre le topic désolé, le script fonctionne bien à un détail près , comment sur les script autocad, vous arriver à afficher les accents? moi ça marche jamais...
  2. Sinon M.chatGPT, me propose cette solution (mettre les entités dans une liste et dépiler la liste) non fonctionnelle carrément et je ne pense pas que cela soit d'une grande aide coté logique. (if (setq on (ShowDcl)) (progn (setq layerSource (strcase (car lst))) (setq layerDestination (getstring t "Entrez le nom du nouveau calque à créer : ")) (if (and layerSource layerDestination) (progn (setq ss (ssget "_X" (list (cons 8 layerSource)))) (if ss (progn (or (tblsearch "LAYER" layerDestination) (command "_.LAYER" "_N" layerDestination "")) (setq entityList '()) (setq sslen (sslength ss)) (repeat sslen (setq entity (ssname ss 0)) (setq entityList (cons entity entityList)) (ssdel entity ss) ) (setq entityList (reverse entityList)) (foreach ent entityList (princ (strcat "\nCopying entity: " (itoa ent))) (command "_COPY" ent "_P" layerDestination "") ) (command "_.LAYER" "_F" layerSource "") ) ) ) )
  3. Bonjour, Je sèche sur la création/adaptation d'un lips mais j'espère que je ne suis pas très loin... contexte : gros projet signalisation horizontal et vertical avec beaucoup de changement au cours du temps (une phase par couche) donc je souhaite une lips qui copie l'ensemble des objets d'une couche et importe les entités (objet polyligne hachure etc) dans une nouvelle couche (dont je choisis le nom). Problème : J'utilise peut etre à tord la commande _copybase mais le problème c'est qu'elle ne gère pas l'ordre d'affichage de mes objets (quand je dessine je m'occupe de cela au fil de l'eau) donc on peut retrouver au hasard un objet en dessous d'une hachure ou par exemple deux polyligne (un passage piéton) et une flèche directionnelle inversés, etc... Donc phase 1 avec le bonne ordre, après mon lips phase 2 mais avec le désordre donc pas rentable en terme de temps de devoir tout refaire... Le code : (defun c:NewCopyLayer (/ layerSource layerDestination ss) (setq layerSource (strcase (getstring t "Entrez le nom du calque source : "))) (setq layerDestination (strcase (getstring t "Entrez le nom du nouveau calque à créer : "))) (if (and layerSource layerDestination) (progn (setq ss (ssget "_X" (list (cons 8 layerSource)))) (if ss (progn (or (tblsearch "LAYER" layerDestination) (command "_.LAYER" "_N" layerDestination "")) (command "_.COPYTOLAYER" ss "" layerDestination "_D" "0,0,0") (command "_.LAYER" "_M" layerDestination "") (command "_.-LAYER" "_F" layerSource "") ) ) ) ) ) (princ) Merci beaucoup de votre aide
  4. Bonjour à vous deux, et tous biensur, Je vous remercie d'avoir répondu, de mon coté j'ai fais pas mal de test avant de vous répondre. Je sais pas si je l'avais dit avant, mais mon but final est grâce à un plugin autocad (non développé par moi biensur) pouvoir incorporer les blocs, avec une multitude d'option (un peu comme la bibliothéque d'autocad mais avec plus d'option et de rangement, recherche, etc). Il me permet d'importer des dessins ou des blocs, et on en revien à ma demande initial car c'est plus simple et compréhensible pour mes dessins d'avoir des blocs de panneaux. J'ai déjà réalisé un script python qui m'importe les "futur" blocs dans ce plugin via un XML. @(gile) J'ai essayé de me dépatouillé avec ton script mais j'avoue ne pas avoir réussi (bien que j'ai compris que je dois définir les variable fichier et listeFichiers mais pas réussi). Ce que je me suis dis pour me servir de ton script c'était plutot de creer un dwg vide puis importer ta lips et automatiquement déplacer chaque panneau d'une valeur en x pour pas que cela se superpose. Ce que j'ai essayé (via MacLee lips) car je ne voyais pas comment fournir une liste deFichier: (defun LM:directoryfiles (dir typ sub) (setq dir (vl-string-right-trim "\" (vl-string-translate "/" "\" dir))) (append (mapcar '(lambda (x) (strcat dir "\" x)) (vl-directory-files dir typ 1)) (if sub (apply 'append (mapcar '(lambda (x) (if (not (wcmatch x ".,.`.")) (LM:directoryfiles (strcat dir "\" x) typ sub))) (vl-directory-files dir nil -1))) nil))) (defun C:ImportFiles () (cond ((null (setq dir (LM:browseforfolder "Select a directory to list drawing files" nil 0))) (princ "\nCancel")) ((null (setq lst (LM:directoryfiles dir "*.dwg" t))) (princ "\nNo drawing files found in the selected directory or subdirectories.")) (t (setq listeFichiers (vl-directory-files dir ".dwg")) (foreach dwg lst (if (setq filename (findfile (strcat dir "\" dwg))) (progn (command "INSERT" filename (cons (strcat "BLOC" (vl-filename-base filename)) 1))))) ))) @didierDonc je confirme bien que l'inserer fonctionne bien mais ce n'est pas forcement ce que je recherche ici Meri à vous deux, je vais continuer à bosser dessus (meme si une petite aide serait top si vous etes d'accord)
  5. Super pour l'astuce, il me semblait que les hachure solide était obligatoirement au dessus de tout, en tout cas j'ai de souvenir déjà eu des problèmes avec ou lors de l'impression il était mis en 1er plan et me cacher le reste comme des polylignes ou cotations. A creuser pour ma part, peut être était ce juste un bug.. Merci pour l'info (surtout que de souvenir j'ai déjà vu trainer des lips pour faire automatiquement des contours)
  6. Bonjour, Ma problématique : j'ai un certain grand nombre de fichiers (1 panneau par fichier) qui ne sont pas en bloc donc quand je le ré-importe dans mes dessins cela importe un ensemble (typiquement hachure, texte, rond, etc) donc pas très interessant. J'aurais souhaité par exemple via SuperAutoScript par exemple suivant un dossier, ouvrir le fichier, convertir en bloc (mais en conservant le dessin) avec le nom du fichier, et passer au suivant. Je suis à la partie script SCR : (setq fichier (getvar "dwgname")) ;;(setq nomdoc (car (split-string fichier "\\."))) A modifier pour enlever les 4 derniere caractère qui correspond à l'extension (setq nombloc (strcat "BLOC_" fichier)) (setq jeusel (ssget "_C" '(0 0) '(10 10))) (command "_-block" nombloc "0,0" jeusel "") Mon problème pour l'instant se situe avec la commande _block qui prend comme paramètre suppression des objets convertis hors j'aurais aimé juste les conservé, impossible de trouver la doc de la fonction block Merci par avance Cordialement
  7. Bonjour, Je vous remercie, je vais essayer d'être plus clair, et vont montrer un exemple entre deux fichier PDF que j'avais fait mais en gros il manque une bonne partie de la topo en dessous du à mes masques (fait grossièrement en polyligne pour suivre la route) -> en grande partie mon problème, mais je trouve bizarre qu'il y est que moi que cela embête donc il doit avoir un truc que je fais mal, d'où ma demande. (Ce n'est pas forcément la même phase donc ne pas tenir compte de la signalisation qui a pu changer). J'ai changer ma méthode de travail entre les deux en insérant l'ensemble des bloc des précédentes phases qui était dans un Xref dans le fichiers pour plus de rapidité d'exploitation). Mais je ne me retrouve pas avec le même rendu coté topo car les tronçons de route sont dans un XREF avec des masques qui sont supprimés suivant l'avancement du chantier etransmit : https://drive.google.com/open?id=1B6aKYDzAO-MeUUStTeqYn_n8TqcDbDQf N'hésitez pas à faire vos remarques, d'organisation je suis preneur, je suis autodidacte donc il peut me manquer des élèments Merci par avance
  8. Bonjour C'est une question débile que je n'ai pas de réponse ou juste personne ne souhaite me donner son avis et sa méthode de travail sur ce point la? En vous remerciant par avance
  9. Salut, Ah je ne travaille pas par fichier mais par block sorry
  10. Salut, Si il ont le meme nom d'attribut un block replace ne fait pas l'affaire? perso j'utilise RIblock.vlx très fort pour transférer les valeurs d'attribut sur un autre bloc https://www.cadforum.cz/en/download.asp?fileID=1019 pour le télécharger Cdlt
  11. Salut, Rien avoir avec ce que tu recherches mais google drive pour ne citer que lui fait très bien le versionning et quand tu as fait une connerie tu retrouve tes petits (en cherchant un peu si tu sauvegarde manuellement souvent comme moi mais cela à un grand avantage) Par contre, si quelqu'un connait un logiciel qui pourrait faire un "merge d'un fork " de plan, par exemple tu donnes à plusieurs de tes fournisseurs (bien sur tu as oublier de leur prémâché le boulot pour créer des Xref) et que 3 clients te retournes des fichiers de zone différents et que tu souhaites les mettre tous ensemble de manière automatique ( sans faire de simple copier-collé suivant l'origine) et qu'il te montre les zones en conflit.... Je suis preneur. Bien à vous
  12. Bonjour et très bonne année 2023, Je vous souhaite dans un premier temps mes meilleurs voeux pour cette année. J'ai un petit problème de mise en page, j'ai un fichier autocad avec : fond de plan avec ancienne route un gros bloc nouvelle route (bordure + hachure), donc pleins de zone => certaine déjà terrasser et d'autre non (donc masque "_wipeout" créer dessus et c'est là le problème) et moi c'est uniquement la signalisation à rajouter Mon soucis est que le rendu n'est vraiment pas jolie vu que l'ordre des couches est comme l'inverse de ma liste, et les masques rectangulaires bavent littéralement sur le fond de plan. Deux questions : Comment faites vous dans ces cas là? est que qu'il existe un masque suivant une forme aléatoire? en interne ou avec un lips? Je vous remercie par avance Cordialement
  13. Salut, C'est bien ce que j'avais lu mais aucun de ces fichiers compilés ne se précharge. par exemple, ce fichier : https://www.cadforum.cz/en/download.asp?fileID=1019 A titre de culture, j'ai essayé de compiler un de tes scripts(dist.lsp) en vlx, d'ailleurs que signifie nil à la fin d'un chargement (j'ai aussi un soucis en .lsp la valeur de la fonction s'affiche bien mais pas si je transforme en vlx) : Dist.lsp et après j'ai testé en autoload ( j'ai bien renommé ton fichier et c::DEFUN en DistGile) mais toujours non fonctionnelle, as tu deja tester auparavant? Sachant que si je le charge en manuel j'ai bien la fonction DistGile. Donc j'en déduit que mon fichier compilé doit fonctionner (hors affichage de la valeur mais c'est un autre problème) Extrait du fichier acaddoc.lsp (fonctionnel pour les fichiers en lsp): J'ai fais une erreur à quelque part? Merci par avance Cordialement
  14. Bonjour, J'espère que vos vacances se/se sont bien passés? J'ai une petite question, je souhaite utiliser la fonction autoload, cela marche quand c'est des ;LSP mais pas des VLX. Est ce pareil chez vous? exemple of acaddoc.lsp file : (autoload "G:/x-Autocad/LIPS/lisp autocad/Autoloader (recharger script dans acaddoc).lsp" '("AUTOLOADER" "\"")) (autoload "G:/x-Autocad/LIPS/lisp autocad/RIblock (Remplacer les blocs en gardant attribut).vlx" '("RIBLOCK")) Bonne journée Cordialement
  15. Bonjour, Pour revenir, sur mon premier post, ci-joint un Lisp pas mal utilie qui copie les attribut concaténné, et il reste plus qu'à coller dans le bon block/attribut. Lisp de BeekeeCZ que je remercie ( lien ) (defun c:CollectAtts ( / s i v l h x) (or (and *ca-a* (/= *ca-a* "")) (setq *ca-a* "IDENT")) ;Adopterl'attribut IDENT (if (and (not (initget 128)) (setq *ca-a* (cond ((getkword (strcat "\nAttribute <" *ca-a* ">: "))) (*ca-a*))) (setq s (ssget '((0 . "INSERT") (66 . 1)))) ) (repeat (setq i (sslength s)) (if (not (vl-catch-all-error-p (setq v (vl-catch-all-apply 'getpropertyvalue (list (ssname s (setq i (1- i))) *ca-a*))))) (setq l (cons v l))))) (if l (progn (setq ;l (vl-sort l '<) ; remove the initial semicolon to activate sort x (substr (apply 'strcat (mapcar '(lambda (x) (strcat "-" x)) l)) 2)) (vlax-invoke (vlax-get (vlax-get (setq h (vlax-create-object "htmlfile")) 'ParentWindow) 'ClipBoardData) 'setData "Text" x) (vlax-release-object h) (princ (strcat "\nClipboard: " x)))) (princ) ) Cordialement
×
×
  • 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é