Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
cauduong1k49

cắt các đường ghi kích thước

Các bài được khuyến nghị

Các bác cho e hỏi làm thế nào để cắt ngắn bớt các đường ghi kích thước cho đều nhau.E nghe nói là dùng autolip.dung appload gi day.Có thể hướng dẫn e kỹ hơn không,ngoài cách đó có cách nào để cắt các đường kích thước không?????

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Bạn đã vẽ CAD lâu chưa :undecided:

Cách làm ngắn gọn là như thế này nhé.Đầu tiên bạn down file lisp này về để ở 1 chỗ nào đó gọn gàng và dễ thấy

Sau đó dùng lệnh appload ( thông thường lệnh tắt là ap),chọn đến file bạn vừa down về -> nhấn LOAD

OK.Vậy là bạn có thể sử dụng 2 lệnh mới do đoạn LISP trên quy định :

1 là CD dùng để cắt thằng hàng phần kéo dài dim

2 là GD dùng để sắp xếp điểm đặt dim

2 lệnh này quy định trong nội dung của file lisp ở dòng defun c:cd

defun c:gd,nếu thấy k thích dùng là cd,gd thì bạn có thể thay chữ cd,gd thành a bê cê đê e j đó,miễn là k phải tiếng việt có dấu và không nên trùng với các lệnh khác.

Nếu muốn tất cả các bản vẽ đều có thể sử dụng mà cần load lại,thì sau khi dùng lệnh ap,bạn kick vào nút Contens ở bên dưới chữ Starup Suite và hình cái cặp,rồi chọn Add,và lại chọn đến file này

(defun ctd_err (s)
   (if(/= s "Function cancelled")
      (princ (strcat "\nError: " s)) )(setq *error* old_err)(princ)
)
(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)
)
;;;;;;;; Cat duong giong cac loai Dim (Align - Liner - Hor - Ver)
(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
  )
)
(setvar "Osmode" old_osm)(setvar "Angdir" old_ang)
(setq *error* old_err)
(princ)
)

 

p/s :nếu bạn là dân vẽ kỹ thuật, bạn nên tìm hiểu sơ qua về lisp,chí ít là cách sử dụng :leluoi: CHúc bạn thành công

  • Vote tăng 4

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

À,ngoài cách mình vừa nói thì mình biết có 2 cách các bạn SV khi edit thương làm là :

Kẻ xline lấy mốc

1 : explode nó ra thành đối tượng riêng biệt,rồi trim cắt các đường chân line như bình thường ( theo mnình thì : dim k còn làdim nữa -> tuyệt đối cấm)

2 : kick chuột vào chân dim và kéo nó dài ra ngắn đi tùy ý (theo mình thì quá thủ công -> cũng tuyệt đối cấm )

:undecided: :leluoi:

  • Vote tăng 2

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

spam tý

bác có cái chử ký pro quá :undecided:)

À,ngoài cách mình vừa nói thì mình biết có 2 cách các bạn SV khi edit thương làm là :

Kẻ xline lấy mốc

1 : explode nó ra thành đối tượng riêng biệt,rồi trim cắt các đường chân line như bình thường ( theo mnình thì : dim k còn làdim nữa -> tuyệt đối cấm)

2 : kick chuột vào chân dim và kéo nó dài ra ngắn đi tùy ý (theo mình thì quá thủ công -> cũng tuyệt đối cấm )

:leluoi: :cheers:

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Bạn đã vẽ CAD lâu chưa :undecided:

Cách làm ngắn gọn là như thế này nhé.Đầu tiên bạn down file lisp này về để ở 1 chỗ nào đó gọn gàng và dễ thấy

Sau đó dùng lệnh appload ( thông thường lệnh tắt là ap),chọn đến file bạn vừa down về -> nhấn LOAD

OK.Vậy là bạn có thể sử dụng 2 lệnh mới do đoạn LISP trên quy định :

1 là CD dùng để cắt thằng hàng phần kéo dài dim

2 là GD dùng để sắp xếp điểm đặt dim

2 lệnh này quy định trong nội dung của file lisp ở dòng defun c:cd

defun c:gd,nếu thấy k thích dùng là cd,gd thì bạn có thể thay chữ cd,gd thành a bê cê đê e j đó,miễn là k phải tiếng việt có dấu và không nên trùng với các lệnh khác.

Nếu muốn tất cả các bản vẽ đều có thể sử dụng mà cần load lại,thì sau khi dùng lệnh ap,bạn kick vào nút Contens ở bên dưới chữ Starup Suite và hình cái cặp,rồi chọn Add,và lại chọn đến file này

(defun ctd_err (s)
   (if(/= s "Function cancelled")
      (princ (strcat "\nError: " s)) )(setq *error* old_err)(princ)
)
(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)
)
;;;;;;;; Cat duong giong cac loai Dim (Align - Liner - Hor - Ver)
(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
  )
)
(setvar "Osmode" old_osm)(setvar "Angdir" old_ang)
(setq *error* old_err)
(princ)
)

 

p/s :nếu bạn là dân vẽ kỹ thuật, bạn nên tìm hiểu sơ qua về lisp,chí ít là cách sử dụng :leluoi: CHúc bạn thành công

 

sau khi load lisp rồi.máy thông báo:

Chon Dim <Aligned-Liner-Hor-Ver> dinh cat.

select object thì mình chọn đường kích thước định cắt rồi enter

