Đến nội dung


Hình ảnh

Không cắt được đường kích thước


  • Please log in to reply
29 replies to this topic

#21 thanhduan2407

thanhduan2407

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 992 Bài viết
Điểm đánh giá: 223 (khá)

Đã gửi 21 December 2010 - 11:37 AM

Tại sao mình vẫn không cắt được nhỉ. tại Geometry mình để Z=0 rồi nhưng vẫn không được. bạn có thể post hình lúc cắt không. Lisp mình dùng lệnh tắt CT http://www.mediafire...n3u1nyaqz6ra62h

Bạn dùng lisp này để đưa tất cả các dimension có z khác 0 về 0 nhé. Sau đó dùng lisp cắt dim để cắt. Mình cũng mới mày mò thôi.
(defun gdim (ODimension)
(setq edata (entget ODimension))
(setq 1st (cdr (assoc 13 edata)))
(setq z1 (caddr 1st))
(if (/= z1 0) (setq z1 0))
(setq 1st (list (car 1st) (cadr 1st) z1))
(setq 2nd (cdr (assoc 14 edata)))
(setq z2 (caddr 2nd))
(if (/= z2 0) (setq z2 0))
(setq 2nd (list (car 2nd) (cadr 2nd) z2))
(setq edata (subst (cons 13 1st) (assoc 13 edata) edata ))
(entmod edata)
(setq edata (subst (cons 14 2nd) (assoc 14 edata) edata ))
(entmod edata)
)
(defun c:gd()
(setq ssdt (ssget (list (cons 0 "DIMENSION")))
sodoituong (sslength ssdt)
index 0
)
(repeat sodoituong
(setq ent_ht (ssname ssdt index)
index (1+ index)
)
(gdim ent_ht)
)
(princ)
)

  • 0



Tôi là con kiến bò trên sa mạc kiến thức bao la. Biển học thật rộng lớn







#22 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 21 December 2010 - 11:54 AM


;---------------------------------
(defun ctd_err (s)
(if(/= s "Function cancelled")
(princ (strcat "\nError: " s)) )(setq *error* old_err)(princ)
)

