Re: LISP. Отрисовка внешнего контура выбранных объектов

;|========================================
Опять не в тему замечательной программы от VVA, но
если нужно построение WIPEOUT по габаритам ТЕКСТа
(например, нужно "затереть" примитивы за ТЕКСТом),
то можно попробовать такой вариант.
Если не надо отключать контур растр.изображ.,
то удалите строчку: (command "_.draworder" b "" "_f")
Если не надо переносить ТЕКСТ на передний план,
то удалите строчку: (command "_wipeout" "_f" "_off")
=======================================|;

(defun C:Den (/ osmode a b c d e)
(if (setq a (ssget '((0 . "TEXT"))))(progn
(setq osmode (getvar "OSMODE")
      c 0)
(setvar "CMDECHO" 0)
(command "_.undo" "_g")
(setvar "OSMODE" 0)
(repeat (sslength a)
(setq b (ssname a c)
      d (entget b)
      e (cdr (assoc 10 d))
      c (1+ c))
(command "_.rectang" (mapcar '+ (cadr (Textbox d)) e ) e
     "_.rotate" (entlast) "" e (angtos (cdr (assoc 50 d)))
     "_wipeout" "_p" (entlast) "_y")
(command "_.draworder" b "" "_f"); текст на передний план
)
(command "_wipeout" "_f" "_off"); Отключить контур растр.изображ.
(setvar "OSMODE" osmode)
(command "_.undo" "_e")
(setvar "CMDECHO" 1)
))
(princ)
)

Re: LISP. Отрисовка внешнего контура выбранных объектов

Откорректированныя версия ECO (оставляет в покое тексты и мтексты, не всегда коррекно обрабатывала заблокированные слои)

(defun C:ECO ( / *error* blk obj MinPt MaxPt hiden pt pl unnamed_block isRus
          tmp_blk adoc blks lays lay oname sel csp loc sc ec ret DS osm iNSpT)
(defun *error* (msg)(mapcar '(lambda (x) (vla-put-Visible x :vlax-true)) hiden)
(vla-endundomark adoc)(if (and tmp_blk (not (vlax-erased-p tmp_blk))(vlax-write-enabled-p tmp_blk) )
(vla-Erase tmp_blk))(if osm (setvar "OSMODE" osm))(foreach x loc (vla-put-lock x :vlax-true)))
(vl-load-com)(setvar "CMDECHO" 0)(setq osm (getvar "OSMODE"))
 (if (zerop (getvar "WORLDUCS"))(progn(vl-cmdf "_.UCS" "")(vl-cmdf "_.Plan" "")))
(setq isRus (= (getvar "SysCodePage") "ANSI_1251"))
(setq adoc (vla-get-ActiveDocument (vlax-get-acad-object))
        blks (vla-get-blocks adoc) lays (vla-get-layers adoc))
  (vla-startundomark adoc)(if isRus (princ "\nВыберите объекты для построения контура")(princ "\nSelect objects for making a contour"))
  (vlax-for lay lays
      (if (= (vla-get-lock lay) :vlax-true)
          (progn (vla-put-lock lay :vlax-false) (setq loc (cons lay loc))))
      )
 (if (setq sel (ssget))(progn
    (setq sel (ssnamex sel))
;;;    (setq iNSpT(apply 'mapcar (cons 'min
;;;     (mapcar 'cadr (apply 'append (mapcar '(lambda(x)(vl-remove-if-not 'listp x)) sel))))))
    (setq iNSpT '(0 0 0))
    (setq sel (mapcar 'vlax-ename->vla-object(vl-remove-if 'listp (mapcar 'cadr sel))))
    (setq csp (vla-objectidtoobject adoc (vla-get-ownerid (car sel))))
   ; (setq unnamed_block (vla-add (vla-get-blocks adoc)(vlax-3d-point '(0. 0. 0.)) "*U"))
    (setq unnamed_block (vla-add (vla-get-blocks adoc)(vlax-3d-point inspt) "*U"))
    (foreach x sel
      (setq oname (strcase (vla-get-objectname x)))
      (cond ((member oname '("ACDBVIEWPORT" "ACDBATTRIBUTEDEFINITION" "ACDBMTEXT" "ACDBTEXT")) nil)
        ((= oname "ACDBBLOCKREFERENCE")
         (vla-InsertBlock unnamed_block
           (vla-get-insertionpoint x)(vla-get-name x)
           (vla-get-xscalefactor x)(vla-get-yscalefactor x)
           (vla-get-zscalefactor x)(vla-get-rotation x))
         (setq blk (cons x blk)))
        (t (setq obj (cons x obj)))));_foreach
        (setq lay  (vla-item lays (getvar "CLAYER")))
        (if (= (vla-get-lock lay) :vlax-true)(progn (vla-put-lock lay :vlax-false) (setq loc (cons lay loc))))
     (if obj (progn (vla-copyobjects (vla-get-activedocument (vlax-get-acad-object))
              (vlax-make-variant (vlax-safearray-fill
                  (vlax-make-safearray vlax-vbobject (cons 0 (1- (length obj))))
                  obj)) unnamed_block)))
    (setq obj (append obj blk))
    (if obj (progn
          ;(setq tmp_blk (vla-insertblock csp (vlax-3d-point '(0. 0. 0.))(vla-get-name unnamed_block) 1.0 1.0 1.0 0.0))
              (setq tmp_blk (vla-insertblock csp (vlax-3d-point inspt)(vla-get-name unnamed_block) 1.0 1.0 1.0 0.0))
          (vla-GetBoundingBox tmp_blk 'MinPt 'MaxPt)  ;_Границы блока
               (setq MinPt (vlax-safearray->list MinPt) MaxPt (vlax-safearray->list MaxPt)
             DS (max (distance MinPt (list (car MinPt)(cadr MaxPt)))
                 (distance MinPt (list (car MaxPt)(cadr MinPt))))
                 DS (* 0.2 DS) ;1/5
             DS (max DS 10) MinPt (mapcar '- MinPt (list DS DS))
                     MaxPt (mapcar '+ MaxPt (list DS DS)))
(lib:Zoom2Lst (list MinPt MaxPt))(setq sset (ssget "_C" MinPt MaxPt))
(if sset (progn (setvar "OSMODE" 0)
      (setq hiden (mapcar 'vlax-ename->vla-object(vl-remove-if 'listp (mapcar 'cadr (ssnamex sset))))
        hiden (vl-remove tmp_blk hiden))
      (mapcar '(lambda(x)(vla-put-Visible x :vlax-false)) hiden)
      (setq pt (mapcar '+ MinPt (list (* 0.5 DS)(* 0.5 DS))))
      (vl-cmdf "_.RECTANG" (trans MinPt 0 1)(trans MaxPt 0 1))
      (setq pl (vlax-ename->vla-object(entlast)))
      (setq sc (1-(vla-get-count csp)))
      (if (VL-CATCH-ALL-ERROR-P (VL-CATCH-ALL-APPLY '(lambda ()
         (vl-cmdf "_-BOUNDARY" (trans pt 0 1) "")
              (while (> (getvar "CMDACTIVE") 0)(command "")))))
      (if isRus (princ "\nНе удалось построить контур")(princ "\nIt was not possible to construct a contour")))
      (setq ec (vla-get-count csp))
        (while (< sc ec)(setq ret (append ret (list (vla-item csp sc))) sc(1+ sc)))
      (setq ret (vl-remove pl ret))
      (mapcar '(lambda (x)(vla-Erase x)(vlax-release-object x))(list pl tmp_blk))(setq pl nil tmp_blk nil)
      (setq ret (mapcar '(lambda ( x / mipt)(vla-GetBoundingBox x 'MiPt nil)  ;_Границы блока
                 (setq MiPt (vlax-safearray->list MiPt))(list MiPt x)) ret))
      (setq ret (vl-sort ret '(lambda (e1 e2)(< (distance MinPt (car e1))(distance MinPt (car e2))))))
      (setq pl (nth 1 ret) ret (vl-remove pl ret))(mapcar 'vla-erase (mapcar 'cadr ret))
      (mapcar '(lambda(x)(vla-put-Visible x :vlax-true)) hiden)
      (foreach x loc (vla-put-lock x :vlax-true))
      (if pl (progn (initget  "Yes No")
      (if (= (getkword (if isRus "\nУдалять объекты? [Yes/No] <No> : " "\nDelete objects? [Yes/No] <No> : ")) "Yes")
         (mapcar '(lambda (x) (if (vlax-write-enabled-p x)(vla-Erase x))) obj)))
    (if isRus (princ "\nНе удалось построить контур")(princ "\nIt was not possible to construct a contour")))))))
     (VL-CATCH-ALL-APPLY '(lambda ()(mapcar 'vlax-release-object
    (list unnamed_block tmp_blk csp blks lays))))));_if not
  (foreach x loc (vla-put-lock x :vlax-true))(setvar "OSMODE" osm)
  (vla-endundomark adoc)(vlax-release-object adoc)(princ))

Re: LISP. Отрисовка внешнего контура выбранных объектов

Вот как сделать общую маску (на текст и на не текст) в таком примере:
...Текстовая строка N=1
...Вторая текстовая строка N=2
------------------------------
...Текстовая строка N=3
где точками ... я заменил "пустоту" (пробелы в сообщении "съедятся"), а ----------------- отрезок, и этот вариант лишь частный и притом простейший случай.

Re: LISP. Отрисовка внешнего контура выбранных объектов

Прога просто обалдеть!!

А вот обсуждения странные...
Замаскировать любой текст - TEXTMASK / TEXTUNMASK (Express)
Баундари любого объекта
(acet-ent-geomextents (car (entsel)))

Re: LISP. Отрисовка внешнего контура выбранных объектов

VVA подскажите пожалуйста, как в вашем коде из поста 23 сделать, что бы прямоугольник вокруг текста строился с некоторым отступом от самого текста?

Re: LISP. Отрисовка внешнего контура выбранных объектов

В строчке (setq f '(1 2)) ;_ 1 отступ по x 2 - отступ по Y задай нужные значения

(defun C:Den (/ osmode a b c d e f)
(if (setq a (ssget '((0 . "TEXT"))))(progn
(setq osmode (getvar "OSMODE") c 0)
(setvar "CMDECHO" 0)
(setq f '(1 2)) ;_ 1 отступ по x 2 - отступ по Y
(command "_.undo" "_g")
(setvar "OSMODE" 0)
(repeat (sslength a)
(setq d (entget (ssname a c))
      e (cdr (assoc 10 d))
      c (1+ c))
(command "_.rectang" (mapcar '+ (cadr (Textbox d)) e f) (mapcar '- e f)
   "_.rotate"(entlast) "" e (angtos (cdr (assoc 50 d)))
)
  )
(setvar "OSMODE" osmode)
(command "_.undo" "_e")
(setvar "CMDECHO" 1)
))
(princ)
)

Re: LISP. Отрисовка внешнего контура выбранных объектов

Благодарствую )

Re: LISP. Отрисовка внешнего контура выбранных объектов

Денис Флюстиков:
(defun C:Den (/ osmode a b c d e)
(if (setq a (ssget '((0 . "TEXT"))))(progn
(setq osmode (getvar "OSMODE")
      b (ssadd)
      c 0)
(setvar "CMDECHO" 0)
(command "_.undo" "_g")
(setvar "OSMODE" 0)
(repeat (sslength a)
(setq d (entget (ssname a c))
      e (cdr (assoc 10 d))
      c (1+ c))
(command "_.rectang" (mapcar '+ (cadr (Textbox d)) e ) e
    "_.rotate"(entlast) "" e (angtos (cdr (assoc 50 d)))
    "_.region" (entlast) "")
(setq b (ssadd (entlast) b))
)
(command "_.union" b "")
(setvar "OSMODE" osmode)
(command "_.undo" "_e")
(setvar "CMDECHO" 1)
))
(princ)
)

Возможно ли сделать так чтобы: полилиния автоматом создавалась в нужном слое (если его нет, создавала слой ) ?

(изменено: Daria Bass, 21 сентября 2012г. 16:24:59)

Re: LISP. Отрисовка внешнего контура выбранных объектов

Я правильно поняла что ни одна из представленных программ не работает для группы полилиний арок и т.д?

Мне надо чтоб программа рисовала рамку с отступом вокруг полилиний.

Re: LISP. Отрисовка внешнего контура выбранных объектов

Господа. Огромное вам спасибо за тот труд который вы вкладываете в разработку. И так благодушно делитесь с его результатами.
Хотел спросить... Нужна прога, которая рисовала бы внешний контур выбранного облака точек. А еще лучше  выбранного облака блоков ( В геодезии по результатам съемки нужно высыпать точки съемки и отрисовать внешний контур. Съемок много, точек много--- РУТИНА). Использую цивел, геоникс и Land Desktop. Там точки съемки формируются в виде блоков (или еще чего то... дилетант). Но все они имеют четко прописанные координаты.

(изменено: Владимир Азарко, 28 сентября 2012г. 15:21:20)

Re: LISP. Отрисовка внешнего контура выбранных объектов

Что-то наподобие этого?

(Challenge) To draw the shortest lwpolyline

LISP. Отрисовка внешнего контура выбранных объектов

;;;------------------------TSP------------------------------------------------------------;;;
;;;---------------------------------------------------------------------------------------;;;
(defun c:test (/ foo f2 ptl lst l n i d0 l0 l1 d1)
  ;;by GSLS(SS)
  ;;refer ElpanovEvgeniy's method from  http://www.theswamp.org/index.php?topic=30434.75
  ;;2012-8-10
  (defun foo (l / D D0 D1)
    (setq l0 (mapcar (function list) (cons (last l) l) l)) ;_  setq
 ;_  defun
    (setq d0 (get-closedpolygon-length l))
    (while
      (> d0
     (progn
       (foreach a l0
         (setq d (get-closedpolygon-length l))
         (setq l1 (vl-remove (car a) (vl-remove (cadr a) l)))
         (setq l1 (f1 (car a) l1))
         (setq l1 (f1 (cadr a) l1))
         (if (> d
            (setq d1 (get-closedpolygon-length l1))
         )
           (setq d d1
             l l1
           ) ;_  setq
         ) ;_  if
         (setq l1 (vl-remove (car a) (vl-remove (cadr a) l)))
         (setq l1 (f1 (cadr a) l1))
         (setq l1 (f1 (car a) l1))
         (if (> d
            (setq d1 (get-closedpolygon-length l1))
         )
           (setq d d1
             l l1
           )
         )
       )
       d
     ) ;_  progn
      ) ;_  <
       (setq d0 d)
    ) ;_  while    
    (setq d (get-closedpolygon-length l))    
    l
  )
  (defun f1 (a l)
    (ins-lst a (get-closest-i l a) l)
  )
  (defun f2 (lst)
    (mapcar (function (lambda (p0 p p1 / a)
            (setq a (- (angle p p0) (angle p p1)))
            (if (< a (- pi))
              (abs (+ a pi pi))
              (if (> a pi)
                (abs (- a pi pi))
                (abs a)
              )
            )
              )
        )
        (cons (last lst) lst)
        lst
        (reverse (cons (car lst) (reverse (cdr lst))))
    )
  )
  (setq    ptl (my-getpt)
    ptl (mapcar (function (lambda (p) (list (car p) (cadr p)))) ptl)
  )
  (setq t1 (getvar "MilliSecs"))
  (setq lst (Graham-scan ptl))
  (foreach a lst
    (setq ptl (vl-remove a ptl))
  )
  (while (and (> (length ptl) 2) (setq l (Graham-scan ptl)))
    (foreach p l
      (setq ptl (vl-remove p ptl))
      (setq n (get-minadddist-i lst p))
      (setq lst (ins-lst p n lst))
    )
  )
  (if ptl
    (foreach p ptl
      (setq n (get-minadddist-i lst p))
      (setq lst (ins-lst p n lst))
    )
  )
  (setq lst (foo lst))
  (setq l (f2 lst))
  (setq    i  0
    l0 lst
    n  (length lst)
    d0 (get-closedpolygon-length lst)
  )
  (foreach a l
    (if    (and (< a _pi3) (= (setq p (nth i lst)) (nth i l0)))
      (progn
    (if (= i 0)
      (setq p0 (last lst))
      (setq p0 (nth (1- i) lst))
    )
    (if (= i (1- n))
      (setq p1 (car lst))
      (setq p1 (nth (1+ i) lst))
    )
    (setq m    (list (list p0 p1 p)
              (list p1 p p0)
              (list p1 p0 p)
              (list p p0 p1)
              (list p p1 p0)
        )
    )
    (setq l1
           (car (vl-sort (mapcar (function (lambda (x)
                         (ch-para-lst x i lst)
                           )
                     )
                     m
                 )
                 (function (lambda (e1 e2)
                     (< (get-closedpolygon-length e1)
                        (get-closedpolygon-length e2)
                     )
                       )
                 )
            )
           )
    )
    (setq d1 (get-closedpolygon-length l1))
    (if (< d1 d0)
      (setq    d0  d1
        lst l1
      )
    )
      )
    )
    (setq i (1+ i))
  )
  (setq l (f2 lst))
  (setq    i  0
    l0 lst
    d0 (get-closedpolygon-length lst)
  )
  (foreach a l
    (if    (and (< a _pi2) (setq p (nth i l0)))
      (progn
    (setq l1 (f1 p (vl-remove p lst)))
    (setq d1 (get-closedpolygon-length l1))
    (if (< d1 d0)
      (setq    d0  d1
        lst l1
      )
    )
      )
    )
    (setq i (1+ i))
  )
  (entmake
    (append (list '(0 . "LWPOLYLINE")
          '(100 . "AcDbEntity")
          '(8 . "temp")
          '(62 . 1)
          '(100 . "AcDbPolyline")
          (cons 90 (length lst))
          '(70 . 1)
        )
        (mapcar (function (lambda (p) (cons 10 p))) lst)
    )
  )
  (setq t2 (getvar "MilliSecs"))
  (princ (strcat "\nTSP Length :" (rtos d0 2 0) "."))
  (princ (strcat "\nUse Time :" (rtos (- t2 t1) 2 0) "ms."))
  (princ)
)
;;;Use Funtions
;;;--------------------------------------------------------------
;; Convex hull of pts , Graham scan method
;; by Highflybird
  (defun Graham-scan (ptl / hPs rPs PsY Pt0 sPs P Q)
    (if    (< (length ptl) 4)        ;3??? 
      ptl                ;???? 
      (progn
    (setq rPs (mapcar (function (lambda (x)
                      (if (= (length x) 3)
                    (cdr x)    x)))
              (mapcar 'reverse ptl));_???X?Y?? 
          PsY (mapcar 'cadr ptl) ;_???Y??? 
          Pt0 (reverse (assoc (apply 'min PsY) rPs)) ;_?????       
          sPs (sort-ad ptl Pt0) ;_????????? 
          hPs (list (caddr sPs) (cadr sPs) Pt0) ;_????? 
    )
    (foreach n (cdddr sPs)        ;??4??? 
      (setq    hPs (cons n hPs)    ;?Pi????? 
        P   (cadr hPs)        ;Pi-1 
        Q   (caddr hPs)        ;Pi-2 
      )
      (while (and q (> (det n P Q) -1e-6)) ;???? 
        (setq hPs (cons n (cddr hPs)) ;??Pi-1? 
          P   (cadr hPs)    ;????Pi-1? 
          Q   (caddr hPs)    ;????Pi-2? 
        )))
    hPs                ;???? 
      ))
  )
;;;?????????,??????????? 
(defun sort-ad (pl pt)
  (vl-sort pl
       (function (lambda (e1 e2 / an1 an2)
           (setq an1 (angle pt e1)
             an2 (angle pt e2))
           (if (equal an1 an2 1e-6);_??????,???????
         (< (distance pt e1) (distance pt e2))
         (< an1 an2)
           ))))
)
;;????????,??????? 
(defun det (p1 p2 p3)
  (- (* (- (car p2) (car p1)) (- (cadr p3) (cadr p1)))
     (* (- (car p3) (car p1)) (- (cadr p2) (cadr p1)))
  ))
;;;
;;;------------------------
(defun my-getpt    (/ ss i en l)
  (setq ss (ssget '((0 . "point,insert"))))
  (setq i -1)
  (while (setq en (ssname ss (setq i (1+ i))))
    (setq l (cons (cdr (assoc 10 (entget en))) l))
  )
)
;;;------------------------
;;;
;;(ins-lst 10 5 '(1 2 3 4 5))
;; i ?????????
(defun ins-lst (new i lst / len fst)
  (cond
    ((minusp i)
     lst
    )
    ((> i (setq len (length lst)))
     lst
    )
    ((> i (/ len 2))
     (reverse (ins-lst new (- len i) (reverse lst)))
    )
    (t
     (append
       (progn
     (setq fst nil)
     (repeat (rem i 4)
       (setq fst (cons (car lst) fst)
         lst (cdr lst)
       )
     )
     (repeat (/ i 4)
       (setq fst (cons (cadddr lst)
               (cons (caddr lst)
                 (cons
                   (cadr lst)
                   (cons
                     (car lst)
                     fst
                   )
                 )
               )
             )
         lst (cddddr lst)
       )
     )
     (reverse fst)
       )
       (list new)
       lst
     )
    )
  )
)
;;;------------------------
;;
;;(ch-para-lst '(7 8 9) 3 '(1 2 3 4 5))
(defun ch-para-lst (para i lst / len fst)
  (setq len (length lst))
  (cond
    ((minusp i)
     lst
    )
    ((> i (1- len))
     lst
    )
    ((= i 0)
     (cons (cadr para)
       (cons (caddr para)
         (reverse (cons (car para) (cdr (reverse (cddr lst)))))
       )
     )
    )
    ((= i (1- len))
     (reverse
       (append (cdr (reverse para))
           (cddr (reverse (cons (last para) (cdr lst))))
       )
     )
    )
    ((> i (/ len 2))
     (reverse
       (ch-para-lst (reverse para) (- len i 1) (reverse lst))
     )
    )
    (t
     (append
       (progn
     (setq fst nil)
     (repeat (rem i 4)
       (setq fst (cons (car lst) fst)
         lst (cdr lst)
       )
     )
     (repeat (/ i 4)
       (setq fst (cons (cadddr lst)
               (cons (caddr lst)
                 (cons
                   (cadr lst)
                   (cons
                     (car lst)
                     fst
                   )
                 )
               )
             )
         lst (cddddr lst)
       )
     )
     (reverse
       (cons (caddr para)
         (cons (cadr para) (cons (car para) (cdr fst)))
       )
     )
       )
       (cdr lst)
     )
    )
  )
)
;;;------------------------
;;
(defun get-minadddist-i    (lst p)
  (car
    (vl-sort-i
      (mapcar (function    (lambda    (p1 p2)
              (- (+ (distance p p1) (distance p p2))
                 (distance p1 p2)
              )
            )
          )
          (cons (last lst) lst)
          lst
      )
      '<
    )
  )
)
;;;------------------------
(defun get-closest-i (lst p)
  (car
    (vl-sort-i
      (mapcar
    (function
      (lambda (p1 p2 / pt d d1 d2)
        (setq pt (inters p
                 (polar p (+ (/ pi 2.) (angle p1 p2)) 1.)
                 p1
                 p2
                 nil
             )
          d  (distance p1 p2)
          d1 (distance p p1)
          d2 (distance p p2)
        )
        (if    pt
          (if (equal (+ (distance pt p1) (distance pt p2)) d 1e-8)
        (distance p pt)
        d2
          )
          1e99
        )
      )
    )
    (cons (last lst) lst)
    lst
      )
      '<
    )
  )
)
;;;------------------------
;;
(defun get-closedpolygon-length    (l)
  (apply (function +)
     (mapcar (function (lambda (p1 p2)
                 (distance p1 p2)
               )
         )
         (cons (last l) l)
         l
     )
  )
)

(изменено: Кирилл, 29 сентября 2012г. 00:17:31)

Re: LISP. Отрисовка внешнего контура выбранных объектов

Здравствуйте Владимир! Программа будет безусловно полезна, можно сделать запрос расстояния при котром будут соединяться ближайшие крайние точки? Например, задано 20м, если условие на соблюдается программа ищет ближайшие не крайние точки? На картинке по ссылке (не получилось отобарзить как у Вас)красным показана работа программы, синим как должно быть. Если можно, добавьте работу с блоками.
http://s2.ipicture.ru/uploads/20120928/G7YWriwq.bmp

(изменено: Владимир Азарко, 29 сентября 2012г. 12:10:03)

Re: LISP. Отрисовка внешнего контура выбранных объектов

Кирилл, Во первых, программа не моя, я только привел ее здесь. Разбираться в чужом коде нет ни времени, ни желания.
Удалить "ненужные" вершины можно командой PL-VxDel из комплекта [URL=http://dwg.ru/dnl/607]pltools[/URL]
Блоки вроде бы там есть

(setq ss (ssget '((0 . "point,[B пишет:

insert[/B]"))))


У блоков в качестве анализируемой точки берется точка вставки, поэтому нужно проверять, чтобы она не оказалась около луны.

Кирилл]
не получилось отобарзить как у Вас


В гугле по запросу "хостинг картинок" найдешь много сайтов, куда можно закачать картинку, а здесь привести код. Я использовал [URL=http://fastpic.ru/]этот[/URL]
PS Ты закачал так же на хостинг, но копировать сюда нужно было не первую ссылку, а 2-ю или 3-ю ([B]Полная картинка[/B] или [B]Превью - увеличение по клику[/B])

Re: LISP. Отрисовка внешнего контура выбранных объектов

Владимир Азарко пишет:


Что-то наподобие этого?

Огромное спасибо. Все работает. Не так как хотелось бы: проходиться подправлять, да и блоки не видит(только точки). Но все же...  :)

Re: LISP. Отрисовка внешнего контура выбранных объектов

Владимир Азарко пишет:


Что-то наподобие этого?

В моем случае это даже не блоки, а какая то графика прокси и ли что то такое :)
P.S.: Полилиния начинает залезать в само облако точек и начинает там отрисовывать завихрения соединяя ближайшие. Куча вершин. удалять в ручную дольше чем отприсовать сам контур облака. Жаль...

Re: LISP. Отрисовка внешнего контура выбранных объектов

Purgen Мух пишет:

В моем случае это даже не блоки, а какая то графика прокси и ли что то такое

В какой программе производите отрисовку? GeoniCS?


Purgen Мух пишет:

P.S.:Куча вершин. удалять в ручную дольше чем отприсовать сам контур облака. Жаль..

Если контуров, так много, есть  замороченный вариант попробуйте в CREDO MIX создать рельеф указав длину ребра, и ткнув внутрь облака точек. И переббросить в AutoCAD через 3D чертеж.

Сообщения с 26 по 41 из 41

Тему читают: 1 гость

Страницы Назад 1 2

Чтобы отправить ответ, вы должны войти или зарегистрироваться



Вход на форум «Форумы CADUser»

Запомнить меня
Возможно вы хотите зарегистрироваться или вспомнить пароль