ZWCAD derniers sujetshttps://cadxp.com/forum/160-zwcad/ZWCAD derniers sujetsfrProbleme Tracé Desactivé dans Gestionnaire Calqueshttps://cadxp.com/topic/62165-probleme-trac%C3%A9-desactiv%C3%A9-dans-gestionnaire-calques/ Bonjour,

J'utilise ZWCAD 2025 depuis 3 mois et j'ai un petit souci que je n'arrive pas à résoudre.

Lorsque j’insère un bloc depuis mes palettes d'outils, le Tracé du calque est systématiquement désactivé :

image.thumb.png.812c45b050aef567951519c01c6115c4.png

Une variable inconnue en serait elle la cause ?

D'avance merci,

Olivier

]]>
62165Thu, 20 Mar 2025 15:56:24 +0000
Problème VLX/VLShttps://cadxp.com/topic/62161-probl%C3%A8me-vlxvls/  

Bonjour,
Nouvel utilisateur de ZWCAD, je rencontre un problème lors de l'utilisation d'un .VLX transformé en .VLS.
Mon .VLX initial est accompagné d'un .TAB que semble ne pas reconnaitre ZWCAD.

Dans le .zip joint, il y a le .VLX, .VLS et .TAB

Pourriez-vous me venir en aide svp ?

toMulti.zip

]]>
62161Thu, 20 Mar 2025 05:20:54 +0000
Cherche alternative crédible à AutoCAD + Covadis ?https://cadxp.com/topic/41381-cherche-alternative-cr%C3%A9dible-%C3%A0-autocad-covadis/ Bonjour à tous.

 

Avant propos.

Je bosse dans un petit BE, et nous envisageons quelques MAJ voire l'achat d'une nouvelle licence.

Nous avons fait le point sur le coût des souscriptions pour AutoCAD + Covadis, afin de tout mettre à jour.

ahaha ... eheh ... hum !

Partant du principe qu'Autodesk n'augmenterait pas plus chaque année que Bentley ne l'a fait entre 2014 et 2015

Nous sommes arrivés pour 4 ans (2016 à 2020) à un montant à 6 chiffres.

Bref ...

 

 

Nous envisageons d'utiliser un nouveau couple de logiciels.

Certains d'entre vous auraient-ils des retours d'expérience à partager sur ZWCAD + iLANCAD ?

J'ai aussi lu quelques articles sur Briscad ... mais le logiciel me semble assez éloigné d'un autocad

Qu'en pensez-vous ?

]]>
41381Tue, 02 Jun 2015 09:49:42 +0000
Lisp ZWCad et OpenDclhttps://cadxp.com/topic/43980-lisp-zwcad-et-opendcl/ Bonjour

Je teste actuellement une version de ZWCad.

Je cherche notamment à voir le comportement de mes Lisps.

 

Outre les adaptations de commandes, j'ai un gros souci avec OpendDcl.

Je ne sais pas comment charger ma fenêtre.

 

Actuellement, j'entame mes Lisps de la manière suivante, pour vérifier le chargement des ARX sur AutoCAD :

 

;;chargement des arx pour boite de dialogue

(defun charge_opendcl (/ nomodcl)
 ;; choix arx 32 ou 64 bit
 (if (wcmatch (getvar "PLATFORM") "*64*")
   (progn ;; le cas 64 bit
   (setq nomodcl
	  (strcat "Opendcl.x64." (substr (getvar "ACADVER") 1 2))
   )
   (if (not (member nomodcl (arx)))
     (arxload (findfile (strcat nomodcl ".arx"))
	      "OpenDCL Introuvable"
     )
   )
   )
   (progn ;; le cas 32 bit
   (setq nomodcl (strcat "Opendcl." (substr (getvar "ACADVER") 1 2)))
   (if (not (member nomodcl (arx)))
     (arxload (findfile (strcat nomodcl ".arx"))
	      "OpenDCL Introuvable"
     )
   )
   )
 )
)
 

 

ZWCad ne fonctionne pas avec des ARX mais des ZRX.

J'ai installé l'applicatif envoyé par ZWSoft pour l'installation des ZRX

Cependant, je ne sais pas comment modifier mon lisp pour qu'il m'ouvre la boite OpenDCL...

 

Merci de votre aide, Arnaud

]]>
43980Mon, 23 Jan 2017 10:43:04 +0000
<![CDATA[Erreur interne au démarrage <Cov2019Srv.zrx>]]>https://cadxp.com/topic/61171-erreur-interne-au-d%C3%A9marrage/ Bonjour,

Aujourd'hui en démarrant ZWCAD sur mon poste, voici le message d'erreur que j'ai :

image.png.eba2273c0ca60941a425ace84e8fe6d9.png

Impossible de faire quoi que ce soit  ... 

(J'ai vue un poste avec un message d'erreur similaire sur Autocad Map, mais je n'ai pas le même problème, car je n'ai plus du tout accès a mon logiciel.) 

Si quelqu'un a la solution s'il vous plait 

 

]]>
61171Wed, 21 Feb 2024 07:24:55 +0000
Lisp rotation textehttps://cadxp.com/topic/60816-lisp-rotation-texte/ Bonjour à tous,

Alors voilà j'vais un lisp qui fonctionné sur autocad mais ne fonctionne pas sur ZwCad.
Ce lisp me permet en gros de sélectionner un texte, activé l'accroche objet, orienter le texte par 2 points, le déplacer, et passer la couleur dans "du calque".

Est-ce que quelqu'un serait ce qui ne va pas ?

Voici mon lisp:

(Defun C:tz (/ *error*);Define new command line function
    ;DEBUT TRAPPE ERREUR (SORTIE ESCAPE)
    (defun *error* (msg)
      (if (not (member msg '("console break" "Function cancelled" "quit / exit abord")))
          (princ (strcat "\nError: " msg))
      )
       (setvar "osmode" oldosmode)
       (princ)
    )
   ;FIN TRAPPE ERREUR
(setq oldosmode (getvar "osmode"))

(setq E null)

  (while (= E null)
  (command "-accrobj" "pro")
  (princ "\nSélectionnez un objet TEXTE")
(setq na (acet-ui-single-select '((-4 . "<OR")
                           (0 . "TEXT")
                   (-4 . "<AND")
                            (0 . "POLYLINE")
                            (-4 . "<NOT")
                              (-4 . "&")
                              (70 . 112)
                            (-4 . "NOT>")
                           (-4 . "AND>")
                          (-4 . "OR>")
                                  )
                         T
         );acet-ui-single-select
);setq
(if na
  (progn
  
   (Command "changer" na "" pause "" "" pause "")
   (command "-accrobj" "")
   (command "deplacer" "p" "" "@" pause)
   (Command "changer" na  "" "p"  "co"  "ducalque" "")
   
   );progn
    );if

 (if (not na)
   (progn
     (setq E "fin")
     ;(command "-accrobj" "nod,int,ext")
     (setvar "osmode" oldosmode)
     );progn
   );if
 (princ)

       
    );while

 
);Defun


(Defun C:tzx (/ *error*);Define new command line function
    ;DEBUT TRAPPE ERREUR (SORTIE ESCAPE)
    (defun *error* (msg)
      (if (not (member msg '("console break" "Function cancelled" "quit / exit abord")))
          (princ (strcat "\nError: " msg))
      )
       (setvar "osmode" oldosmode)
       (princ)
    )
   ;FIN TRAPPE ERREUR
(setq oldosmode (getvar "osmode"))

(setq E null)

  (while (= E null)
  (command "-accrobj" "pro")
  (princ "\nSélectionnez un objet TEXTE")
(setq na (acet-ui-single-select '((-4 . "<OR")
                           (0 . "TEXT")
                   (-4 . "<AND")
                            (0 . "POLYLINE")
                            (-4 . "<NOT")
                              (-4 . "&")
                              (70 . 112)
                            (-4 . "NOT>")
                           (-4 . "AND>")
                          (-4 . "OR>")
                                  )
                         T
         );acet-ui-single-select
);setq
(if na
  (progn
    (command "copier" na "" "@" "@")
   (Command "changer" na "" pause "" "" pause "")
   (command "-accrobj" "")
    (command "deplacer" "p" "" "@" pause)

    );progn
    );if

 (if (not na)
   (progn
     (setq E "fin")
     ;(command "-accrobj" "nod,int,ext")
     (setvar "osmode" oldosmode)
     );progn
   );if
 (princ)

       
    );while

 
);Defun


Merci beaucoup pour votre aide. 🙂

Cela m'handicape énormément pour l'instant j'effectue la rotation avec la commande texte rotation de GeogexFR mais c'est fastidieux.

Bonne journée 

]]>
60816Wed, 18 Oct 2023 07:50:29 +0000
Bloc Dynamique bloquéhttps://cadxp.com/topic/42714-bloc-dynamique-bloqu%C3%A9/ Bonjour à tous,

un collègue à moi possède ZWCAD sur son poste.

j'ai créé un bloc dyn avec fonction étirement sur Autocad, mais ce bloc ne fonctionne plus sous ZWCad 2015+

Y aurait-il certaines fonctions de blocs dyn qui ne seraient pas 100% compatibles entre les 2 plateformes ?

Merci, Sapin

]]>
42714Tue, 22 Mar 2016 10:27:14 +0000
Fonctionnement LISP LATT incrémentation des attributs de Patrick 35https://cadxp.com/topic/60530-fonctionnement-lisp-latt-incr%C3%A9mentation-des-attributs-de-patrick-35/ Bonjour,

 

j'aimerais utiliser le lisp LATT de Patrick 35 (merci à lui...) , il fonctionne parfaitement sous ZWCAD pour ce qui est de l'incrémentation automatique lorsqu'on pose bloc par bloc, lorsqu'on supprime un bloc, la renumérotation se fait parfaitement, mais il y a un cas de figure qui est problématique, c'est lorsque je veux insérer un bloc entre 2 blocs existants  par exemple entre le 58 et le 59 sur un total de 120 par exemple,  est-il possible que ce nouveau bloc se numérote en 59 et que tous les blocs suivants se réincrémentent de +1, l'ancien 59 devient 60 ect ... ou existe t il une application qui le permet, la commande LATT continue d'incrémenter seulement depuis le dernier bloc 121, 122. La solution n'est pas de redéplacer l'ensemble des blocs sinon la commande n'a plus aucun intérêt. 

Mes blocs représentent des éléments d'un circuit électrique câblés entre eux, et si j'ai besoins d'ajouter un élément au milieux du circuit, il me faut  la continuité numérique en fonction du câblage.

je vous remercie d'avance. 

]]>
60530Thu, 01 Jun 2023 17:27:11 +0000
pb lisp pour remplir un tableauhttps://cadxp.com/topic/60204-pb-lisp-pour-remplir-un-tableau/ bonjour

c'est plutôt une question pour le support Zwcad qui je l'espère traine toujours sur le forum.

j'ai un lisp (plusieurs en fait) qui m'aident pour les métrés en invitant à poser le résultat des calcul dans une cellule de tableau à pointer par l'utilisateur.

Sur autocad, pas de soucis, mais sur Zwcad, quand on pointe une cellule,  l'éditeur de saisie s'active bien, mais le résultat du lisp est affiché à la ligne de commande...

une idée pour rendre compatible ce lisp (c'est la dernière ligne qui pose pb...)

 

merci d'avance

(defun c:STL (/ LG LT SEL tube X)
;; somme des longueurs de lignes poly spline  sélectionnées
;; invite à saisir une celulle de tableau

  (vl-load-com)
  (setq lg   0.0
lt   0.0
sel  nil
tube nil
  )
  (while (not sel)
    (setq sel (ssget (list '(-4 . "<OR") '(0 . "*POLYLINE") '(0 . "SPLINE") '(0 . "LINE") '(-4 . "OR>"))
     )
    )
  )
  (setq x (sslength sel))


  (repeat x
    (setq x (- x 1))
    ;; pour décaler et arriver à zéro à la fin on décrémente au début (le 1ere élément de la liste est en zéro)
    (setq tube (ssname sel x))

    (if (= (cdr (assoc 0 (entget tube))) "SPLINE")

      ;; si c'est une spline
      (progn
(command "aire" "ob" tube)
(setq lt (getvar "perimeter"))
      )
      ;; si c'est autre chose
      (progn
(setq lt
      (vla-get-Length
(vlax-ename->vla-object (ssname sel x))
      )
)
      )
    )

    (setq lg (+ lt lg))
  )


  (print (strcat "Longueur :" (rtos lg)))

  (command "MODIFTABLEAU" pause (rtos lg) )


  (princ)
)

 

]]>
60204Tue, 10 Jan 2023 12:23:28 +0000
Création d'atlashttps://cadxp.com/topic/60330-cr%C3%A9ation-datlas/ Bonjour,