(defun C:cd (/ dim_ch ll_ d13_ d14_ d4_ d2_ point_cat old_osm dm_13 d10_1 cat_h ang_h
ang_n dis_1 ang_g ang_d dim_l dim_new dm_14 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 cat.")
(if(and(setq dim_ch(ssget '((0 . "DIMENSION"))))
(setq point_cat(getpoint "\nDiem moc cat duong giong <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_)) ;Dim 2
d10_(cdr(assoc 10 d3_)) ;Dim Chuan
d14_(cdr(assoc 14 d3_)) ;Dim 1
ang_n(angle d10_ d13_)
dis_1(distance d10_ d13_)
ang_g(angle d10_ d14_)
ang_d(- ang_g (dtr 90))
dim_l(* (cos (- ang_n ang_d)) dis_1) );setq
)
(if (and dim_l 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)
dm_14(polar d10_ ang_g cat_h) ;New point2
d10_1(polar d10_ ang_d dim_l)
dm_13(polar d10_1 ang_g cat_h) ) ;New point 1
(if (and dm_13 dm_14 d14_ d13_ d3_)
(progn
(setq d3_(subst (cons '13 dm_13) (cons '13 d13_) d3_)
d3_(subst (cons '14 dm_14) (cons '14 d14_) d3_))
(entmod d3_)(prompt "..... OK !")
) (princ "\n..... Khong thuc hien !")
)
)
)
(setq ll_(+ ll_ 1))
);while
)
)


E thì vẫn cắt dim theo thằng này,down file của bạn ấy vào thấy vẫn cắt như dao,nên k bít là nó có z khác 0..Híc

Hề hề hề,
Với lisp này thì thực ra là không cắt được do bác ketxu trở thành ket xỉ không chịu post cái lisp DTR lên cho mọi người xài.....
Nếu co lisp DTR này thì chắc hẳn sẽ được vì bác ấy chả thèm dùng tới hàm (inters ....) nên hổng bị cái lỗi giống cái lisp của bạn thanhduan2407.
Trong lisp này tuy chả nói ra nhưng thực tế thì cái điểm mới dm_13 và dm_14 này đều lấy cùng tọa độ z với thằng d10 cả rồi (do dùng hàm polar .....). Tức là nếu d10 có z=0 thì dm_13 và dm_14 cũng có z=0 bác ketxu ạ. Chí ít thì 3 thằng này cũng đồng phẳng rùi. Hề hề hề
Và thằng này cũng có tí lỗi do việc xác định cái điểm dm_13 gây ra.... Thực chất đó chính là do cái khoảng cách dis_1 giữa hai điểm không có cùng cao độ z gây ra. Hề hề hề
Mong bác xem lại hỉ???
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#23 18011985

18011985

    biết lệnh properties

  • Members
  • PipPipPipPip
  • 255 Bài viết
Điểm đánh giá: 61 (tàm tạm)

Đã gửi 21 December 2010 - 01:28 PM

Hề hề hề,
Với lisp này thì thực ra là không cắt được do bác ketxu trở thành ket xỉ không chịu post cái lisp DTR lên cho mọi người xài.....
Nếu co lisp DTR này thì chắc hẳn sẽ được vì bác ấy chả thèm dùng tới hàm (inters ....) nên hổng bị cái lỗi giống cái lisp của bạn thanhduan2407.
Trong lisp này tuy chả nói ra nhưng thực tế thì cái điểm mới dm_13 và dm_14 này đều lấy cùng tọa độ z với thằng d10 cả rồi (do dùng hàm polar .....). Tức là nếu d10 có z=0 thì dm_13 và dm_14 cũng có z=0 bác ketxu ạ. Chí ít thì 3 thằng này cũng đồng phẳng rùi. Hề hề hề
Và thằng này cũng có tí lỗi do việc xác định cái điểm dm_13 gây ra.... Thực chất đó chính là do cái khoảng cách dis_1 giữa hai điểm không có cùng cao độ z gây ra. Hề hề hề
Mong bác xem lại hỉ???

Đọc chưa hết bài nhưng mình có lsp cắt được dim có chênh cao Z spam lên cho các bạn khì khì.
(DEFUN C:CD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI 
PT13I PT14I PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)
(SETQ CMD (GETVAR "CMDECHO"))
(SETQ OSM (GETVAR "OSMODE"))
;;;(SETQ OLDERR *error*
;;; *error* myerror)
(PRINC "Lam on chon duong kich thuoc bat ky can cat bo Duong oi:")
(SETQ SS (SSGET))
(SETVAR "CMDECHO" 0)
(SETQ PT (GETPOINT "Con moi bo Duong nhap diem gioi han duong kich thuoc a:"))
(SETQ PT (TRANS PT 1 0))
(COMMAND "UCS" "W")
(SETQ LTH (SSLENGTH SS))
(SETQ DEM 0)
(WHILE (< DEM LTH)
(PROGN
(SETQ DS (ENTGET (SSNAME SS DEM)))
(SETQ KDL (CDR (ASSOC 0 DS)))
(IF (= "DIMENSION" KDL)
(PROGN
(SETQ PT10 (CDR (ASSOC 10 DS)))
(SETQ PT11 (CDR (ASSOC 11 DS)))
(SETQ PT13 (CDR (ASSOC 13 DS)))
(SETQ PT14 (CDR (ASSOC 14 DS)))
(SETQ PT10 (LIST (CAR PT10) (CADR PT10) 0.00))
(SETQ PT11 (LIST (CAR PT11) (CADR PT11) 0.00))
(SETQ PT13 (LIST (CAR PT13) (CADR PT13) 0.00))
(SETQ PT14 (LIST (CAR PT14) (CADR PT14) 0.00))
(SETQ N70 (CDR (ASSOC 70 DS)))
(IF (OR (= N70 0) (= N70 32) (= N70 33) (= N70 160) (= N70 161))
(PROGN
(SETQ GOCY (ANGLE PT10 PT14))
(SETQ GOCX (+ GOCY (/ PI 2)))
)
)
(SETVAR "OSMODE" 0)
(SETQ PTI (POLAR PT GOCX 2))
(SETQ PT13I (POLAR PT13 GOCY 2))
(SETQ PT14I (POLAR PT14 GOCY 2))
(SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))
(SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))
(SETQ O13 (ASSOC 13 DS))
(SETQ O14 (ASSOC 14 DS))
(SETQ N13 (CONS 13 PT13N))
(SETQ N14 (CONS 14 PT14N))
(SETQ DS (SUBST N13 O13 DS))
(SETQ DS (SUBST N14 O14 DS))
(ENTMOD DS)
)
)
(SETQ DEM (+ DEM 1))
)
)
(COMMAND "UCS" "P")
(SETVAR "CMDECHO" CMD)
(SETVAR "OSMODE" OSM)
;;;(setq *error* OLDERR) ; Restore old *error* handler
(PRINC)
)
;******************************************************************************

