Đến nội dung


Hình ảnh
- - - - -

[Xin giúp chỉnh sửa] lisp dimension giùm em


  • Please log in to reply
13 replies to this topic

#1 thuilathui

thuilathui

    biết pan

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

Đã gửi 15 June 2011 - 08:17 AM

Các bro nào giúp em vụ này cái.
Em dùng lisp sau: link down về (My link)

Em sử dụng công cụ dimension, mỗi lần nhập tỉ lệ thì các thông số của dimension cũng thay đổi theo. Nói chung rất ok, chỉ có điều công ty em dùng dấu mũi tên là closed filled mà trong lisp lại mặc định là oblique, em lại ko biết sửa trong lisp như thế nào cho đúng, bro nào giỏi giúp em sửa lại chỗ đó nha. Em cám ơn nhìu ...!!! Đây là đoạn lisp cần sửa:

(defun c:TL()
(setvar "REGENMODE" 0)
(setq SCALE (getreal "Input current scale : "))
(setvar "DIMCLRE" 2) ;Color
(setvar "DIMCLRD" 2) ;Color
(setvar "DIMCLRT" 2) ;Color
(setvar "DIMZIN" 8) ;Trailing
(command "STYLE" "3" "VNI-Times" (* 3 SCALE) "0.9" "0" "N" "N")
(command "STYLE" "5" "VNI-Times" (* 5 SCALE) "1.0" "0" "N" "N")
(command "STYLE" "2" "vn_vni" (* 2 SCALE) "0.65" "0" "N" "N" "N")
(command "STYLE" "22" "vn_bk1" (* 2 SCALE) "0.70" "0" "N" "N" "N")
(setvar "DIMEXE" (* 0.6 SCALE)) ;Extension above line
(setvar "DIMEXO" 0) ;Feature offset
(setvar "DIMASZ" 0.18) ;Arrow size
(setvar "DIMTSZ" (* 0.95 SCALE)) ;Tick size
(setvar "DIMDEC" 1) ;
(setvar "DIMDLE" 0) ;Closed blanK
(setvar "DIMDLE" 0) ;Tick extension
(setvar "DIMTXT" (* 2 SCALE)) ;Text height
(setvar "DIMTAD" 1) ;Verical (defauft)
(setvar "DIMTIH" 0) ;Horizontal
(setvar "DIMTOH" 0) ;Horizontal
(setvar "DIMTIX" 1) ;Force text inside
(setvar "DIMSOXD" 0) ;Force text inside
(setvar "DIMFIT" 5) ;No leader
(setvar "DIMGAP" (* 0.45 SCALE))
(setvar "DIMTXSTY" "2")
(setvar "REGENMODE" 1)
)

Có thể gởi mail về địa chỉ cho em luôn được ko? Mail em đây: trandinhthuan@namtienco.com

Chúc các bro sức khỏe và thành công!!!!
  • 0

#2 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5451 Bài viết
Điểm đánh giá: 2625 (tuyệt vời)

Đã gửi 15 June 2011 - 10:25 AM

Các bro nào giúp em vụ này cái.
Em sử dụng công cụ dimension, mỗi lần nhập tỉ lệ thì các thông số của dimension cũng thay đổi theo. Nói chung rất ok, chỉ có điều công ty em dùng dấu mũi tên là closed filled mà trong lisp lại mặc định là oblique, em lại ko biết sửa trong lisp như thế nào cho đúng, bro nào giỏi giúp em sửa lại chỗ đó nha. Em cám ơn nhìu ...!!!

Bạn thêm dòng code này vào thì nó ra mũi tên cho bạn:
(setvar "DIMBLK" ".")
  • 1

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#3 thuilathui

thuilathui

    biết pan

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

Đã gửi 15 June 2011 - 02:05 PM

Bạn thêm dòng code này vào thì nó ra mũi tên cho bạn:
(setvar "DIMBLK" ".")