Est-il possible de créer un atlas d'impression comme sur Autocad ?

Je vous remercie. Bonne journée.

]]>
60330Tue, 28 Feb 2023 14:51:27 +0000
ZW France a rejoint le Groupe Geomesure (Distributeur Trimble)https://cadxp.com/topic/60327-zw-france-a-rejoint-le-groupe-geomesure-distributeur-trimble/ salut,

j’apprends cette nouvelle.

est ce que ça présage un rapprochement entre les solution métier Trimble et Zwcad ?

a+

Gégé

]]>
60327Mon, 27 Feb 2023 13:22:08 +0000
Transcription du lisp TABM sur Zwcad ??https://cadxp.com/topic/59978-transcription-du-lisp-tabm-sur-zwcad/ Hello,

Je souhaiterais faire fonctionner ce lisp développé initialement sur autocad sur Zwcad, est-ce qu'il est possible de l'adapter ?

Pour le moment, je n'obtiens que le message d'erreur suivant, après avoir retiré les accents sur "sélectionner" :

Erreur : incorrect type - nil

 

;**********************************************************
;******************* DEBUT TABM ***************************
;
; free lisp from cadviet.com
;
; Altered by Greg Battin 1/10/2011 for english use
;
; Find replace 10 with 8
;
;  By : Gia Bach, gia_bach @  www.CadViet.com
;
;  Modifie le 11/09/2014 par CHCTB pour ASTEM @CHCTB
;  Modifié le 15/09/2014 par hpinchon ASTEM

;*************** Fonction liste blocs dynamiques
(defun Fdxf (entite / lstdxf)			  ; l'argument et la variable
 (vl-load-com)
 (setq doc (vla-get-activedocument (vlax-get-acad-object)))
 (setq lstdxf (entget entite))
   (progn
     ;;; definition du nom vba de l'entite
     (setq Vba-ent (vlax-ename->vla-object entite))
     ;;; Si cennte entité est un bloc dynamique 
     (if (= (vla-get-IsDynamicBlock Vba-ent) :vlax-true)
;;; récupération du effectivename et ajout à la lstdxf
(progn
  (setq lstdxf (vla-get-effectivename Vba-ent))
)
 (setq lstdxf (cdr (assoc 2 (entget ent))))
     )
   )
 lstdxf					  ; le rappel de la variable sans rien sert de valeur de retour de la fonction
)

;**********************************************************
;*** Retourner une valeur à la fin d'une fonction
(defun c_return (v_value) v_value)

;**********************************************************
;*** Fonction pour Rechercher la valeur d'un attribut
(defun rec_val_att (n_ent etiq / val_att test test1)
 (while (/= test "SEQEND")
   (if	(/= test1 etiq)
     (progn
(setq n_ent (entnext n_ent))
(setq test (cdr (assoc 0 (entget n_ent))))
(setq test1 (cdr (assoc 2 (entget n_ent))))
     )
     (progn
(setq test "SEQEND")
(setq val_att (cdr (assoc 1 (entget n_ent))))
     )
   )
 )
 (c_return val_att)
)

;**********************************************************
;*** Fonction pour Remplacer valeur d'un attribut
(defun rem_att (n_ent etiq valeur / ent1 test test1)
 (while (/= test "SEQEND")
   (if	(/= test1 etiq)
     (progn
(setq n_ent (entnext n_ent))
(setq test (cdr (assoc 0 (entget n_ent))))
(setq test1 (cdr (assoc 2 (entget n_ent))))
     )
     (progn
(setq test "SEQEND")
(setq ent1 (entget n_ent))
(setq ent1 (subst (cons 1 valeur) (assoc 1 ent1) ent1))
(entmod ent1)
     )
   )
 )
)