(DEFUN C:BD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI
PT10 PT10I PT10N O10 N10 PT11 PT11N O11 N11 KC OSM OLDERR)
(SETQ CMD (GETVAR "CMDECHO"))
(SETQ OSM (GETVAR "OSMODE"))
;;;(SETQ OLDERR *error*
;;; *error* myerror)
(PRINC "Chon diem dau bo Duong oi")
(SETQ SS (SSGET))
(SETVAR "CMDECHO" 0)
(SETQ PT (GETPOINT "Diem ket thuc nua bo Duong a:"))
(SETQ PT (TRANS PT 1 0))
(COMMAND "UCS" "W")
(SETQ LTH (SSLENGTH SS))
(SETQ DEM 0)
(WHILE (< DEM LTH)
(PROGN
(SETQ DS (ENTGET (SSNAME SS DEM)))
(SETQ KDL (CDR (ASSOC 0 DS)))
(IF (= "DIMENSION" KDL)
(PROGN
(SETQ PT13 (CDR (ASSOC 13 DS)))
(SETQ PT14 (CDR (ASSOC 14 DS)))
(SETQ PT10 (CDR (ASSOC 10 DS)))
(SETQ PT11 (CDR (ASSOC 11 DS)))
(SETQ N70 (CDR (ASSOC 70 DS)))
(IF (OR (= N70 0) (= N70 32) (= N70 33) (= N70 160) (= N70 161))
(PROGN
(SETQ GOCY (ANGLE PT10 PT14))
(SETQ GOCX (+ GOCY (/ PI 2)))
)
)
(SETVAR "OSMODE" 0)
(SETQ PTI (POLAR PT GOCX 2))
(SETQ PT10I (POLAR PT10 GOCY 2))
(SETQ PT10N (INTERS PT PTI PT10 PT10I NIL))
(SETQ KC (DISTANCE PT10 PT10N))
(SETQ O10 (ASSOC 10 DS))
(SETQ N10 (CONS 10 PT10N))
(SETQ DS (SUBST N10 O10 DS))
(SETQ PT11N (POLAR PT11 (ANGLE PT10 PT10N) KC))
(SETQ O11 (ASSOC 11 DS))
(SETQ N11 (CONS 11 PT11N))
(SETQ DS (SUBST N11 O11 DS))
(ENTMOD DS)
)
)
(SETQ DEM (+ DEM 1))
)
)
(COMMAND "UCS" "P")
(SETVAR "CMDECHO" CMD)
(SETVAR "OSMODE" OSM)
;;;(setq *error* OLDERR)
(PRINC)
)

  • 1
Trăng 16 trăng tròn
Em 16 bụng ... như trăng

Hướng dẫn sử dụng diễn đàn:
Để cảm ơn hay bài viết có ích: Ấn dấu + cuối bài.
Không vừa lòng hay bài spam: Ấn dấu - cuối bài.

#24 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 21 December 2010 - 02:14 PM

Đọc chưa hết bài nhưng mình có lsp cắt được dim có chênh cao Z spam lên cho các bạn khì khì.

(DEFUN C:CD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI 
PT13I PT14I PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)
(SETQ CMD (GETVAR "CMDECHO"))
(SETQ OSM (GETVAR "OSMODE"))
;;;(SETQ OLDERR *error*
;;; *error* myerror)
(PRINC "Lam on chon duong kich thuoc bat ky can cat bo Duong oi:")
(SETQ SS (SSGET))
(SETVAR "CMDECHO" 0)
(SETQ PT (GETPOINT "Con moi bo Duong nhap diem gioi han duong kich thuoc a:"))
(SETQ PT (TRANS PT 1 0))
(COMMAND "UCS" "W")
(SETQ LTH (SSLENGTH SS))
(SETQ DEM 0)
(WHILE (< DEM LTH)
(PROGN
(SETQ DS (ENTGET (SSNAME SS DEM)))
(SETQ KDL (CDR (ASSOC 0 DS)))
(IF (= "DIMENSION" KDL)
(PROGN
(SETQ PT10 (CDR (ASSOC 10 DS)))
(SETQ PT11 (CDR (ASSOC 11 DS)))
(SETQ PT13 (CDR (ASSOC 13 DS)))
(SETQ PT14 (CDR (ASSOC 14 DS)))
(SETQ PT10 (LIST (CAR PT10) (CADR PT10) 0.00))
(SETQ PT11 (LIST (CAR PT11) (CADR PT11) 0.00))
(SETQ PT13 (LIST (CAR PT13) (CADR PT13) 0.00))
(SETQ PT14 (LIST (CAR PT14) (CADR PT14) 0.00))
(SETQ N70 (CDR (ASSOC 70 DS)))
(IF (OR (= N70 0) (= N70 32) (= N70 33) (= N70 160) (= N70 161))
(PROGN
(SETQ GOCY (ANGLE PT10 PT14))
(SETQ GOCX (+ GOCY (/ PI 2)))
)
)
(SETVAR "OSMODE" 0)
(SETQ PTI (POLAR PT GOCX 2))
(SETQ PT13I (POLAR PT13 GOCY 2))
(SETQ PT14I (POLAR PT14 GOCY 2))
(SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))
(SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))
(SETQ O13 (ASSOC 13 DS))
(SETQ O14 (ASSOC 14 DS))
(SETQ N13 (CONS 13 PT13N))
(SETQ N14 (CONS 14 PT14N))
(SETQ DS (SUBST N13 O13 DS))
(SETQ DS (SUBST N14 O14 DS))
(ENTMOD DS)
)
)
(SETQ DEM (+ DEM 1))
)
)
(COMMAND "UCS" "P")
(SETVAR "CMDECHO" CMD)
(SETVAR "OSMODE" OSM)
;;;(setq *error* OLDERR) ; Restore old *error* handler
(PRINC)
)
;******************************************************************************

(DEFUN C:BD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI
PT10 PT10I PT10N O10 N10 PT11 PT11N O11 N11 KC OSM OLDERR)
(SETQ CMD (GETVAR "CMDECHO"))
(SETQ OSM (GETVAR "OSMODE"))
;;;(SETQ OLDERR *error*
;;; *error* myerror)
(PRINC "Chon diem dau bo Duong oi")
(SETQ SS (SSGET))
(SETVAR "CMDECHO" 0)
(SETQ PT (GETPOINT "Diem ket thuc nua bo Duong a:"))
(SETQ PT (TRANS PT 1 0))
(COMMAND "UCS" "W")
(SETQ LTH (SSLENGTH SS))
(SETQ DEM 0)
(WHILE (< DEM LTH)
(PROGN
(SETQ DS (ENTGET (SSNAME SS DEM)))
(SETQ KDL (CDR (ASSOC 0 DS)))
(IF (= "DIMENSION" KDL)
(PROGN
(SETQ PT13 (CDR (ASSOC 13 DS)))
(SETQ PT14 (CDR (ASSOC 14 DS)))
(SETQ PT10 (CDR (ASSOC 10 DS)))
(SETQ PT11 (CDR (ASSOC 11 DS)))
(SETQ N70 (CDR (ASSOC 70 DS)))
(IF (OR (= N70 0) (= N70 32) (= N70 33) (= N70 160) (= N70 161))
(PROGN
(SETQ GOCY (ANGLE PT10 PT14))
(SETQ GOCX (+ GOCY (/ PI 2)))
)
)
(SETVAR "OSMODE" 0)
(SETQ PTI (POLAR PT GOCX 2))
(SETQ PT10I (POLAR PT10 GOCY 2))
(SETQ PT10N (INTERS PT PTI PT10 PT10I NIL))
(SETQ KC (DISTANCE PT10 PT10N))
(SETQ O10 (ASSOC 10 DS))
(SETQ N10 (CONS 10 PT10N))
(SETQ DS (SUBST N10 O10 DS))
(SETQ PT11N (POLAR PT11 (ANGLE PT10 PT10N) KC))
(SETQ O11 (ASSOC 11 DS))
(SETQ N11 (CONS 11 PT11N))
(SETQ DS (SUBST N11 O11 DS))
(ENTMOD DS)
)
)
(SETQ DEM (+ DEM 1))
)
)
(COMMAND "UCS" "P")
(SETVAR "CMDECHO" CMD)
(SETVAR "OSMODE" OSM)
;;;(setq *error* OLDERR)
(PRINC)
)

