🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.cad
Article #53918

[acad] poprawianie podkładu narysowanego bez snap'a'

#53918
From: Lukasz Kozicki
Date: Fri, 23 Mar 2012 22:57
72 lines
3241 bytes
Dla tych, którzy użerali się z rysunkami zrobionymi
przez partacza który nie używa snapa, z wymiarami które
nie domykają się w łańcuch i ułamkowymi odległościami
do każdego wierzchołka... znalazłem rzecz pożyteczną -
mi to zaoszczędziło kilka godzin poprawiania podkładu:
http://forums.autodesk.com/t5/Visual-LISP-AutoLISP-and-General/Move-all-vertices-to-existing-snap-precision/td-p/1762462

Z tym, ze po poprawieniu trzeba przejrzeć, bo może się
np. okazać że jeden koniec linii jest poprawiony w lewo
a drugi w prawo, albo 2 pozornie nakładające się linie
rozeszły się na boki.

Pozdr,
ŁK

PS. Aby nie zaginęło zacytuję:

(defun round_number (xr n / )
(* (fix (atof (rtos (* xr n) 2 0))) (/ 1.0 n))
)
(defun c:regular_draw ( / js n_count ent dxf_ent dxf_lst)
(setq js (ssget '((0 . 
"FACE3D,ARC,ATTDEF,ATTRIB,CIRCLE,ELLIPSE,INSERT,LINE,POLYLINE,LWPOLYLINE,*TEXT,POINT,SHAPE,SOLID,TRACE"))) 
n_count -1)
(cond
(js
(setvar "cmdecho" 0)
(command "_.undo" "_group")
(while (setq ent (ssname js (setq n_count (1+ n_count))))
(setq dxf_ent (entget ent))
(cond
((eq (cdr (assoc 0 dxf_ent)) "LWPOLYLINE")
(setq dxf_lst (cdr dxf_ent) dxf_ent (list (car dxf_ent)))
(while (cdr dxf_lst)
(if (eq 10 (caar dxf_lst))
(setq dxf_ent (cons (cons 10 (mapcar '(lambda (x p) (round_number x (/ 1 
p))) (cdar dxf_lst) (getvar "SNAPUNIT"))) dxf_ent))
(setq dxf_ent (cons (car dxf_lst) dxf_ent))
)
(setq dxf_lst (cdr dxf_lst))
)
(setq dxf_ent (reverse dxf_ent))
)
((eq (cdr (assoc 0 dxf_ent)) "POLYLINE")
(while (eq (cdr (assoc 0 (setq dxf_ent (entget (entnext (cdar 
dxf_ent)))))) "VERTEX")
(setq dxf_ent (subst (cons 10 (mapcar '(lambda (x p) (round_number x (/ 
1 p))) (cdr (assoc 10 dxf_ent)) (append (getvar "SNAPUNIT") (list (car 
(getvar "SNAPUNIT")))))) (assoc 10 dxf_ent) dxf_ent))
(entmod dxf_ent)
))
(T
(foreach n dxf_ent
(if (member (car n) '(10 11 12 13 40))
(if (listp (cdr n))
(setq dxf_ent (subst (cons (car n) (mapcar '(lambda (x p) (round_number 
x (/ 1 p))) (cdr n) (append (getvar "SNAPUNIT") (list (car (getvar 
"SNAPUNIT")))))) (assoc (car n) dxf_ent) dxf_ent))
(setq dxf_ent (subst (cons (car n) (round_number (cdr n) (/ 1 (car 
(getvar "SNAPUNIT"))))) (assoc (car n) dxf_ent) dxf_ent))
)))))
(entmod dxf_ent)
(entupd ent)
)
(command "_.undo" "_end")
(setvar "cmdecho" 1)
(princ (strcat "\n" (itoa n_count) " transformed object(s)."))
)
(T (princ "\nNo found valid object!"))
)
(prin1)
)
Technical Details
Message-ID: <4f6d0002$1@news.home.net.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!nf1.ipartners.pl!ipartners.pl!news.home.net.pl!not-for-mail

Show Full Headers
Complete Article Headers
Date: Fri, 23 Mar 2012 23:57:59 +0100
From: Lukasz Kozicki <ROT13yxbmvpxv@vg.cy.invalid>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2.28) Gecko/20120306 Thunderbird/3.1.20
MIME-Version: 1.0
Newsgroups: pl.comp.cad
Subject: [acad] poprawianie podkładu narysowanego bez snap'a'
NNTP-Posting-Host: 46.186.87.203
Message-ID: <4f6d0002$1@news.home.net.pl>
X-Trace: news.home.net.pl 1332543490 46.186.87.203 (23 Mar 2012 23:58:10 +0100)
Organization: home.pl news server
Lines: 72
X-Authenticated-User: junk.nospam
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!nf1.ipartners.pl!ipartners.pl!news.home.net.pl!not-for-mail
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit