Đến nội dung


Hình ảnh
- - - - -

[Xin]Lisp Cắt Chân Dim (E đã Seach Nhưng Không Tìm được Lisp Như Ý)


  • Please log in to reply
6 replies to this topic

#1 mothaiba0106

mothaiba0106

    biết zoom

  • Members
  • Pip
  • 12 Bài viết
Điểm đánh giá: -3 (bình thường)

Đã gửi 12 September 2011 - 09:31 AM

Có một lần e down được lisp cắt chân dim thấy rất hay. Các dim có thể gióng lộn xộn nhưng dùng lisp, chọn điểm đầu và điểm cuối là tất cả các dim đều tăm tắp. Trên forum có nhiều lệnh cắt dim nhưng thường chỉ cắt được chứ ko gióng đều đường dim được. Thanks!
  • -1

#2 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5682 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 12 September 2011 - 09:37 AM

Lisp cũ :

(defun C:GD (/ dim_ch ll_ d13_ d14_ d4_ d2_ point_cat old_osm d10_n cat_h ang_h
ang_n dis_1 ang_g ang_d dim_l dim_new dis_h old_ang)
(setq old_err *error* *error* ctd_err)
(setvar "Cmdecho" 0)
(setq old_osm(getvar "Osmode") old_ang(getvar "Angdir"))
(setvar "Angdir" 0); (setvar "Osmode" 0)
(prompt "\nChon Dim <Aligned-Liner-Hor-Ver> dinh giong hang.")
(if(and(setq dim_ch(ssget '((0 . "DIMENSION"))))
(setq point_cat(getpoint "\nDiem moc giong hang <New>: ")) )
(progn
(setq ll_ 0 tol_(sslength dim_ch) total 0.0)
(while (< ll_ tol_)
(setq d2_(ssname dim_ch ll_) d3_(entget d2_) d4_(cdr(assoc 1 d3_)) )
(prompt "\nDiem giong moi")
(if(and d3_ d4_)
(setq d13_(cdr(assoc 13 d3_))
d10_(cdr(assoc 10 d3_))
d14_(cdr(assoc 14 d3_))
ang_n(angle d10_ d13_)
dis_1(distance d10_ d13_)
ang_g(angle d10_ d14_)
ang_d(- ang_g (dtr 90)) ) ;setq
)
(if (and d3_ point_cat)
(progn
(setq dis_h(distance d10_ point_cat)
ang_h(angle d10_ point_cat)
cat_h(* (sin (- ang_h ang_d)) dis_h)
d10_n(polar d10_ ang_g cat_h) )
(if (and d10_ d3_ d10_n)
(progn
(setq d3_(subst (cons '10 d10_n) (cons '10 d10_) d3_) )
(entmod d3_)(prompt "..... OK !")
) (princ "\n..... Khong thuc hien !")
)
)
)
(setq ll_(+ ll_ 1))
);while
)
)
(setvar "Osmode" old_osm)(setvar "Angdir" old_ang)
(setq *error* old_err)
(princ)
)

  • 1

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#3 mothaiba0106

mothaiba0106

    biết zoom

  • Members
  • Pip
  • 12 Bài viết
Điểm đánh giá: -3 (bình thường)

Đã gửi 12 September 2011 - 10:29 AM

Thanks bác!!!
  • 0

#4 vodanhnxc

vodanhnxc

    biết vẽ ellipse

  • Members
  • PipPip
  • 57 Bài viết
Điểm đánh giá: 3 (bình thường)

Đã gửi 15 February 2012 - 08:30 PM

bác ơi sao em ko sử dụng được lisp nhỉ,gõ gd hiện thông báo
Chon Dim <Aligned-Liner-Hor-Ver> dinh giong hang
select objects
em chọn dim rồi enter ra thông báo
điểm mốc gióng hàng (new) rồi em chọn 1 điểm bất kỳ thì xong dòng lệnh trở về command,các dim vẫn chưa được gióng
  • 0

#5 nguyenbakien

nguyenbakien

    biết lệnh scale

  • Members
  • PipPipPip
  • 147 Bài viết
Điểm đánh giá: 31 (tàm tạm)

Đã gửi 16 February 2012 - 10:34 AM

cua bạn đâyhttp://www.cadviet.c...033_cutdim1.rar
  • 0

#6 traigtmientay

traigtmientay

    biết vẽ arc

  • Members
  • PipPip
  • 48 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 06 October 2012 - 02:39 PM

bacs

Lisp cũ :


(defun C:GD (/ dim_ch ll_ d13_ d14_ d4_ d2_ point_cat old_osm d10_n cat_h ang_h
ang_n dis_1 ang_g ang_d dim_l dim_new dis_h old_ang)
(setq old_err *error* *error* ctd_err)
(setvar "Cmdecho" 0)
(setq old_osm(getvar "Osmode") old_ang(getvar "Angdir"))
(setvar "Angdir" 0); (setvar "Osmode" 0)
(prompt "\nChon Dim <Aligned-Liner-Hor-Ver> dinh giong hang.")
(if(and(setq dim_ch(ssget '((0 . "DIMENSION"))))
(setq point_cat(getpoint "\nDiem moc giong hang <New>: ")) )
(progn
(setq ll_ 0 tol_(sslength dim_ch) total 0.0)
(while (< ll_ tol_)
(setq d2_(ssname dim_ch ll_) d3_(entget d2_) d4_(cdr(assoc 1 d3_)) )
(prompt "\nDiem giong moi")
(if(and d3_ d4_)
(setq d13_(cdr(assoc 13 d3_))
d10_(cdr(assoc 10 d3_))
d14_(cdr(assoc 14 d3_))
ang_n(angle d10_ d13_)
dis_1(distance d10_ d13_)
ang_g(angle d10_ d14_)
ang_d(- ang_g (dtr 90)) ) ;setq
)
(if (and d3_ point_cat)
(progn
(setq dis_h(distance d10_ point_cat)
ang_h(angle d10_ point_cat)
cat_h(* (sin (- ang_h ang_d)) dis_h)
d10_n(polar d10_ ang_g cat_h) )
(if (and d10_ d3_ d10_n)
(progn
(setq d3_(subst (cons '10 d10_n) (cons '10 d10_) d3_) )
(entmod d3_)(prompt "..... OK !")
) (princ "\n..... Khong thuc hien !")
)
)
)
(setq ll_(+ ll_ 1))
);while
)
)
(setvar "Osmode" old_osm)(setvar "Angdir" old_ang)
(setq *error* old_err)
(princ)
)

bác ketxu có thể sửa lạ hộ e cái lisp này dc ko với bản vẽ này thì lip này dim bi nhay ko nhu ý muốnhttp://www.cadviet.c...313_km231_1.dwg
  • 0

#7 hieux5

hieux5

    Edu level: li3

  • Members
  • PipPip
  • 37 Bài viết
Điểm đánh giá: 12 (tàm tạm)

Đã gửi 06 October 2012 - 06:55 PM

Thêm dòng sau vào cuối lisp of Ketxu huynh

(defun dtr ( deg ) (* pi (/ deg 180.0)))

Nếu ngại thì down ở dưới :D
http://www.cadviet.c...12575_gd_cd.lsp
  • 2

Hãy nhớ : Kẻ mạnh không phải là kẻ chiến thắng mà Kẻ thắng mới là kẻ mạnh