Hề hề hề,
Âu cũng là có tí khè hỉ????

Cám ơn bác đã chia xẻ, song giá như không có "bo Duong" thì lisp sẽ tuyệt hơn nhiều bác ạ....
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#25 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 21 December 2010 - 03:57 PM

Hề hề hề,
Với lisp này thì thực ra là không cắt được do bác ketxu trở thành ket xỉ không chịu post cái lisp DTR lên cho mọi người xài.....
Nếu co lisp DTR này thì chắc hẳn sẽ được vì bác ấy chả thèm dùng tới hàm (inters ....) nên hổng bị cái lỗi giống cái lisp của bạn thanhduan2407.
Trong lisp này tuy chả nói ra nhưng thực tế thì cái điểm mới dm_13 và dm_14 này đều lấy cùng tọa độ z với thằng d10 cả rồi (do dùng hàm polar .....). Tức là nếu d10 có z=0 thì dm_13 và dm_14 cũng có z=0 bác ketxu ạ. Chí ít thì 3 thằng này cũng đồng phẳng rùi. Hề hề hề
Và thằng này cũng có tí lỗi do việc xác định cái điểm dm_13 gây ra.... Thực chất đó chính là do cái khoảng cách dis_1 giữa hai điểm không có cùng cao độ z gây ra. Hề hề hề
Mong bác xem lại hỉ???

Ều,bác Bình ác thế ^^. THực ra thì e nghĩ hàm dtr đa số máy đại ca nào dùng lisp kiểu j cũng có cái đã định nghĩa r nên k để ý kèm theo.Hề hề..
Hề hề,lisp này e cóp ở đâu cũng hok nhớ nữa, chứ e có viết đâu lào ^^

P/S : ketxu = Két Xù = Nhân vật trong phim Ông Trùm bác ạ ^^ Chứ em á, cực kỳ hảo dạ luôn :undecided:)

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


Đọc chưa hết bài nhưng mình có lsp cắt được dim có chênh cao Z spam lên cho các bạn khì khì.

Cái nì sao giống cái lisp cd,bd mấy a e công ty e vẫn hay dùng thế nhờ.Có khi lại cùng nguồn.N mà hok có cái phần "mời... " ^^
  • 0

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


#26 tvtk2

tvtk2

    biết pan

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

Đã gửi 22 December 2010 - 02:13 PM

Bây giờ mình cắt được rồi. Thanks!
  • 0

#27 18011985

18011985

    biết lệnh properties

  • Members
  • PipPipPipPip
  • 255 Bài viết
Điểm đánh giá: 61 (tàm tạm)

Đã gửi 22 December 2010 - 03:04 PM

Hề hề hề,
Âu cũng là có tí khè hỉ????

Cám ơn bác đã chia xẻ, song giá như không có "bo Duong" thì lisp sẽ tuyệt hơn nhiều bác ạ....

Tán thành với bác em thấy lsp nè trong máy em và cũng không cắt được dim chênh cao Z nên em liều lĩnh sửa lại, mà em chẳng làm việc với dim nhiều lắm. Nên em chỉ sửa lại đôi chút chứ không làm lại theo ghost của mình. :undecided:
  • 0
Trăng 16 trăng tròn
Em 16 bụng ... như trăng

