Đến nội dung


Hình ảnh

Làm sao để chỉnh bé kích thước cái mũi tên này !


  • Please log in to reply
34 replies to this topic

#21 girl

girl

    biết vẽ spline

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

Đã gửi 03 November 2011 - 09:00 AM

Lệnh SW chọn được mũi tên như anh nói, nhưng lệnh ic thì unknowcommand ? a kiểm tra lại giúp em nhé !
  • 0

#22 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 03 November 2011 - 10:02 AM

Quick Code để bạn tham khảo.
1. Kiểu scale :

(defun c:test(/ ss tl i en)
(setq ss (ssget "X" (list (cons 0 "POLYLINE")(cons 8 "ENTTNTHIETKE")))
tl (getreal "Ti le scale :")
i -1
)
(vl-load-com)
(while (setq en (ssname ss (setq i (1+ i))))
(vla-setwidth (vlax-ename->vla-object en) 0 0 (* 0.18 tl))
)
)
2. Kiểu cố định giá trị

(defun c:test(/ ss tl i en)
(setq ss (ssget "X" (list (cons 0 "POLYLINE")(cons 8 "ENTTNTHIETKE")))
tl (getreal "Kich thuoc mui ten :")
i -1
)
(vl-load-com)
(while (setq en (ssname ss (setq i (1+ i))))
(vla-setwidth (vlax-ename->vla-object en) 0 0 tl)
)
)

@Truongngocdat
Các bài viết của bạn đều không có dấu và không có tính chất xây dựng, đề nghị bạn tôn trọng người đọc và diễn đàn! Thân
  • 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


#23 lp_hai

lp_hai

    biết lệnh measure

  • Members
  • PipPipPipPipPipPip
  • 456 Bài viết
Điểm đánh giá: 202 (khá)

Đã gửi 03 November 2011 - 10:48 AM

Lệnh SW chọn được mũi tên như anh nói, nhưng lệnh ic thì unknowcommand ? a kiểm tra lại giúp em nhé !

BẠN LOAD CÁI LISP IC VỀ RỒI APLOAD NO MỚI CÓ CHỨ NÈ!
http://www.cadviet.c...ndpost&p=178451
  • 0
Hình đã gửi

#24 girl

girl

    biết vẽ spline

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

Đã gửi 03 November 2011 - 03:40 PM

Anh ơi, lệnh IC bị lỗiCommand: ic
32 found

"Girl.dwg": Can't find file in search path:
C:\Documents and Settings\Administrator\My Documents\ (current directory)
E:\Giang\2011\Duy tien\Dao LY\Xuat ho so\4.Trac ngang\
C:\Documents and Settings\Administrator\Application Data\Autodesk\AutoCAD
2007\R17.0\enu\support\
C:\Program Files\AutoCAD 2007\support\
C:\Program Files\AutoCAD 2007\fonts\
C:\Program Files\AutoCAD 2007\help\
C:\Program Files\AutoCAD 2007\Express\
C:\Program Files\AutoCAD 2007\support\color\
C:\Program Files\AutoCAD 2007\drv\
C:\Program Files\AutoCAD 2007\
*Invalid*
; error: Function cancelled

o
  • 0

#25 lp_hai

lp_hai

    biết lệnh measure

  • Members
  • PipPipPipPipPipPip
  • 456 Bài viết
Điểm đánh giá: 202 (khá)

Đã gửi 04 November 2011 - 09:36 AM

Đề nghị bạn đọc kỹ lại bài mình viết rồi làm nha! Do trong file của bạn ko có cái block Girl thì lấy gì mà insert.
Một là bạn copy cái block Girl mình tạo trong file cad đi kèm, 2 là bạn tạo mới rồi sử dụng
http://www.mediafire..._cau%5B2%5D.dwg
  • 0
Hình đã gửi

#26 girl

girl

    biết vẽ spline

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

Đã gửi 04 November 2011 - 02:39 PM

Quick Code để bạn tham khảo.
1. Kiểu scale :


