Capture partie plan et enregistrement automatique

Bonjour Maxence et bonjour à tous.
Voila, j'ai une routine (avec ton aide) qui me permet de netttoyer un plan en ne gardant qu'une partie de mon tracé (cercles d'un Ø donné), de renommer ce qu'il me reste dans un calque UT1 (création du calque si inexistant) et de redéfinir un ordre de tracé, tout ceci afin de balancer mon DXF sur une machine de soudage.
Lorsque je suis sur le plan de départ, j'effectue un "copier" d'une partie du plan, j'ouvre un nouveau plan et je "colle" mon extrait et je le renomme.
Le chemin d'accès au plan de base (exemple):
Z:\AFFAIRES\12303\ETUDES\Plan\2275-0
Le chemin d'accès au nouveau plan créé :
Z:\AFFAIRES\12303\ETUDES\Plan\MAUS
Tous les nouveaux plans créés auront uniquement la fin du chemin d'accès se finissant par "MAUS".
Lors de l'enregistrement, je passe de DWG 2010 à DXF 2000.
Je résume :
1- Engistrer sous un nouveau plan (avec appelation automatique)
2- Passer de DWG 2010 à DXF 2000.
tout cela en lisp, pour l'ajouter facilement à ma routine

Ma routine :

[code](defun c:nettoyeur ( / ent dxf_ent js jsc n nw_js i l_dxf h)
(command "_zoom" "_e")
(while (null (setq ent (entsel "\nDésigner un cercle type: "))))
(setq dxf_ent (entget (car ent)))
(setq p1 (cdr (assoc 10 (entget (car ent)))))
(command "_.move" "_all" "" "_none" (trans p1 0 1) "_none" "*0.0,0.0,0.0")
(cond
((eq (cdr (assoc 0 dxf_ent)) "CIRCLE")
(setq
js (ssget "_x" (list (assoc 410 dxf_ent) (assoc 67 dxf_ent)))
jsc (ssget "_x" (list (assoc 0 dxf_ent) (assoc 410 dxf_ent) (assoc 67 dxf_ent) (assoc 40 dxf_ent)))
n -1
)
(repeat (sslength jsc)
(ssdel (ssname jsc (setq n (1+ n))) js)
)
(if (not (tblsearch "LAYER" "UT1"))
(entmake '((0 . "LAYER")
(100 . "AcDbSymbolTableRecord")
(100 . "AcDbLayerTableRecord")
(2 . "UT1")
(70 . 0)
(62 . 7)
(6 . "Continuous")
(290 . 1)
(370 . -3)
)
)
)

(if js
(repeat (setq n (sslength js))
(entdel (ssname js (setq n (1- n))))
)
)
(if jsc
(repeat (setq n (sslength jsc))
(entmod (subst '(8 . "UT1") (assoc 8 (setq dxf_ent (entget (ssname jsc (setq n (1- n)))))) dxf_ent))
)
)
)
)
(command "_zoom" "_e")
(setq nw_js (ssadd) i 0)
(while (setq js (ssget"_:S"))
(ssadd (ssname js 0) nw_js)
(setq l_dxf (entget (ssname js 0)))
(setq h (* (cdr (assoc 40 l_dxf)) 0.5) i (1+ i))
(entmake
(list
'(0 . "TEXT")
'(10 0. 0. 0.)
(cons 11 (cdr (assoc 10 l_dxf)))
(cons 40 h)
(cons 1 (itoa i))
'(72 . 1)
'(73 . 2)
)
)
)
(setq js (ssget "_X"))
(cond
(js
(repeat (setq n (sslength js))
(ssadd (ssname js (setq n (1- n))) nw_js)
)
)
)
(cond
(nw_js
(setq n -1)
(repeat (sslength nw_js)
(entmake (setq l_dxf (entget (ssname nw_js (setq n (1+ n))))))
(entdel (cdar l_dxf))
)
)
)
(prin1)
)
[/code]

Merci pour ton aide

Add new comment