Hướng dẫn sử dụng diễn đàn:
Để cảm ơn hay bài viết có ích: Ấn dấu + cuối bài.
Không vừa lòng hay bài spam: Ấn dấu - cuối bài.

#28 phuongpt

phuongpt

    biết zoom

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

Đã gửi 24 December 2010 - 12:03 PM

Bản vẽ của em không thể nào cd được dim đối với những dim gắn liền với đối tượng. Còn đối với cd dim bình thường thì vẫn cắt dim bt cái này em ko thể giải thích được mong bác nào giúp đỡ cho em vói em xin gửi file cad như sau :
http://www.mediafire...rpvh9962c032tci
Rất mong các bác giúp đỡ

Bạn có thể dùng lisp này
http://www.cadviet.c...iles/3/flat.lsp
Xin lỗi mình cũng mới sử dụng nên chưa biết cách up lisp. Lệnh là "FT"
Chúc bạn thành công!
  • 0

#29 unbroken

unbroken

    biết vẽ arc

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

Đã gửi 20 September 2013 - 01:54 PM

sao mình k dùng dc lisp này nhỉ

Đọc chưa hết bài nhưng mình có lsp cắt được dim có chênh cao Z spam lên cho các bạn khì khì.

(DEFUN C:CD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI                                   PT13I PT14I PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)(SETQ CMD (GETVAR "CMDECHO"))(SETQ OSM (GETVAR "OSMODE"));;;(SETQ OLDERR *error*;;;      *error* myerror)(PRINC "Lam on chon duong kich thuoc bat ky can cat bo Duong oi:")(SETQ SS (SSGET))(SETVAR "CMDECHO" 0)(SETQ PT (GETPOINT "Con moi bo Duong nhap diem gioi han duong kich thuoc a:"))(SETQ PT (TRANS PT 1 0))(COMMAND "UCS" "W")(SETQ LTH (SSLENGTH SS))(SETQ DEM 0)(WHILE (< DEM LTH)    (PROGN	(SETQ DS (ENTGET (SSNAME SS DEM)))	(SETQ KDL (CDR (ASSOC 0 DS)))	(IF (= "DIMENSION" KDL)	   (PROGN		(SETQ PT10 (CDR (ASSOC 10 DS)))		(SETQ PT11 (CDR (ASSOC 11 DS)))		(SETQ PT13 (CDR (ASSOC 13 DS)))		(SETQ PT14 (CDR (ASSOC 14 DS)))		(SETQ PT10 (LIST (CAR PT10) (CADR PT10) 0.00))		(SETQ PT11 (LIST (CAR PT11) (CADR PT11) 0.00))		(SETQ PT13 (LIST (CAR PT13) (CADR PT13) 0.00))		(SETQ PT14 (LIST (CAR PT14) (CADR PT14) 0.00))		(SETQ N70 (CDR (ASSOC 70 DS)))		(IF (OR (= N70 0) (= N70 32) (= N70 33) (= N70 160) (= N70 161))		   (PROGN			(SETQ GOCY (ANGLE PT10 PT14))			(SETQ GOCX (+ GOCY (/ PI 2)))		   )		)		(SETVAR "OSMODE" 0)		(SETQ PTI (POLAR PT GOCX 2))		(SETQ PT13I (POLAR PT13 GOCY 2))		(SETQ PT14I (POLAR PT14 GOCY 2))		(SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))		(SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))		(SETQ O13 (ASSOC 13 DS))		(SETQ O14 (ASSOC 14 DS))		(SETQ N13 (CONS 13 PT13N))		(SETQ N14 (CONS 14 PT14N))		(SETQ DS (SUBST N13 O13 DS))		(SETQ DS (SUBST N14 O14 DS))		(ENTMOD DS)	   )	)	(SETQ DEM (+ DEM 1))    ))(COMMAND "UCS" "P")(SETVAR "CMDECHO" CMD)(SETVAR "OSMODE" OSM);;;(setq *error* OLDERR)               ; Restore old *error* handler(PRINC));******************************************************************************(DEFUN C:BD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI                PT10 PT10I PT10N O10 N10 PT11 PT11N O11 N11 KC OSM OLDERR)(SETQ CMD (GETVAR "CMDECHO"))(SETQ OSM (GETVAR "OSMODE"));;;(SETQ OLDERR *error*;;;      *error* myerror)(PRINC "Chon diem dau bo Duong oi")(SETQ SS (SSGET))(SETVAR "CMDECHO" 0)(SETQ PT (GETPOINT "Diem ket thuc nua bo Duong a:"))(SETQ PT (TRANS PT 1 0))(COMMAND "UCS" "W")(SETQ LTH (SSLENGTH SS))(SETQ DEM 0)(WHILE (< DEM LTH)    (PROGN	(SETQ DS (ENTGET (SSNAME SS DEM)))	(SETQ KDL (CDR (ASSOC 0 DS)))	(IF (= "DIMENSION" KDL)	   (PROGN		(SETQ PT13 (CDR (ASSOC 13 DS)))		(SETQ PT14 (CDR (ASSOC 14 DS)))		(SETQ PT10 (CDR (ASSOC 10 DS)))		(SETQ PT11 (CDR (ASSOC 11 DS)))		(SETQ N70 (CDR (ASSOC 70 DS)))		(IF (OR (= N70 0) (= N70 32) (= N70 33) (= N70 160) (= N70 161))		   (PROGN			(SETQ GOCY (ANGLE PT10 PT14))			(SETQ GOCX (+ GOCY (/ PI 2)))		   )		)		(SETVAR "OSMODE" 0)		(SETQ PTI (POLAR PT GOCX 2))		(SETQ PT10I (POLAR PT10 GOCY 2))		(SETQ PT10N (INTERS PT PTI PT10 PT10I NIL))		(SETQ KC (DISTANCE PT10 PT10N))		(SETQ O10 (ASSOC 10 DS))		(SETQ N10 (CONS 10 PT10N))		(SETQ DS (SUBST N10 O10 DS))		(SETQ PT11N (POLAR PT11 (ANGLE PT10 PT10N) KC))		(SETQ O11 (ASSOC 11 DS))		(SETQ N11 (CONS 11 PT11N))		(SETQ DS (SUBST N11 O11 DS))		(ENTMOD DS)	   )	)	(SETQ DEM (+ DEM 1))    ))(COMMAND "UCS" "P")(SETVAR "CMDECHO" CMD)(SETVAR "OSMODE" OSM);;;(setq *error* OLDERR)(PRINC))



  • 0