Mình thêm như thế này có đúng ko? khi mình load thì vẫn ko ra mũi tên kiểu closed filled. Nó vẫn ra mũi tên oblique ko à. Help me !!! :cry:
(defun c:TL()
(setvar "REGENMODE" 0)
(setq SCALE (getreal "Input current scale : "))
(setvar "DIMCLRE" 2) ;Color
(setvar "DIMCLRD" 2) ;Color
(setvar "DIMCLRT" 2) ;Color
(setvar "DIMZIN" 8) ;Trailing
(command "STYLE" "3" "VNI-Times" (* 3 SCALE) "0.9" "0" "N" "N")
(command "STYLE" "5" "VNI-Times" (* 5 SCALE) "1.0" "0" "N" "N")
(command "STYLE" "2" "vn_vni" (* 2 SCALE) "0.65" "0" "N" "N" "N")
(command "STYLE" "22" "vn_bk1" (* 2 SCALE) "0.70" "0" "N" "N" "N")
(setvar "DIMEXE" (* 0.6 SCALE)) ;Extension above line
(setvar "DIMEXO" 0) ;Feature offset
(setvar "DIMASZ" 0.18) ;Arrow size
(setvar "DIMTSZ" (* 0.95 SCALE)) ;Tick size
(setvar "DIMDEC" 1) ;
(setvar "DIMDLE" 0) ;Closed blanK
(setvar "DIMDLE" 0) ;Tick extension
(setvar "DIMTXT" (* 2 SCALE)) ;Text height
(setvar "DIMTAD" 1) ;Verical (defauft)
(setvar "DIMTIH" 0) ;Horizontal
(setvar "DIMTOH" 0) ;Horizontal
(setvar "DIMTIX" 1) ;Force text inside
(setvar "DIMSOXD" 0) ;Force text inside
(setvar "DIMFIT" 5) ;No leader
(setvar "DIMBLK" ".")
(setvar "DIMGAP" (* 0.45 SCALE))
(setvar "DIMTXSTY" "2")
(setvar "REGENMODE" 1)
)
  • 0

#4 vbtxd06

vbtxd06

    biết vẽ ellipse

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

Đã gửi 15 June 2011 - 03:41 PM

Bạn này chỉnh chỗ này lại xem!
(setvar "DIMTSZ" (* 0.95 SCALE)) ;Tick size
thành (setvar "DIMTSZ" 0)
  • 1

#5 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5451 Bài viết
Điểm đánh giá: 2625 (tuyệt vời)

Đã gửi 15 June 2011 - 03:43 PM

Mình thêm như thế này có đúng ko? khi mình load thì vẫn ko ra mũi tên kiểu closed filled. Nó vẫn ra mũi tên oblique ko à. Help me !!! :cry:
...

Để DIMBLK có hiệu lực thì bạn cần chuyển cả DIMTSZ về giá trị 0 nữa. Vì khi DIMTSZ>0 (như bạn đặt) có nghĩa là nó chuyển về OBLIQUE.
Trong trường hợp này bạn cần đặt size cho mũi tên nữa.
Vì DIM có quá nhiều loại, ngay trong file của bạn cũng lắm DIM, nên tôi không thể tìm hiểu để chỉ hết cho bạn. Bạn thông cảm nhé!
  • 1

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#6 vbtxd06

vbtxd06

    biết vẽ ellipse

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

Đã gửi 15 June 2011 - 03:53 PM