;**********************************************************
;*** Fonction pour trouver la largeur d'un texte
(defun TxtWidth	(val h msp / txt minp maxp)
 (vl-load-com)  
 (setq txt (vla-AddText msp val (vlax-3d-point '(0 0 0)) h))
 (vla-getBoundingBox txt 'minp 'maxp)
 (vla-Erase txt)
 (- (car (vlax-safearray->list maxp))
    (car (vlax-safearray->list minp))
 )
)

;**********************************************************
;*** Fonction pour créer un style de tableau
(defun GetOrCreateTableStyle (tbl_name	  /	      name
		      namelst	  objtblsty   objtblstydic
		      tablst	  txtsty
		     )
 (vl-load-com)
 (setq	objTblStyDic (vla-item (vla-get-dictionaries *adoc) "ACAD_TABLESTYLE"))
 (foreach itm  (vlax-for itm objTblStyDic (setq tabLst (append tabLst (list itm))))
               (if     (not (vl-catch-all-error-p (setq name (vl-catch-all-apply 'vla-get-Name (list itm)))))
               (setq nameLst (append nameLst (list name)))))
 (if   (not (vl-position tbl_name nameLst)) (vla-addobject objTblStyDic tbl_name "AcDbTableStyle"))
 (setq	objTblSty (vla-item objTblStyDic tbl_name) TxtSty (variant-value (vla-getvariable *adoc "TextStyle")))
 (mapcar '(lambda (x) (vla-settextstyle objTblSty x TxtSty)) (list acTitleRow acHeaderRow acDataRow))
 (vla-setvariable *adoc "CTableStyle" tbl_name)
)

;**********************************************************
;*** Processeur 64
(defun GetObjectID (obj)
 (vl-load-com)
 (if (vl-string-search "64" (getenv "PROCESSOR_ARCHITECTURE"))
   (vlax-invoke-method *util 'GetObjectIdString obj :vlax-false)
   (vla-get-Objectid obj)
   )
)


(defun C:TABM (/ ss refs lst ele ins tbl row lstdxf bdn)

;**************** création du jeu de sélection
   (initget "Collection Objet Sélection")
 (setq kw (getkword "\nChoisir une option [Collection/Objet/Sélection] < Sélection >: "))
 (or *acdoc*
     (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object)))
 )
 (setq blocks (vla-get-Blocks *acdoc*))
 (setq liref nil)
 (setq parnombloc1 (getcfg "APPDATA/PARNOMBLOC1"))
 (defun TxtWidth (val h msp / txt minp maxp)
   (setq txt (vla-AddText msp val (vlax-3d-point '(0 0 0)) h))
   (vla-getBoundingBox txt 'minp 'maxp)
   (vla-Erase txt)
   (- (car (vlax-safearray->list maxp))
      (car (vlax-safearray->list minp))
   )
 )
 (defun GetOrCreateTableStyle (tbl_name / name namelst objtblsty objtblstydic tablst txtsty)
   (setq objTblStyDic
          (vla-item (vla-get-dictionaries *adoc)
                    "ACAD_TABLESTYLE"
          )
   )
   (foreach itm (vlax-for itm objTblStyDic
                  (setq tabLst (append tabLst (list itm)))
                )
     (if (not
           (vl-catch-all-error-p
             (setq name (vl-catch-all-apply 'vla-get-Name (list itm)))
           )
         )
       (setq nameLst (append nameLst (list name)))
     )
   )
   (if (not (vl-position tbl_name nameLst))
     (vla-addobject objTblStyDic tbl_name "AcDbTableStyle")
   )
   (setq objTblSty (vla-item objTblStyDic tbl_name)
         TxtSty    (variant-value (vla-getvariable *adoc "TextStyle"))
   )
   (mapcar '(lambda (x) (vla-settextstyle objTblSty x TxtSty))
           (list acTitleRow acHeaderRow acDataRow)
   )
   (vla-setvariable *adoc "CTableStyle" tbl_name)
 )
 (defun GetObjectID (obj)
   (if (vl-string-search "64" (getenv "PROCESSOR_ARCHITECTURE"))
     (vlax-invoke-method
       *util
       'GetObjectIdString
       obj
       :vlax-false
     )
     (vla-get-Objectid obj)
   )
 )
;***********************************************
 (cond
   ((= kw "Objet")
    (if
      (setq
        obj
         (car
           (entsel "\nSélectionnez l'objet délimitant la sélection: ")
         )
      )
       (if (member (cdr (assoc 0 (entget obj)))
                   '("CIRCLE" "ELLIPSE" "LWPOLYLINE")
           )
         (setq ss (SelByObj obj "WP" '((0 . "INSERT"))))
         (princ "\nEntité non valide.")
       )
       (princ "\nAucune entité sélectionnée.")
    )
   )
   ((= kw "Collection")
     (setq ss  (ssget "_X" '((0 . "INSERT")))
           col T
     )
   )
   (T (setq ss (ssget '((0 . "INSERT")))))
 )
 (if ss
   (setq liref
          (mapcar '(lambda (x)
                     (setq x (vlax-ename->vla-object x))
                     (if (vlax-property-available-p x 'EffectiveName)
                       (vla-get-EffectiveName x)
                       (vla-get-Name x)
                     )
                   )
                  (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))
          )
   )
   (setq liref '())
 )
(setq sstoto ss)
 (if ss
   (progn
     (vlax-for x (setq ss (vla-get-ActiveSelectionSet *acdoc*))
       (or (vlax-property-available-p x 'Path)
           (setq refs
                  (cons
                    (cons
                      (vla-get-EffectiveName x)
                      (gc:GetVisibilityState x)
                    )
                    refs
                  )
           )
       )
     )
     (vla-delete ss)
   )
 )
 (foreach n refs
   (setq lst (if (setq ele (assoc n lst))
               (subst (cons (car ele) (1+ (cdr ele))) ele lst)
               (cons (cons n 1) lst)
             )
   )
 )

 ;*****************************Charger les fonctions Visual LISP
 (vl-load-com)
 ;*******************************Calcul la longeur maxi des noms de blocs puis création liste lst_blk1 ---> Nom Bloc - Quantité Bloc - Marque - Reference
 (setq i    -1   len0  8 ) ;;; longeur par defaut
 (setq lst_blk nil lst_blk1 nil)
 (while (setq ent (ssname sstoto (setq i (1+ i))))
   (setq ent (ssname sstoto i))			  ; ent est l'entité place en position i du selection-set ss
   (setq blk_name (Fdxf ent))			  ; je stoke dans lstdxf la valeur de retour de la fonction fdxf pour l'élément ent
   (if (> (strlen blk_name) len0)
     (setq str  blk_name
           len0 (strlen blk_name)
     )
     )
   (setq Ent_Marque (rec_val_att ent "MARQUE"))
   (setq Ent_Reference (rec_val_att ent "REFERENCE"))
   (if (not (assoc blk_name lst_blk1))
   ;;; Si le bloc n'existe pas dans la liste
     (progn
       (setq toto (list blk_name 1 Ent_Marque Ent_Reference))
       (setq lst_blk1 (cons toto lst_blk1))
     )
   ;;; Si le bloc existe dans la liste
   ;;; Vérification si la marque est la même
     (progn
       (setq toto2 nil)
       (foreach n lst_blk1
         (setq crit0 (nth 0 n))
         (setq crit2 (nth 2 n))
         (setq crit3 (nth 3 n))
         (if (and (= crit0 blk_name) (= crit2 Ent_Marque) (= crit3 Ent_Reference))
           (setq toto2 n)
         )
       )
       ;;; Si la marque est la même, incrémenter la quantité
(if toto2
         (setq lst_blk1 (subst (list blk_name
                                    (1+ (nth 1 toto2))
                                     (nth 2 toto2)
                                     (nth 3 toto2)
                               )
                               toto2
                               lst_blk1
                        )
         )
       ;;; Sinon, ajouter à la liste lst_blk1
         (progn
           (setq toto (list blk_name 1 Ent_Marque Ent_Reference))
           (setq lst_blk1 (cons toto lst_blk1))
         )
       )
     )
   )
   ;;; à effacer 
   (if (not (assoc blk_name lst_blk))
     (setq lst_blk (cons (cons blk_name 1) lst_blk))
     (setq lst_blk
            (subst (cons blk_name (1+ (cdr (assoc blk_name lst_blk))))
                   (assoc blk_name lst_blk)
                   lst_blk
     )
     )
   )
   )
 ;;; Tri la liste des blocs en fonction de la marque puis nom du bloc
(setq lst_blk1 (vl-sort lst_blk1 '(lambda (a B)
           (if (eq (caddr a) (caddr B))
               (if (eq (car a) (car B))
               (< (cadddr a) (cadddr B))
               (< (car a) (car B))
               )
           (< (caddr a) (caddr B))
           )
       )
   )
)
;;; à effacer 
 (setq lst_blk (vl-sort lst_blk '(lambda (x y) (< (car x) (car y)))))

;;; Calcul hauteur de texte dans le tableau
 (or *h* (setq *h* (* (getvar "dimtxt") (getvar "dimscale"))) )
 (initget 6)
 (setq h (getreal (strcat "\nHauteur du text <" (rtos *h*) "> :")))
 (if h (setq *h* h) (setq h *h*))
 (or *adoc (setq *adoc (vla-get-ActiveDocument (vlax-get-acad-object))))
 (setq	msp   (vla-get-modelspace *adoc) *util (vla-get-Utility *adoc) blks  (vla-get-blocks *adoc))
 (setq	width1 (* 8 (TxtWidth " " h msp)) ;largeur de N°
width  (* 0.8 (TxtWidth "Hauteur du text" h msp)) ; largeur globale
height (* 2 h)
 )
 (setq width2 width);***************largeur Marque
 (if str
   (setq width3 (* 1.2 (TxtWidth (strcase str) h msp))) ;***************largeur nom du bloc
   (setq width3 width)
 )
 (setq width4 (1+ width));***************largeur Référence
 (setq width5 width);********************largeur Quantités
 (setq width6 width);********************largeur Image du bloc
 (if (> h 3)
   (setq width	 (* (fix (/ width 8)) 8)
  width1 (* (fix (/ width1 8)) 8)
  width2 (* (fix (/ width2 8)) 8)
  width3 (* (fix (/ width2 8)) 8)
  width4 (* (fix (/ width2 8)) 8)
  width5 (* (fix (/ width2 8)) 8)
  width6 (* (fix (/ width2 8)) 8)
  height (* (fix (/ height 5)) 5)
   )
 )
;;; Création style du tableau puis création tableau
 (GetOrCreateTableStyle "tableau espace objet")
 (setq	pt     (getpoint "\nPlacer la tableau:")
TblObj (vla-addtable
	 msp                  ;************Espace objet
	 (vlax-3d-point pt)
	 (+ (length lst_blk1) 2);**********Nombre de lignes
	 6                      ;**********Nombre de Colonne
	 height                 ;**********Hauteur de la ligne par defaut
	 width                  ;**********Largeur de la ligne par defaut
       )
 )
 (vla-put-regeneratetablesuppressed TblObj :vlax-true)
 (vla-SetColumnWidth TblObj 0 width1);************largeur de N°
 (vla-SetColumnWidth TblObj 1 width2);************largeur Marque
 (vla-SetColumnWidth TblObj 2 width3);************largeur nom du bloc
 (vla-SetColumnWidth TblObj 3 width4);************largeur Référence
 (vla-SetColumnWidth TblObj 4 width5);************largeur Quantités
 (vla-SetColumnWidth TblObj 5 width6);************largeur Image du bloc

 (vla-put-vertcellmargin TblObj (* 0.4 h))
 (vla-put-horzcellmargin TblObj (* 0.4 h))
 (mapcar '(lambda (x) (vla-setTextHeight TblObj x h))
  (list acTitleRow acHeaderRow acDataRow)
 )
 (mapcar '(lambda (x) (vla-setAlignment TblObj x 5))
  (list acTitleRow acHeaderRow acDataRow)
 )
 (vla-MergeCells TblObj 0 0 0 3)	;change 4 to 3

;;; **************************Entête du tableau
 (vla-setText TblObj 0 0 "TABLEAU DE NOMENCLATURE DES BLOCS")
 (setq j	-1
       header_lsp (list "N°" "MARQUE" "NOM DES BLOCS" "REFERENCE" "QTES" "BLOCS")
 )
 ;;;;;;;;;;;;;;;;;;;;;;REMOVE "DON VI"
(repeat	(length header_lsp) (vla-setText TblObj 1 (setq j (1+ j)) (nth j header_lsp)))
(setq row 2 i	1)
(foreach tyty lst_blk1
 (setq	blk_name (nth 0 tyty) j	 -1)
 (mapcar '(lambda (x) (vla-setText TblObj row (setq j (1+ j)) x))
  (list i (nth 2 tyty) blk_name (nth 3 tyty) (nth 1 tyty))
 )
;******************************Colonne 6
   (vla-SetBlockTableRecordId TblObj row 5 (GetObjectID (vla-item blks blk_name)) :vlax-true)
;******************************CENTRAGES CELLULES
 (vla-SetCellAlignment TblObj row 0 5)
 (vla-SetCellAlignment TblObj row 1 4)
 (vla-SetCellAlignment TblObj row 2 4)
 (vla-SetCellAlignment TblObj row 3 4)
 (vla-SetCellAlignment TblObj row 4 5)
;******************************CHANGE 3 TO 2
 (setq	row (1+ row)
i   (1+ i)
 )
)
(vla-put-regeneratetablesuppressed TblObj :vlax-false)
(vlax-release-object TblObj)

(prompt "\n(C) Facilo thanks to CHCTB & Autodesk\n")(princ)
)
(princ)


;; gc:GetVisibilityState
;; Retourne l'état de visibilité d'un bloc dynamique ou nil
(defun gc:GetVisibilityState (blk / state)
 (if (= (vla-get-IsDynamicblock blk) :vlax-true)
   (foreach p (vlax-invoke blk 'GetDynamicBlockProperties)
     (if (= (type (car (vlax-get p 'AllowedValues))) 'STR)
       (setq state (vlax-get p 'Value))
     )
   )
 )
 state
)
;******************fin de tabm

 

]]>
59978Wed, 16 Nov 2022 10:40:00 +0000
Probleme de gestionnaire d'etat de calquehttps://cadxp.com/topic/59787-probleme-de-gestionnaire-detat-de-calque/ Bonjour,

Je suis resemant passer de Autocad 2015 à Zwcad 2022. J'utilise régulièrement le gestionnaire d’état de calque.

Quand j'utilise mon gabarie (créé sur autocad) dans zwcad il m’inverse les couleur RVB en VBR. cad la couleur 26,0,226 qui donne du rouge sur autocad, il me la transforme en 226,0,26 qui est du bleu. Je suis aller voir pour éditer un de mes état de calque et la couleur inscrite et ni le rouge ni le bleu mais une autre couleur.

Es-ce un paramétrage à changer pour qu'il conserve les couleur ?

Si vous avez une solution je suis preneuse merci !

 

]]>
59787Fri, 21 Oct 2022 14:09:45 +0000
Export SVG depuis ZWCADhttps://cadxp.com/topic/59091-export-svg-depuis-zwcad/ Bonjour à tous,

Un point positif pour ZWCAD  la possibilité d'exporter via Imprimer / Publier dans le format de fichier SVG.

Fabcad
Le Rennais Métropolitain

]]>
59091Tue, 30 Aug 2022 11:39:29 +0000
SVP Test routine Lisp TRIANGULATE de Elpanov sur ZWCad ?https://cadxp.com/topic/58686-svp-test-routine-lisp-triangulate-de-elpanov-sur-zwcad/ Hello

Voir Titre ...

SVP est ce que cette routine TRIANGULATE tourne sur ZWCad ?

Elle utilise des Points 3D XYZ pour creer un MNT en 3DFaces ... Merci de vos retours ...

La Sante, Bye, lecrabe

 


;;	triangulate.lsp
;; http://elpanov.com/index.php?id=6

(defun c:triangulate (/ I L S)
 (princ (strcat "\n select points"))
 (if (setq i 0
           s (ssget '((0 . "POINT")))
     ) ;_  setq
  (progn (repeat (sslength s)
          (setq l (cons (cdr (assoc 10 (entget (ssname s i)))) l)
                i (1+ i)
          ) ;_  setq
         ) ;_  repeat
         (eea-delone-triangulate i l)
  ) ;_  progn
 ) ;_  if
) ;_  defun
(defun eea-delone-triangulate (i1  L   /   A   A1  A2  A3
                               I   I2  L1  L2  L3  LP  MA
                               MI  P   S   TI  TR  X1  X2
                               Y1  Y2
                              )
 ;;*********************************************************
 ;;
 ;; Written by  ElpanovEvgeniy
 ;; 17.10.2008
 ;; Program triangulate an irregular set of 3d points.     
 ;;
 ;;*********************************************************
 (if l
  (progn
   (setq ti (car (_VL-TIMES))
         i  1
         i1 (/ i1 100.)
         i2 0
         l  (vl-sort
             (mapcar
              (function (lambda (p)
                         (list (/ (fix (* (car p) 1000)) 1000.)
                               (/ (fix (* (cadr p) 1000)) 1000.)
                               (caddr p)
                         ) ;_  list
                        ) ;_  lambda
              ) ;_  function
              l
             ) ;_  mapcar
             (function (lambda (a b) (>= (car a) (car b))))
            ) ;_  vl-sort
         x2 (caar l)
         y1 (cadar l)
         y2 y1
   ) ;_  setq
   (while l
    (setq a  (fix (caar l))
          a1 (list (car l))
          l  (cdr l)
    ) ;_  setq
    (while (and l (= (fix (caar l)) a))
     (setq a2 (car l))
     (if (<= (cadr a2) y1)
      (setq y1 (cadr a2))
      (if (> (cadr a2) y2)
       (setq y2 (cadr a2))
      ) ;_  if
     ) ;_  if
     (setq a1 (cons (car l) (vl-remove a2 a1))
           l  (cdr l)
     ) ;_  setq
    ) ;_  while
    (foreach a a1 (setq lp (cons a lp)))
   ) ;_  while
   (setq x1 (caar lp)
         a  (list (/ (+ x1 x2) 2) (/ (+ y1 y2) 2))
         a1 (distance a (list x1 y1))
         ma (+ (car a) a1 a1)
         mi (- (car a) a1)
         s  (list (list ma (cadr a) 0)
                  (list mi (+ (cadr a) a1 a1) 0)
                  (list (- (car a) a1) (- (cadr a) a1 a1) 0)
            ) ;_  list
         l  (list (cons x2 (cons a (cons (+ a1 a1) s))))
         ma (1- ma)
         mi (1+ mi)
   ) ;_  setq
   (while lp
    (setq p  (car lp)
          lp (cdr lp)
          l1 nil
    ) ;_  setq
    (while l
     (setq tr (car l)
           l  (cdr l)
     ) ;_  setq
     (cond
      ((< (car tr) (car p)) (setq l2 (cons (cdddr tr) l2)))
      ((< (distance p (cadr tr)) (caddr tr))
       (setq tr (cdddr tr)
             a1 (car tr)
             a2 (cadr tr)
             a3 (caddr tr)
             l1 (cons (list (+ (car a1) (car a2))
                            (+ (cadr a1) (cadr a2))
                            a1
                            a2
                      ) ;_  list
                      (cons (list (+ (car a2) (car a3))
                                  (+ (cadr a2) (cadr a3))
                                  a2
                                  a3
                            ) ;_  list
                            (cons (list (+ (car a3) (car a1))
                                        (+ (cadr a3) (cadr a1))
                                        a3
                                        a1
                                  ) ;_  list
                                  l1
                            ) ;_  cons
                      ) ;_  cons
                ) ;_  cons
       ) ;_  setq
      )
      (t (setq l3 (cons tr l3)))
     ) ;_  cond
    ) ;_  while
    (setq l  l3
          l3 nil
          l1 (vl-sort l1
                      (function (lambda (a b)
                                 (if (= (car a) (car b))
                                  (<= (cadr a) (cadr b))
                                  (< (car a) (car b))
                                 ) ;_  if
                                ) ;_  lambda
                      ) ;_  function
             ) ;_  vl-sort
    ) ;_  setq
    (while l1
     (if (and (= (caar l1) (caadr l1))
              (= (cadar l1) (cadadr l1))
         ) ;_  and
      (setq l1 (cddr l1))
      (setq l  (cons (eea-data-triangle p (cddar l1)) l)
            l1 (cdr l1)
      ) ;_  setq
     ) ;_  if
    ) ;_  while
    (if (and (< (setq i (1- i)) 1) (< i2 100))
     (progn
      (setvar
       "MODEMACRO"
       (strcat
        "     "
        (itoa (setq i2 (1+ i2)))
        " %    "
        (substr (strcat "||||||||||||||||||||||||||||||||||||||||||||||||||"
                        "||||||||||||||||||||||||||||||||||||||||||||||||||"
                ) ;_  strcat
                1
                i2
        ) ;_  substr
        (substr
         "..."
         1
         (- 100 i2)
        ) ;_  substr
       ) ;_  strcat
      ) ;_  setvar
      (setq i i1)
     ) ;_  progn
    ) ;_  if
   ) ;_  while
   (foreach a l (setq l2 (cons (cdddr a) l2)))
   (setq
    l2 (vl-remove-if-not
        (function
         (lambda (a)
          (and (< mi (caadr a) ma) (< mi (caaddr a) ma))
         ) ;_  lambda
        ) ;_  function
        l2
       ) ;_  vl-remove-if
   ) ;_  setq
   (foreach a l2
    (entmake (list (cons 0 "3DFACE")
                   (cons 10 (car a))
                   (cons 11 (car a))
                   (cons 12 (cadr a))
                   (cons 13 (caddr a))
             ) ;_  list
    ) ;_  entmake
   ) ;_  foreach
  ) ;_  progn
 ) ;_  if
 (setvar "MODEMACRO" "")
 (princ (strcat "\n "
                (rtos (/ (- (car (_VL-TIMES)) ti) 1000.) 2 4)
                " secs."
        ) ;_  strcat
 ) ;_  princ
 (princ)
) ;_  defun
(defun eea-data-triangle (P1 l / A A1 P2 P3 P4 S)
 ;;*********************************************************
 ;;
 ;; Written by  ElpanovEvgeniy
 ;; 17.10.2008
 ;; Calculation of the centre of a circle and circle radius 
 ;; for program triangulate
 ;;
 ;; (eea-data-triangle (getpoint)(list(getpoint)(getpoint)))
 ;;*********************************************************
 (setq p2 (car l)
       p3 (cadr l)
       p4 (list (car p3) (cadr p3))
 ) ;_  setq
 (if
  (not
   (zerop
    (setq s (sin (setq a (- (angle p2 p4) (angle p2 p1)))))
   ) ;_  zerop
  ) ;_  not
  (progn (setq a  (polar p4
                         (+ -1.570796326794896 (angle p4 p1) a)
                         (setq a1 (/ (distance p1 p4) s 2.))
                  ) ;_  polar
               a1 (abs a1)
         ) ;_  setq
         (list (+ (car a) a1) a a1 p1 p2 p3)
  ) ;_  progn
 ) ;_  if
) ;_  defun

;|«Visual LISP© Format Options»
(80 1 2 2 T " " 80 60 0 0 0 nil nil nil T)
;*** DO NOT add text below the comment! ***|;

       

 

]]>
58686Mon, 15 Aug 2022 08:19:50 +0000
impression du format personnaliséhttps://cadxp.com/topic/57428-impression-du-format-personnalis%C3%A9/ Bonjour,

Je voudrais savoir si il existe un moyen de pouvoir imprimer en pdf dans des formats à la dimension que l'on souhaite.

Avec le traceur normale je peux crée mon fichier à la dimension que je souhaite mais les imprimantes que j'ai ne permette pas de réalisé la même chose.

Il y a bien une imprimante virtuel ZWCAD avec un papier "Dimension de papier personnalisé PostScript" mais je ne trouve pas modifié sa dimension.

Merci par avance,

]]>
57428Tue, 21 Jun 2022 10:10:25 +0000
problème génération de point topo avec GeoFonciahttps://cadxp.com/topic/57253-probl%C3%A8me-g%C3%A9n%C3%A9ration-de-point-topo-avec-geofoncia/ Bonjour,

J'ai un problème de génération de point topo avec Geofoncia,  quand je génères des point avec un code avec un des format de point et ceux sans les code ce mette dans un autre format de point 

Savez vous où modifiez c'est paramètre ?

Merci par avance et bonne réception,

]]>
57253Wed, 15 Jun 2022 14:12:40 +0000
Programme Lisp fonctionnant sur AutoCAD mais pas sur ZWCADhttps://cadxp.com/topic/40273-programme-lisp-fonctionnant-sur-autocad-mais-pas-sur-zwcad/Bonjour,

 

Je m'adresse à ZWCAD-FRANCE.

Pourriez-vous m'indiquer la ligne ou les lignes du programme lisp joint qui entraine(nt) son disfonctionnement.

 

Merci d'avance

VannesCalqueRécolementGestion.DCL

VannesCalqueRécolementGestion.lsp

]]>
40273Fri, 10 Oct 2014 11:30:31 +0000
Routine AD sur ZWcad 2020https://cadxp.com/topic/48497-routine-ad-sur-zwcad-2020/Bonjour all,

 

Depuis une semaine je test ZWCad, pour le moment j'en suis très satisfait, juste quelques points, entre autre la routine "ad" pour les niveau altimétrique automatique qui ne fonctionne pas.

 

J'ai bien renseigné dans les propriétés de dessins un NGF à 0.00 et chargé la routine ad.

 

Routine ad dans l'état atuel (fonctionne sur autocad 2010 full)

 

;; auteur Patrick_35 avec tous mes remerciments

;; copie un bloc dynamique en conservant son origine et en le posant

;; sur son paramètre de position

;;

;; deux fonctions disponibles

;; AD qui fait un Règen à chaque boucle

;; ADF qui fait un seul régen à la fin (à utiliser sur un fichier lourd)

 

 

(defun c:ad(/ blo ele new pos pt1 tbl)

(vl-load-com)

(and (setq ele (entsel))

(setq ele (vlax-ename->vla-object (car ele)))

(setq pos (vlax-get ele 'insertionpoint))

(while (setq pt1 (getpoint "\nNouveau point : "))

(setq blo (vla-copy ele)

new (mapcar '- pt1 pos)

tbl (vlax-invoke ele 'getdynamicblockproperties)

)

(vlax-put (car tbl) 'value (car new))

(vlax-put (cadr tbl) 'value (cadr new))

(command "REGEN")

)

)

(princ)

)

 

 

(defun c:adf(/ blo ele new pos pt1 tbl)

(vl-load-com)

(and (setq ele (entsel))

(setq ele (vlax-ename->vla-object (car ele)))

(setq pos (vlax-get ele 'insertionpoint))

(while (setq pt1 (getpoint "\nNouveau point : "))

(setq blo (vla-copy ele)

new (mapcar '- pt1 pos)

tbl (vlax-invoke ele 'getdynamicblockproperties)

)

(vlax-put (car tbl) 'value (car new))

(vlax-put (cadr tbl) 'value (cadr new))

)

)

(command "REGEN")

(princ)

)

 

C'est une des routines que j'utilise le plus et qui est sûre en terme d'utilisation et de niveau automatique pour pas faire d'erreur.

 

En esperant une utilisation possible !

]]>
48497Fri, 25 Oct 2019 06:44:09 +0000
Passage à ZWcadhttps://cadxp.com/topic/48487-passage-%C3%A0-zwcad/Bonjour à tous et à toutes,

 

Je suis en train d'analyser ZWcad pour éventuellement y passer.

Je suis sur autocad LT depuis maintenant 20 ans.

 

L'arrivée des licences annuelle (et le fait que je gère le budget informatique de ma boite...) m'ont amené à penser à des alternative à autocad.

J'ai quelques questions pour avancer sur mon idée, est-il possible sur Zwcad de :

- Installer tous les lisp disponible sur Autocad (même si je prend la version ZWcad STD)

- Créer des raccourcis personnalisé (comme le AutoCAD.pgp de autocad)

- Créer des type de ligne personnalisé et utiliser ceux présents sur autocad?

- Créer nos propre barre d'outils

 

Et autre question, si nous passons sur ZWcad dans un premier temps je serai le seul de la boite pour tester avant d'y passer tous, du coup est-ce que cela peux gêner en terme d'échange entre moi et mes collègues qui sont sur Autocad 2019 LT?

 

Certaines de mes questions sont surement évidente pour vous mais je préfère m'assurer de ce sur quoi je vais passer !

 

Je vous remercie

]]>
48487Tue, 22 Oct 2019 07:02:03 +0000
Qui sommes-nous ?https://cadxp.com/topic/45913-qui-sommes-nous/Après Cracovie en 2014, Prague en 2016, nous avons eu l'occasion d'accueillir le forum européen de ZWSOFT à Nantes le 28 et 29 Juin dernier.

 

Pour ceux qui se posent des questions sur l'entreprise et ses partenaires, voici un résumé en vidéo :

(si vous êtes attentifs, vous y remarquerez des développeurs d'applicatifs en France avec lesquels nous avons des partenariats).

 

Nous avons également créé un article : Sur ce lien

 

ZWCAD 2019 ne va pas tarder à sortir (mi-aout), ce séminaire était l'occasion de faire le point sur les nouveautés à venir (éditeur blocs dynamiques, calques sous forme de palettes, PDF Underlay, système annotatif, Z+ etc...)

]]>
45913Fri, 13 Jul 2018 09:31:12 +0000
ZWCAD 2019 disponiblehttps://cadxp.com/topic/46061-zwcad-2019-disponible/Bonjour,

 

La nouvelle version de ZWCAD est officiellement disponible !

 

Vous pouvez donc dès maintenant télécharger et essayer ZWCAD 2019.

 

Petit extrait des nouveautés :

- Nouvelle palette des calques

- Éditeur de blocs dynamiques

- Système annotatif

- PDF underlay

=> Liste des nouveautés Ici

 

RDV sur cette page si vous voulez tester cette version gratuitement pendant 30 jours.

]]>
46061Thu, 06 Sep 2018 10:47:32 +0000
Enfin l'éditeur Lisp sur ZWCADhttps://cadxp.com/topic/46356-enfin-l%C3%A9diteur-lisp-sur-zwcad/Bonjour à tous,

 

Avec un peu de retard, voici enfin l'éditeur LISP concocté par ZWSOFT : je vous laisse découvrir sur ce post de notre forum les copies écran de l'install et les vidéos pour le mode d'emploi.

Basé sur la plateforme Visual Studio Code, en français, autocomplétion et thèmes d'affichage en prime.

 

A consulter ici EDITEUR LISP ZWCAD

 

 

Il s'agit de le 1ere mouture, bien entendu, toutes les remarques sont les bienvenues !

 

Au passage, vous pourrez ainsi télécharger la dernière version de ZWCAD ( 2019 SP2).

 

Et sinon, ZW France vous souhaite une bonne et heureuse année !

 

Patrick

]]>
46356Thu, 10 Jan 2019 17:40:47 +0000
Enquête ZWCAD : Votre avis sur la location d'AutoCAD®https://cadxp.com/topic/45846-enqu%C3%AAte-zwcad-votre-avis-sur-la-location-dautocad%C2%AE/Bonjour,

 

A l'occasion du forum des partenaires ZWCAD Européen qui aura lieu le 28 et 29 Juin à Nantes (après Prague 2016 et Cracovie 2014), nous en profitons pour faire un sondage express auprès de nos utilisateurs ainsi que ceux d'Autocad.

 

1 an plus tard, nous souhaitons connaitre votre opinion sur le système de location d'Autocad afin de pouvoir en débattre lors de ce forum et en tirer des enseignements.

 

 

En quelques questions rapides, pourriez-vous partager votre point de vue ici (3 minutes) ? Cliquez ici pour le sondage

]]>
45846Tue, 19 Jun 2018 11:57:53 +0000
OVLIDEhttps://cadxp.com/topic/45464-ovlide/Bonjour à tous(tes)

 

Certains l'ont sûrement déjà vue ou entendu parlé..

Mais un nouvel éditeur est née depuis peu...

 

OVLIDE

 

Ovlide : Online Visual Lisp IDE.

 

Pourquoi un éditeur ONLINE ?

avant de réinventer la roue,..il faut penser plus loin..

un éditeur WEB permet beaucoup plus qu'un logiciel installé sur votre PC.

deplus, ceci évite des conflits de compatibilité entre divers produits.

 

comme par exemple, la création d'un programme partagé ave d'autres programmeur et/ou équipe de travail.

le fait qu'aucune installatino n'est requise. vous pouvez donc programmer à partir d'un simple portable ou Téléphone intelligent si cela vous dit.

 

OVLIDE permet via un plug-in appelé OFC, de le lier directement à ZWCAD ou AutoCAD

vous pourrez donc évaluer vos variable et fonctions et programmer de facons intelligentes.

 

INFORMATIONs sur OVLIDE

 

Fichier d'aide OVLIDE

 

Dans un futur proche,...OVLIDE sera compatible avec d'autres clones... comme BricsCAD, NanoCAD, ProgeCAD.

mais il en est à ses débuts, et déjà beaucoup utilisé.

 

voilà,..

s'il y a des questions,..

N'hésitez pas à me contacter, il me fera plaisir de vous parler.

support@ductiSoft.com

 

Merci.

]]>
45464Thu, 01 Mar 2018 16:55:05 +0000