mateus
Membres-
Compteur de contenus
261 -
Inscription
-
Dernière visite
-
Jours gagnés
2
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par mateus
-
Merci Gile Oui c'est vrai, mais voilà je viens à peine de commencer le LISP et j'essai de comprende au mieux le language Et en se moment je suis sur un projet en licence pro projeteur CAO DAO,je dois faire un programme d'installation de chantier Donc je m'efforce a travailler sur le programme, essaié de comprendre ce que je peux comprendre Mais je pense qu'il me faut adopter un méthodes de travaille, donc si je peux avoir un conseil de votre part sa m'aiderait a pouvoir mieux comprendre le LISP et pouvoir progrésser à la suite Je voudrais avoir de donne base au niveau du lisp, comment raisonner dans le lisp?
-
Merci, J'ai test ce que tu ma donner comme exemple, sa me donne une erreur: Commande: >%).Area \f "%lu2%ps[surface : , m2]">% Commande inconnue "AREA \F "%LU2%PS[sURFACE : , M2]">%". Appuyez sur F1 pour obtenir de l'aide. Commande: nil
-
Car je suis actuellement d'améliorer mon lisp, c'est petit programme qui sert à faire des zone de stockage sur un plan de chantier: on donne le nom et sa surface voici mon lisp: (defun c:stock() (command "-calque" "n" "stock" "co" 125 "stock" "ch" "stock" ""); Création du calque stockage (setq pt(getpoint "\nPoint d'origine de votre aire de stockage : ")); affecte a pt le point de départ (command "polylign" pt "la" 0.015 0.015);debut de la polyligne (while pt ; boucle (setq pt (getpoint "\nPoint suivant(Return pour FIN): ")); repete l'action (command pt) ) (setq xg 0) (setq yg 0) (setq nc 0) (setq n 0);les variables "Ox et Oy" sont associées aux coordonnées des points l'air de stockage. (setq nom (entlast)) (setq lt (entget nom)) (setq len (length lt)) (repeat len (setq p1 (car (nth n lt))) (if (= p1 10) (progn (setq xg (+ xg(cadr(nth n lt)))) (setq yg (+ yg(caddr(nth n lt)))) (setq nc(1+ nc)) ) ) (setq n(+ n 1)) ) (setq p1 (list(/ xg nc)(/ yg nc))) (setq txt(getstring "\nNom du matériau stocké: ")) (command "aire" "O" (entlast)) (setq surfa(getvar "AREA")) (command "texte" "m" p1 1 0 txt) (command "texte" "" (strcat "Surface : " (rtos surfa 2 2) " m2")) (command "calque" "ch" "0" "") ) Mon problème est de metre un champ a ma surface
-
Salut Gile J'ai tester le LISP PLINE_BLOCK Elle me donne seulement le périmètre et pas la surface (defun c:pline_block (/ AcDoc Space bloc nom ent obj ins op reg ech id long aire ref) (vl-load-com) (setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object)) Space (if (= (getvar "CVPORT") 1) (vla-get-PaperSpace AcDoc) (vla-get-ModelSpace AcDoc) ) ) (if (or (tblsearch "BLOCK" (setq bloc "Pline_block")) (findfile (setq bloc "Pline_block.dwg")) ) (progn ;; attribut "nom de la pièce" (if (not (setq nom (getname "Nom de la pièce"))) (setq nom "") ) (while (not (setq ent (car (entsel))))) (setq obj (vlax-ename->vla-object ent)) (if (= "AcDbPolyline" (vla-get-ObjectName obj)) (progn (if (not (setq ins (getpoint "\nSpécifiez le point d'insertion ou < Centre >: " ) ) ) (progn (if (= (vla-get-closed obj) :vlax-false) (progn (vla-put-closed obj :vlax-true) (setq op T) ) ) (setq reg (vlax-invoke space 'addRegion (list obj)) ins (vlax-get (car reg) 'Centroid) ) (if op (vla-put-closed obj :vlax-false) ) (vla-delete (car reg)) ) ) (if (not (vlax-ldata-get "Pline_block" "ech")) (vlax-ldata-put "Pline_block" "ech" 1) ) (if (not (setq ech (getreal (strcat "\nEntrez le facteur d'échelle <" (rtos (vlax-ldata-get "Pline_block" "ech")) ">: " ) ) ) ) (setq ech (vlax-ldata-get "Pline_block" "ech")) (vlax-ldata-put "Pline_block" "ech" ech) ) (setq id (vla-get-ObjectID obj) ;; Attribut surface (mm² -> m²) aire (strcat "%<\\AcObjProp Object(%<\\_ObjId " (itoa id) ">%).Area \\f \"%lu2%pr2%ct8[1e-006]\">%" ) ;; Attribut périmètre (mm -> m) long (strcat "%<\\AcObjProp Object(%<\\_ObjId " (itoa id) ">%).Length \\f \"%lu2%pr2%ct8[0.001]\">%" ) ) (setq ref (vla-InsertBlock Space (vlax-3d-point (trans ins 1 0)) bloc ech ech 1 (angle '(0 0 0) (trans (getvar 'ucsxdir) 0 (trans '(0 0 1) 1 0 T))) ) ) ;; attribution de leur valeur aux attributs (mapcar '(lambda (x y) (vla-put-TextString x y)) (vlax-invoke ref 'GetAttributes) (list nom aire long) ) (vla-regen AcDoc acActiveViewport) ) (alert "L'objet sélectionné n'est pas une polyligne.") ) ) (alert "Le bloc \"Pline_block\" est introuvable.") ) (princ) )
-
Voilà j'ai un programme qui me donne la surface de ma polyligne avec son texte Je voudrais affectée un champ au texte de surface, Voilà mon programme (defun c:stock() (command "-calque" "n" "stock" "co" "90" "stock" "ch" "stock" ""); Création du calque stockage (setq pt(getpoint "\nPoint d'origine de votre aire de stockage : ")); affecte a pt le point de départ (command "polylign" pt "la" 0 0);debut de la polyligne (while pt ; boucle (setq pt (getpoint "\nPoint suivant(Return pour FIN): ")); repete l'action (command pt) ) (setq xg 0) (setq yg 0) (setq nc 0) (setq n 0);les variables "Ox et Oy" sont associées aux coordonnées des points l'air de stockage. (setq nom (entlast)) (setq lt (entget nom)) (setq len (length lt)) (repeat len (setq e1 (car (nth n lt))) (if (= e1 10) (progn (setq xg (+ xg(cadr(nth n lt)))) (setq yg (+ yg(caddr(nth n lt)))) (setq nc(1+ nc)) ) ) (setq n(+ n 1)) ) (setq p1 (list(/ xg nc)(/ yg nc))) (setq txt(getstring "\nNom du matériau stocké: ")) (command "aire" "O" (entlast)) (setq surfa(getvar "AREA")) (command "texte" "m" p1 1 1 txt) (command "texte" "" (strcat "Surface : " (rtos surfa 2 2) " m2")) )
-
LISP calculer le métré de différente type de ligne selon son calque
mateus a répondu à un(e) sujet de mateus dans Débuter en LISP
merci -
LISP calculer le métré de différente type de ligne selon son calque
mateus a répondu à un(e) sujet de mateus dans Débuter en LISP
Bonjour j'ai éffectué des modifification sur le programme, donc je voudrais savoir de quel manière je pourrais avoir le nombres de bloc à la place de la ligne et sa longueur (vla-Delete ss) (setq sep (vl-registry-read "HKEY_CURRENT_USER\\Control Panel\\International" "sList") filename (strcat (getvar 'dwgprefix) (vl-filename-base (getvar 'dwgname)) "_metre.csv") file (open filename "w") ) (write-line (strcat "Type de ligne" sep "Lignes" sep "Longueur" sep "Polylignes" sep "Longueur") file -
Orientation d'une grue par rapport a une ligne donnée
mateus a répondu à un(e) sujet de mateus dans Débuter en LISP
Ah sa marche j'ai oublié une paranthése Merci bonuscad -
Orientation d'une grue par rapport a une ligne donnée
mateus a répondu à un(e) sujet de mateus dans Débuter en LISP
bonjour bonuscad j'ai une érreur d'entre dans le programme que vous avez mit en place -
Bonjour, J'aimerais de l'aide pour ma fin de programmation. Mon sujet est la création d'une grue. Mon objectif est de pouvoir orienter ma grue par rapport a une ligne donnée (ex: s'aligner par rapport a un bâtiment existant) voici mon programme: (defun c:Grue() (command "-calque" "n" "Grue" "co" "10" "Grue" "ch" "Grue" "") ;Saisie des paramètres ;Pt0 : Point de départ du rail ;Long: Longueur du rail ;Ang0: Angle d'orientation du rail /Ox ;R : Rayon d'emprise de la grue ;Pt1 Point de fin du rail ;pt2 point d'un batiment ;ang2: Angle d'orientation du bâtiment (setvar "cmdecho" 0) (vl-load-com) (setq Choix (getstring "\nChoisissez un type de grue (fixe ou rails):")) ;Grue fixe (if(or (= Choix "Fixe") (= Choix "F")) (progn (setq Pt0 (getpoint "\nPoint de base de la grue:")) (setq Ray (getdist "\nDonner la rayon de la grue:")) (command "point" Pt0) (command "cercle" Pt0 Ray) ) ;Cas d'une grue sur rails (if(or (= Choix "Rails") (= Choix "R")) (progn (setq Pt0 (getpoint "\nPoint de départ du rail:")) (setq Long (getdist "\nLongueur du rail:")) (setq Choix (getstring "\nChoisir l'orientation de la grue (seul ou selon un bâtiment):")) ;orientation seul (if(or (= Choix "Seul") (= Choix "S")) (progn (setq Ang0 (getangle Pt0 "\nAngle d'orientation du rail /Ox:")) (setq R (getdist "\nRayon d'emprise de la grue:")) (setq Pt1 (polar pt0 ang0 long)) (setq Pt2 (polar pt0 (+ Ang0 (* 1.5 pi)) R)) (setq Pt3 (polar Pt1 (+ Ang0 (* 1.5 pi)) R)) (setq Pt4 (polar Pt1 (+ Ang0 (* 0.5 pi)) R)) (setq Pt5 (polar Pt0 (+ Ang0 (* 0.5 pi)) R)) (setq Pt6 (polar Pt0 (+ Ang0 pi) R)) (setq Pt7 (polar Pt1 (+ Ang0) R)) (command "ligne" pt0 pt1 "") (command "ligne" pt2 pt3 "") (command "ligne" pt4 pt5 "") (command "arc" pt2 pt6 pt5 "") (command "arc" pt4 pt7 pt3 "") ))) ;orientation suivant un bâtiment (if= (Choix"B")) (progn (setq L1 (entsel "selectionner une ligne:")) (vl-load-com) (setq NomEntité (car LI)) (setq liste (entget NomEntité)) (setq p1 (cdr (assoc 10 liste))) (setq p2 (cdr (assoc 11 liste))) (setq ang2 (angle p1 et p2))) (setq R (getdist "\nRayon d'emprise de la grue:")) (setq Pt1 (polar pt0 ang0 long)) (setq Pt2 (polar pt0 (+ Ang2 (* 1.5 pi)) R)) (setq Pt3 (polar Pt1 (+ Ang2 (* 1.5 pi)) R)) (setq Pt4 (polar Pt1 (+ Ang2 (* 0.5 pi)) R)) (setq Pt5 (polar Pt0 (+ Ang2 (* 0.5 pi)) R)) (setq Pt6 (polar Pt0 (+ Ang2 pi) R)) (setq Pt7 (polar Pt1 (+ Ang2) R)) (command "ligne" pt0 pt1 "") (command "ligne" pt2 pt3 "") (command "ligne" pt4 pt5 "") (command "arc" pt2 pt6 pt5 "") (command "arc" pt4 pt7 pt3 "") )))) )) A la fin de mon programme une erreur s'affiche comme quoi j'ai trop d’argument. après avoir rechercher longuement je me retrouve bloqué et je demande l'aide de quelqu'un! Merci d'avance!
-
LISP calculer le métré de différente type de ligne selon son calque
mateus a répondu à un(e) sujet de mateus dans Débuter en LISP
Daccord, merci pour l'aide -
LISP calculer le métré de différente type de ligne selon son calque
mateus a répondu à un(e) sujet de mateus dans Débuter en LISP
Merci pour le programme Mais es-ce que on pourrais améliorer ce programme, c'est-a-dire de pouvoir extraire ces donnée sur excel Ou si c'est possible de faire un programme a partir de VBA , en gérent les différent calque et type de ligne et d'objet qui appatienne au meme calque Calque: reseau GAZ _ Type de ligne:EU___EU___EU___ _ Type de ligne:GAZ---GAZ---GAZ---GAZ _ Type de ligne:FT___FT____FT___FT _ Type d'objet:... -
LISP calculer le métré de différente type de ligne selon son calque
mateus a posté un sujet dans Débuter en LISP
Bonjour Je suis étudiant je voudrais savoir créer un programme LISP qui me donne le métré de mes différentes types de ligne ou de bloc selon mon calque, c'est à dire Voici un exemple: Calque réseaux FT: Type ligne1 ._._._._._._ = ml Type ligne2 ............ = ml Bloc regard: nombre voilà je voudrais avoir le sous détail de mes différents type de ligne et bloc appartenant a un calque et tout doit etre mit sur un fichier excel automatiquement merci