(defun c:test(/ ss tl i en)
(setq ss (ssget "X" (list (cons 0 "POLYLINE")(cons 8 "ENTTNTHIETKE")))
tl (getreal "Ti le scale :")
i -1
)
(vl-load-com)
(while (setq en (ssname ss (setq i (1+ i))))
(vla-setwidth (vlax-ename->vla-object en) 0 0 (* 0.18 tl))
)
)
2. Kiểu cố định giá trị

(defun c:test(/ ss tl i en)
(setq ss (ssget "X" (list (cons 0 "POLYLINE")(cons 8 "ENTTNTHIETKE")))
tl (getreal "Kich thuoc mui ten :")
i -1
)
(vl-load-com)
(while (setq en (ssname ss (setq i (1+ i))))
(vla-setwidth (vlax-ename->vla-object en) 0 0 tl)
)
)

@Truongngocdat
Các bài viết của bạn đều không có dấu và không có tính chất xây dựng, đề nghị bạn tôn trọng người đọc và diễn đàn! Thân





Hi. Anh KETXU viết lisp dễ sử dụng và nhanh, nhưng mà cái mũi tên như yêu cầu của em là nó bé lại thì đúng rồi nhưng mà mất cân đối quá, tức là khi mình chỉnh bé lại thì đồng nghĩa với việc phải ngắn lại theo kiểu Scale đối tượng nhìn cho đẹp và đỡ tốn diện tích chứ ạ ? Anh chỉnh để mình điều chỉnh cái mũi tên đó ngắn lại theo cái tỷ lệ Scale mà mình nhập vào được không ạ ? Cảm ơn anh nhìu nhìu !
  • 0

#27 girl

girl

    biết vẽ spline

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

Đã gửi 04 November 2011 - 02:49 PM

Hi, mình cũng tập tành viết cái lisp mong là có ích cho bạn.
Nguyên lý hoạt động là bạn phải chọn những thằng mũi tên, rồi lisp sẽ thay thế các mũi tên này bằng một block. trong file mình gửi đây là block có tên Girl, hình dạng thì mình scale mũi tên nhỏ chút xíu, bạn có thể chỉnh sửa cái block này theo dúng ý bạn. bạn cũng có thể thay đổi tên block nhưng lúc này bạn phải thay đổi luôn tên trong lisp nhá!
đây là file cad có block Gilr là cái mũi tên màu đỏ nha:
http://www.mediafire..._cau%5B2%5D.dwg


(defun c:ic (/ dt sdt ent id ang p1 p2 os)
(setq dt (ssget)
sdt (sslength dt)
id 0
os (getvar "osmode"))
(command "undo" "be")
(setvar "osmode" 0)
(repeat sdt
(setq ent (ssname dt id)
id (1+ id)
p1 (vlax-curve-getPointAtParam ent 0)
p2 (vlax-curve-getPointAtParam ent 1)
ang (/(*(angle p1 p2)180)pi)
)
(command "insert" "Girl" p1 "1" "" ang)
(entdel ent)
)
(setvar "osmode" os)
(command "undo" "end")
)

Anh LP_HAI ạ, lisp của anh áp dụng với file đó thì chạy, nhưng khi dùng với file khác thì nó bị lệch vị trí của mũi tên đi.em gửi anh 1 file khác làm ví dụ để a tham khảo nhé, anh chạy thử với file này sẽ thấy lỗi ạ !
http://www.mediafire...6qz5rhw6euect8s
  • 0

#28 chaytheomay

chaytheomay

    biết vẽ line

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

Đã gửi 04 November 2011 - 03:32 PM

hic. Scale thì nói làm gì ạ ? vì nó có cả 1000 đối tượng. Ngồi scale đến bao h ạ ? hic !

bạn nên trách mình thì hơn.Trước khi làm thì phải định hướng trước.những chi tiết giống nhau thì nên sài 1 cái block thôi.1 tỉ cái cũng đc bạn sửa 1 cái thì 1 tỉ cái kia sẽ thay đổi theo.Nếu trong truong hợp này chỉ có 1 cách duy nhất là sc thôi, vì nó chỉ là đối tượng PL.Hoặc có thể tạo ra cái mũi tên mới sài nhé!
  • 0