máy thông bao:điểm mốc cắt đường gióng mình nhập 200 sa k thấy thay đổi gì nhỉ

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Chọn điểm mốc, tức là kich chuột vào màn hình (getpoint), chứ cad nó không nhận 1 con số bạn ạ.200 của bạn có nghĩa gì ở trong thao tác cắt dim ?

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Chọn điểm mốc, tức là kich chuột vào màn hình (getpoint), chứ cad nó không nhận 1 con số bạn ạ.200 của bạn có nghĩa gì ở trong thao tác cắt dim ?

em kích chuột cũng ko thấy lệnh đc thực hiện :(

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

À,ngoài cách mình vừa nói thì mình biết có 2 cách các bạn SV khi edit thương làm là :

Kẻ xline lấy mốc

1 : explode nó ra thành đối tượng riêng biệt,rồi trim cắt các đường chân line như bình thường ( theo mnình thì : dim k còn làdim nữa -> tuyệt đối cấm)

2 : kick chuột vào chân dim và kéo nó dài ra ngắn đi tùy ý (theo mình thì quá thủ công -> cũng tuyệt đối cấm )

:undecided: :leluoi:

 

 

e laod cái lisp của bác về dùng nhưng ko dùng được,

những lisp mà lâu nay em dùng thì vẫn upload và dùng bình thường,bác xem lai xem có bị sai chỗ nào ko?

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Chọn điểm mốc, tức là kich chuột vào màn hình (getpoint), chứ cad nó không nhận 1 con số bạn ạ.200 của bạn có nghĩa gì ở trong thao tác cắt dim ?

m cũng thử kích chuột rùi nhg cũng k thấy lệnh thực hiện nên mình thử nhập số cũng k thấy j?xin bạn chỉ cụ thể cho m với

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

mình dùng thử thấy rất tốt

 

1. load lisp vô (chỉ cần load 1 lần)

2. đánh lệnh cd

3. Bạn chọn tất cả các dim muốn cắt đường gióng

4. Click 1 điểm bất kì (nhưng đừng chọn lên đường kích thước nha)

Xong!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Có lẽ vấn đề download hoặc chép code có vấn đề ^^. Các bạn thử reply bài của mình rồi chép hết nội dung giữa 2 phần code để cho vào lisp xem nào. Nếu vẫn không đc thì để két xem lại, vì ở máy này hok có CAD, soi code chắc hâm người lun ^^

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

không thực hiện đc thật bác ahm : code lisp em download về '

 

;; free lisp from cadviet.com

;;; this lisp was downloaded from http://www.cadviet.com/forum/index.php?showtopic=30603

(defun ctd_err (s)

(if(/= s "Function cancelled")

(princ (strcat "\nError: " s)) )(setq *error* old_err)(princ)

)

(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)

)

;;;;;;;; Cat duong giong cac loai Dim (Align - Liner - Hor - Ver)

(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

)

)

(setvar "Osmode" old_osm)(setvar "Angdir" old_ang)

(setq *error* old_err)

(princ)

)

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Giúp với mấy anh ơi! Không duoc dang bí luôn nè!

GÌ mà run hết lên thế bác, cái gì thì cũng phải từ từ chớ; Bác dùng tạm cái Lisp em kiếm đc trên Cadviet nhé :(lệnh CD);

 

(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)
(print)
(SETQ CMD (GETVAR "CMDECHO"))
(SETQ OSM (GETVAR "OSMODE"))
(SETQ OLDERR *error*
*error* myerror)
(PRINC "Lam on chon vao duong kich thuoc !")
(SETQ SS (SSGET))
(SETVAR "CMDECHO" 0)
(SETQ PT (GETPOINT "Chon vi tri cut:"))
(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 N70 (CDR (ASSOC 70 DS)))
(IF (OR (= 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)
) 

  • Vote tăng 2

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Giúp với mấy anh ơi! Không duoc dang bí luôn nè!

Chắc bac ketxu lại quên cái vụ này rồi, list của bác ấy thiếu phần bổ trợ các bác ạh. Theo em các bác dùng tạm hai list CD, BD đi khi nào rảnh bác ketxu up phần còn thiếu của list nên(hình như là hàm con DTR thì phải). Em up lại cho các bác ở đây vậy, cũng hông rõ là trước kia lấy từ nguồn nào nữa, trong máy có thì up thôi, xin phép trước ạ

;;;------------------------CAT CHAN DIM---------------
(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 "Hay chon duong kich thuoc can thay doi!")
(SETQ SS (SSGET))
(SETVAR "CMDECHO" 0)
(SETQ PT (GETPOINT "Point to trim or extend:"))
(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 N70 (CDR (ASSOC 70 DS)))
 (IF (OR (= 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)
)
;;;------------------------CHUYEN DUONG DIM VE VI TRI MOI---------------
(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 "Please select dimension object!")
(SETQ SS (SSGET))
(SETVAR "CMDECHO" 0)
(SETQ PT (GETPOINT "Point to trim or extend:"))
(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 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)
)
;-----------------------------------------------------------------------------------------------------------

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Chào bạn!

Bạn có thể làm theo cách của các bác ghi ở trên là dùng list cut dim.

Hoặc bạn có thể cài đặt trong dim với khoàng cách là 500

Nếu cần bạn có thể liên hệ trực tiếp với mình,mình sẽ hướng dẫn.

Hiện tại mình có 1 cuốn giáo trình cad khá cơ bản và dễ học và có thể liên hệ:01652601902

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay
Đăng nhập để thực hiện theo  

×