12.03.2022 11:28    

murat5484
FARKLI OFSET MESAFELERİNDE OLAN KOTLU NOKTARIN SEÇİLEN ÇİZGİ ÜZERİNE KAYDIRILMASI

16.03.2022 07:15    

ehya
Komut ismi PTM

Kod:

(defun c:PTM (/ ss tt ent-p nt tek pt zd dn yn ee c)
(if (setq ss (ssget (list (cons 0 "POINT"))))
(progn
(setq tt t)
(while tt
    (if (setq ent-p (car (entsel "\nÇizgiyi seçin:")))
      (progn
(setq nt (cdr (assoc 0 (entget ent-p))))
(if (/= nt "LINE")
  (progn
    (princ "\nLINE nesnesi seçin:")
    (setq tt t))
  (progn
    (setq tt nil c 0 say (sslength ss))
    (vl-cmdf ".select" ss "")
    (while (< c say)
      (setq tek (ssname ss c)
    pt (cdr (assoc 10 (entget tek)))
    zd (caddr pt)
    dn (vlax-curve-getClosestPointTo (vlax-ename->vla-object ent-p) pt t)
    yn (list (car dn)(cadr dn)zd)
          ee (entget tek)
    ee (subst (cons 10 yn)(assoc 10 ee) ee))
      (entmod ee)(entupd (cdr (assoc -1 ee)))
      (setq c (1+ c)))
    )))
      (progn
(if (= (getvar "errno") 7) (setq tt t))
(if (= (getvar "errno") 52) (setq tt nil)))
))))(princ))

19.03.2022 23:24    

klarnetcibooy
ehya, aga sen bir süpersin... acayip iş görür, peki bir de buna ilaveten veya fazlalık olarak şöyle bir şey diyebilir miyiz.. çizgilerin üzerine koordinatları taşıdık ama seçim sırasıyla yukardan aşağı veya aşağıdan yukarıya o koordınatları seçtiğimiz de x-y-z leriyle birlikte metin belgesine çıktı aldırabilir miyiz. ? veya noktaları biz seçelim ondan sorsun aşağıdan yukarıya doğru mu sağdan sola doğru mu yazdırılacağını noktaların ?? böyle bir şey mümkün müdür. Allah razı olsun şimdiden..

19.03.2022 23:25    

klarnetcibooy
ayriyetten bir sorum olacak, eğer görürseniz. link paylaşmak doğru mu bilmiyorum form kurallarında ama şurda bi lisp buldum bunu çoklu olarak kullanmak istiyorum..



Linkleri görebilmek için ÜYE olmalısınız.



bana mimardan gelen çizimlerde solid oluyor, ben 2D elektrik projesi çiziyorum solidler bende görüntü bozuklugu oluşturuyor aradım taradım yukarıdaki linkini verdiğim sayfadaki lispi buldum ama tek tek solidleri her seferinde seçerek polyline a dönüştürmek zor oluyor topluca seçip 1 seferde yapabilirsem benim çok işime yarayacak. böyle bir şey yapabilirseniz çok sevinirim. şimdiden teşekkür ederim.

20.03.2022 06:51    

ProhibiT
Böyle bir şeyi sanki daha önce paylaşmıştık gibi geldi bana. Aramak yerine yeniden yazmak kolayıma geldi.

Kod:

;| Seçilen 2D Solid Nesnelerinin yerine,                                      |
| aynı Layer'da, geçerli renk, çizgi tipi, çizgi kalınlığı                   |
| gibi özelliklere sahip Polyline'lar oluşturulur.                           |
|                            Hazırlayan: M. Şahin Güvercin (ProhibiT)        |
|                                     www.cizimokulu.com - 20.03.2022        |;
(defun c:sLpL (/ *error* SoLidLer SsLd sLnT)
;______________________________________________________________________________;
  (defun *error* (er /)
    (if (and (member er '("Function cancelled" "quit / exit abort"))
             (= (logand (getvar "undoctl") 8) 8))
      (progn (command-s "_.undo" "e")  (setvar "cmdecho" ocmd)))
    (princ (strcat "\n" er)) (prin1))
;______________________________________________________________________________;
  (setq ocmd (getvar "cmdecho")) (setvar "cmdecho" 0) (command "_.undo" "group")
;;;
  (setq SoLidLer (ssget (list (cons 0 "SOLID"))) n (sslength SoLidLer))
  (while (setq SsLd (ssname SoLidLer (setq n (1- n))))
    (setq sLenT (entget SsLd)) (entdel SsLd)
    (entmake (list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(67 . 0)
                   (assoc 8 sLenT) '(100 . "AcDbPolyline") '(90 . 4) '(70 . 1)
              (cons 10 (cdr (assoc 10 sLenT))) (cons 10 (cdr (assoc 11 sLenT)))
           (cons 10 (cdr (assoc 13 sLenT))) (cons 10 (cdr (assoc 12 sLenT))))))
;;;
  (if (= (logand (getvar "undoctl") 8) 8) (command "_.undo" "e"))
  (if ocmd (setvar "cmdecho" ocmd)) (prin1))

ProhibiT (20.03.2022 12:37 GMT)

26.03.2022 14:58    

murat5484
Ehya hocam, çok tesekkürler, Allah zorunuzu kolay eylesin..

> 1 <
Copyright © 2004-2022 SQL: 1.401 saniye - Sorgu: 65 - Ortalama: 0.02155 saniye