#29 girl

girl

    biết vẽ spline

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

Đã gửi 04 November 2011 - 03:57 PM

bạn nên trách mình thì hơn.Trước khi làm thì phải định hướng trước.những chi tiết giống nhau thì nên sài 1 cái block thôi.1 tỉ cái cũng đc bạn sửa 1 cái thì 1 tỉ cái kia sẽ thay đổi theo.Nếu trong truong hợp này chỉ có 1 cách duy nhất là sc thôi, vì nó chỉ là đối tượng PL.Hoặc có thể tạo ra cái mũi tên mới sài nhé!


Hic, anh mắng oan em rồi. CÁi mũi tên đó là do chương trình phần mềm chạy ra. không phải do e tự vẽ ra được. hic
  • 0

#30 lp_hai

lp_hai

    biết lệnh measure

  • Members
  • PipPipPipPipPipPip
  • 456 Bài viết
Điểm đánh giá: 202 (khá)

Đã gửi 04 November 2011 - 05:07 PM

Anh LP_HAI ạ, lisp của anh áp dụng với file đó thì chạy, nhưng khi dùng với file khác thì nó bị lệch vị trí của mũi tên đi.em gửi anh 1 file khác làm ví dụ để a tham khảo nhé, anh chạy thử với file này sẽ thấy lỗi ạ !
http://www.mediafire...6qz5rhw6euect8s

Bạn đổi UCS lai trước khi dùng lệnh, UCS -> W
  • 0
Hình đã gửi

#31 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 04 November 2011 - 06:58 PM





Hi. Anh KETXU viết lisp dễ sử dụng và nhanh, nhưng mà cái mũi tên như yêu cầu của em là nó bé lại thì đúng rồi nhưng mà mất cân đối quá, tức là khi mình chỉnh bé lại thì đồng nghĩa với việc phải ngắn lại theo kiểu Scale đối tượng nhìn cho đẹp và đỡ tốn diện tích chứ ạ ? Anh chỉnh để mình điều chỉnh cái mũi tên đó ngắn lại theo cái tỷ lệ Scale mà mình nhập vào được không ạ ? Cảm ơn anh nhìu nhìu !

Bạn biết để scale ngoài tỉ lệ scale còn cần có điểm gốc base Point, vậy theo bạn điểm đó sẽ là điểm nào trong pline (hiển thị mũi tên) đó ?
  • 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


#32 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 04 November 2011 - 09:02 PM

Bạn biết để scale ngoài tỉ lệ scale còn cần có điểm gốc base Point, vậy theo bạn điểm đó sẽ là điểm nào trong pline (hiển thị mũi tên) đó ?

Theo Tue_NV thì ý bạn ấy muốn cân đối lại mũi tên. Không nhất thiết phải scale rồi chỉnh lại. Và cái điểm mà Ketxu nói đó nằm trên đoạn thẳng nối từ điểm đầu đến điểm cuối của mũi tên

Có 2 thông số đặt ra để bạn Girl nhập vào để chạy chương trình:
- Một là Độ lớn của mũi tên : Trong hình vẽ của bạn là 0.18
- Hai là : Khoảng cách từ đỉnh của mũi tên tới chân mũi tên để bạn girl có thể cân đối lại mũi tên
Thử nhé :

(defun c:test(/ ss tl i e e1 e2 eg1 eg2 kc)
;;;;;copyright by Tue_NV
(setq ss (ssget "X" (list (cons 0 "POLYLINE")(cons 8 "ENTTNTHIETKE")))
tl (getreal "Kich thuoc mui ten :")
kc (getreal "Dinh mui ten den chan mui ten:")
i -1
)
(vl-load-com)
(while (setq e (ssname ss (setq i (1+ i))))
(setq e1 (entnext e) eg1 (entget e1) e2 (entnext e1) eg2 (entget e2) )
(entmod (subst (cons 41 tl) (assoc 41 eg1) eg1))
(entmod (subst (cons 10 (polar (vlax-curve-getstartpoint e)
(angle (vlax-curve-getstartpoint e) (vlax-curve-getendpoint e)) kc) )
(assoc 10 eg2) eg2))
(entupd e1) (entupd e2)
)
)

  • 0