Giaminh19@gmail.com


#30 heroproviponline

heroproviponline

    Chưa sử dụng CAD

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

Đã gửi 17 November 2016 - 09:13 PM

Đọc chưa hết bài nhưng mình có lsp cắt được dim có chênh cao Z spam lên cho các bạn khì khì.

(DEFUN C:CD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI
PT13I PT14I PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)
(SETQ CMD (GETVAR "CMDECHO"))
(SETQ OSM (GETVAR "OSMODE"))
;;;(SETQ OLDERR *error*
;;; *error* myerror)
(PRINC "Lam on chon duong kich thuoc bat ky can cat bo Duong oi:")
(SETQ SS (SSGET))
(SETVAR "CMDECHO" 0)
(SETQ PT (GETPOINT "Con moi bo Duong nhap diem gioi han duong kich thuoc a:"))
(SETQ PT (TRANS PT 1 0))
(COMMAND "UCS" "W")
(SETQ LTH (SSLENGTH SS))
(SETQ DEM 0)
(WHILE (< DEM LTH)
(PROGN
(SETQ DS (ENTGET (SSNAME SS DEM)))
(SETQ KDL (CDR (ASSOC 0 DS)))
(IF (= "DIMENSION" KDL)
(PROGN
(SETQ PT10 (CDR (ASSOC 10 DS)))
(SETQ PT11 (CDR (ASSOC 11 DS)))
(SETQ PT13 (CDR (ASSOC 13 DS)))
(SETQ PT14 (CDR (ASSOC 14 DS)))
(SETQ PT10 (LIST (CAR PT10) (CADR PT10) 0.00))
(SETQ PT11 (LIST (CAR PT11) (CADR PT11) 0.00))
(SETQ PT13 (LIST (CAR PT13) (CADR PT13) 0.00))
(SETQ PT14 (LIST (CAR PT14) (CADR PT14) 0.00))
(SETQ N70 (CDR (ASSOC 70 DS)))
(IF (OR (= N70 0) (= N70 32) (= N70 33) (= N70 160) (= N70 161))
(PROGN
(SETQ GOCY (ANGLE PT10 PT14))
(SETQ GOCX (+ GOCY (/ PI 2)))
)
)
(SETVAR "OSMODE" 0)
(SETQ PTI (POLAR PT GOCX 2))
(SETQ PT13I (POLAR PT13 GOCY 2))
(SETQ PT14I (POLAR PT14 GOCY 2))
(SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))
(SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))
(SETQ O13 (ASSOC 13 DS))
(SETQ O14 (ASSOC 14 DS))
(SETQ N13 (CONS 13 PT13N))
(SETQ N14 (CONS 14 PT14N))
(SETQ DS (SUBST N13 O13 DS))
(SETQ DS (SUBST N14 O14 DS))
(ENTMOD DS)
)
)
(SETQ DEM (+ DEM 1))
)
)
(COMMAND "UCS" "P")
(SETVAR "CMDECHO" CMD)
(SETVAR "OSMODE" OSM)
;;;(setq *error* OLDERR) ; Restore old *error* handler
(PRINC)
)
;******************************************************************************