Để dấu mũi tên Closed filled lớn theo tỉ lệ thì bạn này có thể chỉnh thêm như sau:
Mình có chỉnh lisp của bạn này 1 tí. Xin lỗi nha:
(defun c:TL()
(setvar "REGENMODE" 0)
(setq SCALE (getstring "\nInput current scale : "))
(setq scal (atof (substr SCALE 1 3)))
(setvar "DIMBLK" "")
(setvar "DIMCLRE" 2) ;Color
(setvar "DIMCLRD" 2) ;Color
(setvar "DIMCLRT" 2) ;Color
(setvar "DIMZIN" 8) ;Trailing
(command "STYLE" "3" "VNI-Times" (* 3 scal) "0.9" "0" "N" "N")
(command "STYLE" "5" "VNI-Times" (* 5 scal) "1.0" "0" "N" "N")
(command "STYLE" "2" "vn_vni" (* 2 scal) "0.65" "0" "N" "N" "N")
(command "STYLE" "22" "vn_bk1" (* 2 scal) "0.70" "0" "N" "N" "N")
(setvar "DIMEXE" (* 0.6 scal)) ;Extension above line
(setvar "DIMEXO" 0) ;Feature offset
(setvar "DIMASZ" 0.18) ;Arrow size
(setvar "DIMTSZ" 0) ;Tick size
(setvar "DIMCEN" (* 0.95 scal));Center mark size( them vao)
(setvar "DIMDEC" 1) ;
(setvar "DIMDLE" 0) ;Closed blanK
(setvar "DIMDLE" 0) ;Tick extension
(setvar "DIMTXT" (* 2 scal)) ;Text height
(setvar "DIMTAD" 1) ;Verical (defauft)
(setvar "DIMTIH" 0) ;Horizontal
(setvar "DIMTOH" 0) ;Horizontal
(setvar "DIMTIX" 1) ;Force text inside
(setvar "DIMSOXD" 0) ;Force text inside
(setvar "DIMFIT" 5) ;No leader
(setvar "DIMGAP" (* 0.45 scal))
(setvar "DIMTXSTY" "2")
(setq dsn (strcat "TL" (substr SCALE 1 3)))
(setq ao (vlax-get-acad-object))
(setq ad (vla-get-ActiveDocument ao))
(setq obj (vla-add(vla-get-dimstyles ad) dsn))
(vla-copyfrom Obj ad)
(vla-put-activedimstyle ad Obj)
(setvar "REGENMODE" 1)
(Princ)
)

Thanhks với!
  • 1

#7 thuilathui

thuilathui

    biết pan

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

Đã gửi 15 June 2011 - 03:57 PM

Để DIMBLK có hiệu lực thì bạn cần chuyển cả DIMTSZ về giá trị 0 nữa. Vì khi DIMTSZ>0 (như bạn đặt) có nghĩa là nó chuyển về OBLIQUE.
Trong trường hợp này bạn cần đặt size cho mũi tên nữa.
Vì DIM có quá nhiều loại, ngay trong file của bạn cũng lắm DIM, nên tôi không thể tìm hiểu để chỉ hết cho bạn. Bạn thông cảm nhé!



Mình cám ơn bạn nhiều lắm. Nhưng thực sự mình gà lisp lắm. bạn giúp mình set luôn size cho mũi tên luôn được ko? Một lần nữa rất cám ơn bạn đã chỉ cho mình !!!
  • 0

#8 thuilathui

thuilathui

    biết pan

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

Đã gửi 15 June 2011 - 04:11 PM

Để dấu mũi tên Closed filled lớn theo tỉ lệ thì bạn này có thể chỉnh thêm như sau:
Mình có chỉnh lisp của bạn này 1 tí. Xin lỗi nha:

(defun c:TL()
(setvar "REGENMODE" 0)
(setq SCALE (getstring "\nInput current scale : "))
(setq scal (atof (substr SCALE 1 3)))
(setvar "DIMBLK" "")
(setvar "DIMCLRE" 2) ;Color
(setvar "DIMCLRD" 2) ;Color
(setvar "DIMCLRT" 2) ;Color
(setvar "DIMZIN" 8) ;Trailing
(command "STYLE" "3" "VNI-Times" (* 3 scal) "0.9" "0" "N" "N")
(command "STYLE" "5" "VNI-Times" (* 5 scal) "1.0" "0" "N" "N")
(command "STYLE" "2" "vn_vni" (* 2 scal) "0.65" "0" "N" "N" "N")
(command "STYLE" "22" "vn_bk1" (* 2 scal) "0.70" "0" "N" "N" "N")
(setvar "DIMEXE" (* 0.6 scal)) ;Extension above line
(setvar "DIMEXO" 0) ;Feature offset
(setvar "DIMASZ" 0.18) ;Arrow size
(setvar "DIMTSZ" 0) ;Tick size
(setvar "DIMCEN" (* 0.95 scal));Center mark size( them vao)
(setvar "DIMDEC" 1) ;
(setvar "DIMDLE" 0) ;Closed blanK
(setvar "DIMDLE" 0) ;Tick extension
(setvar "DIMTXT" (* 2 scal)) ;Text height
(setvar "DIMTAD" 1) ;Verical (defauft)
(setvar "DIMTIH" 0) ;Horizontal
(setvar "DIMTOH" 0) ;Horizontal
(setvar "DIMTIX" 1) ;Force text inside
(setvar "DIMSOXD" 0) ;Force text inside
(setvar "DIMFIT" 5) ;No leader
(setvar "DIMGAP" (* 0.45 scal))
(setvar "DIMTXSTY" "2")
(setq dsn (strcat "TL" (substr SCALE 1 3)))
(setq ao (vlax-get-acad-object))
(setq ad (vla-get-ActiveDocument ao))
(setq obj (vla-add(vla-get-dimstyles ad) dsn))
(vla-copyfrom Obj ad)
(vla-put-activedimstyle ad Obj)
(setvar "REGENMODE" 1)
(Princ)
)

Thanhks với!


Vẫn ko được bạn ơi, size mũi tên vẫn ko nhúc nhít >"<
  • 0

#9 vbtxd06

vbtxd06

    biết vẽ ellipse

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

Đã gửi 15 June 2011 - 04:21 PM

Mình thêm dòng này:
(setvar "DIMCEN" (* 0.95 scal));Center mark size
tức là mình đã tăng mũi tên theo tỉ lệ rồi đó.Lúc đầu bạn này viết là:
(setvar "DIMTSZ" (* 0.95 SCALE))
Nghĩa là bạn này tăng TICK SIZE theo tỉ lệ rồi đó.Nên mình mới bắt chước tăng mũi tên lên kích cỡ như vậy!
Mình toàn sử dụng Scale factor Overall nên không càn thay đổi chỗ Center Mark size cả.Chúc bạn thành công.
Thanks nhấn vào dấu (+) bên phải là được!

Bạn này sửa chỗ này nữa chắc là OK thôi:
(setvar "DIMASZ" (* 0.95 scal)) ;Arrow size
  • 1

#10 thuilathui

thuilathui

    biết pan

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

Đã gửi 16 June 2011 - 03:40 PM

Mình thêm dòng này:
(setvar "DIMCEN" (* 0.95 scal));Center mark size
tức là mình đã tăng mũi tên theo tỉ lệ rồi đó.Lúc đầu bạn này viết là:
(setvar "DIMTSZ" (* 0.95 SCALE))
Nghĩa là bạn này tăng TICK SIZE theo tỉ lệ rồi đó.Nên mình mới bắt chước tăng mũi tên lên kích cỡ như vậy!
Mình toàn sử dụng Scale factor Overall nên không càn thay đổi chỗ Center Mark size cả.Chúc bạn thành công.
Thanks nhấn vào dấu (+) bên phải là được!

Bạn này sửa chỗ này nữa chắc là OK thôi:
(setvar "DIMASZ" (* 0.95 scal)) ;Arrow size


Mình đã làm được rồi, cám ơn bạn nhiều, mình thanks cho bạn rùi đấy, chúc vui ... ^^!
Đóng của topic này nhé !!! >"< :rolleyes:
  • 0

#11 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 - 11:27 AM

em có 2 lisp lisp khá hay muốn kết hợp lại.em muốn dùng lệnh up của lisp thứ 2 nối vào lisp thứ nhất cho gọn. vì lisp thứ 2 em chỉ thích lệnh này thôi. Bác nào biết sửa giùm với
  • 0

Giaminh19@gmail.com


#12 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 - 11:28 AM