#33 girl

girl

    biết vẽ spline

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

Đã gửi 06 November 2011 - 06:55 AM

hihi ! lisp hay thật, Nó làm được những việc mà CAD không thể làm được ! Thanks anh nhìu nhìu na ! hii. Mà a xem chỉnh lại cái chế độ gõ của trang CADVIET, hiện tại đang bị lỗi cụ thể như sau: Khi mình tích vào trả lời thì bị mất con trỏ trong mục soạn thảo, và đánh chữ hay bị lỗi, khó sửa lỗi đó. Muốn hết lỗi thì pải bấm vào gửi bài viết rùi sửa lại thì mới nhìn thấy con trỏ. Phiền anh phản ánh lại với bên lập trình WEB về lỗi này và để fix lỗi. THanks anh. cảm ơn diễn đàn !
  • 0

#34 girl

girl

    biết vẽ spline

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

Đã gửi 15 November 2011 - 06:00 AM

Hic ! Xin lỗi anh Tuệ hôm trước em test không kỹ, hì, bi giờ cái mũi tên thì chỉnh đẹp chuẩn rùi, nhưng khi mình chỉnh bé đi thì với cái đuôi cũ thì sẽ bị dài, Không biết anh có cách nào để chỉnh chiều dài cái đuôi mũi tên ko ạ ?
  • 0

#35 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 15 November 2011 - 10:30 AM

Hic ! Xin lỗi anh Tuệ hôm trước em test không kỹ, hì, bi giờ cái mũi tên thì chỉnh đẹp chuẩn rùi, nhưng khi mình chỉnh bé đi thì với cái đuôi cũ thì sẽ bị dài, Không biết anh có cách nào để chỉnh chiều dài cái đuôi mũi tên ko ạ ?

Có 3 thông số cho bạn nhập vào :
- Một là Độ lớn của mũi tên : Trong hình vẽ của bạn là 0.18 -> (1)
- Hai là : Khoảng cách từ đỉnh của mũi tên tới chân mũi tên để bạn girl có thể cân đối lại mũi tên (2)
- Ba là : Tổng chiều dài mũi tên để bạn có thể chỉnh "đuôi mũi tên" (3)
(3) > (2) nhé


(defun c:test(/ ss tl i e e1 e2 e3 eg1 eg2 eg3 kc kc2)
;;;;;copyright by Tue_NV
(setq ss (ssget "X" (list (cons 0 "POLYLINE")(cons 8 "ENTTNTHIETKE")))
tl (getreal "Kich thuoc mui ten :")
kc (getreal "Dinh mui ten den chan mui ten:")
kc2 (getreal "Tong chieu dai mui ten:")
i -1
)
(vl-load-com)
(if (> kc2 kc)
(while (setq e (ssname ss (setq i (1+ i))))
(setq e1 (entnext e) eg1 (entget e1) e2 (entnext e1) eg2 (entget e2)
e3 (entnext e2) eg3 (entget e3) )
(entmod (subst (cons 41 tl) (assoc 41 eg1) eg1))
(entmod (subst (cons 10 (polar (vlax-curve-getstartpoint e)
(angle (vlax-curve-getstartpoint e) (vlax-curve-getendpoint e)) kc) )
(assoc 10 eg2) eg2))
(entmod (subst (cons 10 (polar (vlax-curve-getstartpoint e)
(angle (vlax-curve-getstartpoint e) (vlax-curve-getendpoint e)) kc2) )
(assoc 10 eg3) eg3))

(entupd e1) (entupd e2) (entupd e3)
)
)
)

  • 1