(DEFUN C:BD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI
PT10 PT10I PT10N O10 N10 PT11 PT11N O11 N11 KC OSM OLDERR)
(SETQ CMD (GETVAR "CMDECHO"))
(SETQ OSM (GETVAR "OSMODE"))
;;;(SETQ OLDERR *error*
;;; *error* myerror)
(PRINC "Chon diem dau bo Duong oi")
(SETQ SS (SSGET))
(SETVAR "CMDECHO" 0)
(SETQ PT (GETPOINT "Diem ket thuc nua bo Duong a:"))
(SETQ PT (TRANS PT 1 0))
(COMMAND "UCS" "W")
(SETQ LTH (SSLENGTH SS))
(SETQ DEM 0)
(WHILE (< DEM LTH)
(PROGN
(SETQ DS (ENTGET (SSNAME SS DEM)))
(SETQ KDL (CDR (ASSOC 0 DS)))
(IF (= "DIMENSION" KDL)
(PROGN
(SETQ PT13 (CDR (ASSOC 13 DS)))
(SETQ PT14 (CDR (ASSOC 14 DS)))
(SETQ PT10 (CDR (ASSOC 10 DS)))
(SETQ PT11 (CDR (ASSOC 11 DS)))
(SETQ N70 (CDR (ASSOC 70 DS)))
(IF (OR (= N70 0) (= N70 32) (= N70 33) (= N70 160) (= N70 161))
(PROGN
(SETQ GOCY (ANGLE PT10 PT14))
(SETQ GOCX (+ GOCY (/ PI 2)))
)
)
(SETVAR "OSMODE" 0)
(SETQ PTI (POLAR PT GOCX 2))
(SETQ PT10I (POLAR PT10 GOCY 2))
(SETQ PT10N (INTERS PT PTI PT10 PT10I NIL))
(SETQ KC (DISTANCE PT10 PT10N))
(SETQ O10 (ASSOC 10 DS))
(SETQ N10 (CONS 10 PT10N))
(SETQ DS (SUBST N10 O10 DS))
(SETQ PT11N (POLAR PT11 (ANGLE PT10 PT10N) KC))
(SETQ O11 (ASSOC 11 DS))
(SETQ N11 (CONS 11 PT11N))
(SETQ DS (SUBST N11 O11 DS))
(ENTMOD DS)
)
)
(SETQ DEM (+ DEM 1))
)
)
(COMMAND "UCS" "P")
(SETVAR "CMDECHO" CMD)
(SETVAR "OSMODE" OSM)
;;;(setq *error* OLDERR)
(PRINC)
)

Thanks bác nhé. Hehe. Em cũng bị như vậy mà không biết làm sao. May mà gặp đc bài của bác. Đội ơn bác  :D   :D  :D


  • 0