lisp thu nhat
;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.c...ch-thuoc/page-2
(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


#13 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 - 11:29 AM

lisp thu 2
(prompt "\n\nL O A D I N G D I M _ U T I . L S P")
(princ "\n N1 : canh le vi trí dimension ngang")
(princ "\n N2 : canh le diem dong' các dimension ngang")
(princ "\n D1 : canh le vi tri dimension dung'")
(princ "\n D2 : canh le diem dong' dimension dung'")
(princ "\n UP : cap nhat các dimension theo style hien tai")

(defun DXF (code elist)
(cdr (assoc code elist))
)

(defun CDXF (tt elist)
(car (nth tt elist))
)

(defun xdtt (code elist)
(setq i 0)
(while (/= code (cdxf i elist))
(setq i (+ 1 i))
);while
)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun DIM_u_ssget ( / ssl nsset temp ed )
(setq sset (ssget))
(setq ssl (sslength sset)
nsset (ssadd)
)
(princ "\nChê 1 chót nghen c­ng ... ")
(while (> ssl 0)
(progn
(setq temp (ssname sset (setq ssl (1- ssl))))
(setq ed (entget temp))
(if (= (DXF 0 ed) "DIMENSION") (ssadd temp nsset))
)
)
(setq ssl (sslength nsset)
sset nsset
)
(print ssl)
(princ "dimension ®­îc t×m thÊy !")
(princ)
);defun u_ssget

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(DEFUN C:D1 ()
(SETQ CMD (GETVAR "CMDECHO"))
(SETVAR "CMDECHO" 0)
;(COMMAND "UCS" "W")
(SETVAR "CMDECHO" 1)
(PROMPT "\chon các dimension can dieu chinh theo phuong dung ... ")
(SETQ SETSS (SSGET))
(PROMPT "\chon vi trí ghi kich thuong moi... ")
(SETQ P1 (GETPOINT))
(SETQ X3 (CAR P1))
(SETQ QUANT (SSLENGTH SETSS))
(SETQ INDEX 0)
(WHILE (< INDEX QUANT)
(IF (AND(= "DIMENSION" (CDR (ASSOC 0 (SETQ A (ENTGET (SSNAME SETSS INDEX))))))
)
(PROGN
(SETQ L10 (ASSOC 10 A))
(SETQ M10 (CDR L10))
(SETQ L11 (ASSOC 11 A))
(SETQ M11 (CDR L11))
(SETQ P10 (LIST 10 X3 (CADR M10) (CADDR M10)))
(SETQ A (SUBST P10 L10 A))
(ENTMOD A)
)
)
(SETQ INDEX (+ INDEX 1))
)
(SETVAR "CMDECHO" 0)
(COMMAND "UCS" "P")
(SETVAR "CMDECHO" CMD)
)
;----------------------------------------------------------------------------------------------

(DEFUN C:D2 ()
(SETQ CMD (GETVAR "CMDECHO"))
(SETVAR "CMDECHO" 0)
; (COMMAND "UCS" "W")
(SETVAR "CMDECHO" 1)
(PROMPT "\chon các dimension can dieu chinh duong` giong' theo phuong dung' ... ")
(SETQ SETSS (SSGET))
(PROMPT "\chon vi tri duong giong moi' ... ")
(SETQ P1 (GETPOINT))
(SETQ X3 (CAR P1))
(SETQ QUANT (SSLENGTH SETSS))
(SETQ INDEX 0)
(WHILE (< INDEX QUANT)
(IF (AND(= "DIMENSION" (CDR (ASSOC 0 (SETQ A (ENTGET (SSNAME SETSS INDEX))))))
)
(PROGN
(SETQ L13 (ASSOC 13 A))
(SETQ M13 (CDR L13))
(SETQ L14 (ASSOC 14 A))
(SETQ M14 (CDR L14))
(SETQ P13 (LIST 13 X3 (CADR M13) (CADDR M13)))
(SETQ P14 (LIST 14 X3 (CADR M14) (CADDR M14)))
(SETQ A (SUBST P13 L13 A))
(SETQ A (SUBST P14 L14 A))
(ENTMOD A)
)
)
(SETQ INDEX (+ INDEX 1))
)
(SETVAR "CMDECHO" 0)
(COMMAND "UCS" "P")
(SETVAR "CMDECHO" CMD)
(PRINC)
)

;;--------------------------------------------------------------------------------------------------------------

(DEFUN C:N1 ()
(SETQ CMD (GETVAR "CMDECHO"))
(SETVAR "CMDECHO" 0)
; (COMMAND "UCS" "W")
(SETVAR "CMDECHO" 1)
(PROMPT "\chon các dimension can dieu chinh theo phuong ngang ... ")
(SETQ SETSS (SSGET))
(PROMPT "\chon vi trí ghi kich thuong moi ... ")
(setq P1 (GETPOINT))
(setq Y3 (CADR P1))
(setq QUANT (SSLENGTH SETSS))
(setq INDEX 0)
(WHILE (< INDEX QUANT)
(IF (AND(= "DIMENSION" (CDR (ASSOC 0 (SETQ A (ENTGET (SSNAME SETSS INDEX))))))
)
(PROGN
(setq L10 (ASSOC 10 A))
(setq M10 (CDR L10))
(setq P10 (LIST 10 (CAR M10) Y3 (CADDR M10)))
(setq A (SUBST P10 L10 A))
(ENTMOD A)
)
)
(SETQ INDEX (+ INDEX 1))
)
(SETVAR "CMDECHO" 0)
(COMMAND "UCS" "P")
(SETVAR "CMDECHO" CMD)
)

;;---------------------------------------------------------------------------------------------------------------------

(DEFUN C:N2 ()
(SETQ CMD (GETVAR "CMDECHO"))
(SETVAR "CMDECHO" 0)
; (COMMAND "UCS" "W")
(SETVAR "CMDECHO" 1)
(PROMPT "\chon các dimension can dieu chinh duong` giong' theo phuong ngang ... ")
(SETQ SETSS (SSGET))
(PROMPT "\chon vi tri duong giong moi' ... ")
(SETQ P1 (GETPOINT))
(SETQ Y3 (CADR P1))
(SETQ QUANT (SSLENGTH SETSS))
(SETQ INDEX 0)
(WHILE (< INDEX QUANT)
(IF (AND(= "DIMENSION" (CDR (ASSOC 0 (SETQ A (ENTGET (SSNAME SETSS INDEX))))))
)
(PROGN
(SETQ L13 (ASSOC 13 A))
(SETQ M13 (CDR L13))
(SETQ L14 (ASSOC 14 A))
(SETQ M14 (CDR L14))
(SETQ P13 (LIST 13 (CAR M13) Y3 (CADDR M13)))
(SETQ T13 (CDR P13))
(SETQ P14 (LIST 14 (CAR M14) Y3 (CADDR M14)))
(SETQ A (SUBST P13 L13 A))
(SETQ A (SUBST P14 L14 A))
(ENTMOD A)
)
)
(SETQ INDEX (+ INDEX 1))
)
(SETVAR "CMDECHO" 0)
; (COMMAND "UCS" "P")
(SETVAR "CMDECHO" CMD)
)

;==========================================
(defun c:UP()
(DIM_u_ssget)
(command "DIM1" "UP" "p" "")
(setq ssl (sslength sset))
(while (> ssl 0)
(progn
(setq temp (ssname sset (setq ssl (1- ssl))))
(setq ed (entget temp))

(setq old (cons 8 (DXF 8 ed))
new (cons 8 "2")
ed (subst new old ed)
)
(entmod ed)
)
)
(princ)
)
  • 0

Giaminh19@gmail.com


#14 cdhn

cdhn

    biết zoom

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

Đã gửi 29 October 2014 - 12:09 AM

LISP trên rất hay, nếu mình di chuyển đối tượng mà dim không bị thay đổ thì sửa ntn mấy pro ơi.

(dim vẫn giữ nguyên tỷ lệ của dim gốc, không bị thay đổi khi nhập tỷ lệ khác và di chuyển đối tượng


  • 0