Đến nội dung


Hình ảnh
- - - - -

Lệnh offset đặc biệt


  • Please log in to reply
55 replies to this topic

#41 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 05 May 2013 - 11:16 AM

Ủa, sao kỳ vậy! Obj+pt1+pt2 mà!


  • 0

* 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.


#42 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 05 May 2013 - 11:17 AM

Ủa, sao kỳ vậy! Obj+pt1+pt2 mà!

 

Bác ôn lại bài nhé!  :lol: 


  • 0

#43 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 05 May 2013 - 11:23 AM

:D Mới ôn thi xong, 0 tham số, srr nhầm em MU >> NNSơn phải kết hợp vla-copy và vl-move.


  • 0

* 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.


#44 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 368 Bài viết
Điểm đánh giá: 39 (tàm tạm)

Đã gửi 05 May 2013 - 03:33 PM

Mình mới thêm nhưng chưa rõ cú pháp như sau có chuẩn không?

(defun C:cop()
 (vl-load-com)
 (setq str (getstring  "\nNh\U+1EADp bi\U+1EC3u th\U+1EE9c gi\U+00E1 tr\U+1ECB Offet <10,2@30,50,...>: "))
   (setq ent   (car (entsel "n\chon block"))
	 p1    (cdr (assoc 10 (entget dt)))
	 p2    (getpoint p1 "\nVao diem den: ")
   );Setq
 (setq lst (apply 'append (mapcar '(lambda(x) (HA:str->lst x "@")) (LM:str->lst str ","))))
 ;(while (setq ent (car (entsel "\nCh\U+1ECDn \U+0111\U+1ED1i t\U+01B0\U+1EE3ng Offset: ")))
  (foreach dis lst
   (setq newobj (vla-copy (vlax-ename->vla-object ent)))
   (vla-move newobj p1 p2)
   (setq ent (entlast)));)
 (princ))

  • 0

#45 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 05 May 2013 - 04:01 PM

Mình mới thêm nhưng chưa rõ cú pháp như sau có chuẩn không?

(defun C:cop()
 (vl-load-com)
 (setq str (getstring  "\nNh\U+1EADp bi\U+1EC3u th\U+1EE9c gi\U+00E1 tr\U+1ECB Offet <10,2@30,50,...>: "))
   (setq ent   (car (entsel "n\chon block"))
	 p1    (cdr (assoc 10 (entget dt)))
	 p2    (getpoint p1 "\nVao diem den: ")
   );Setq
 (setq lst (apply 'append (mapcar '(lambda(x) (HA:str->lst x "@")) (LM:str->lst str ","))))
 ;(while (setq ent (car (entsel "\nCh\U+1ECDn \U+0111\U+1ED1i t\U+01B0\U+1EE3ng Offset: ")))
  (foreach dis lst
   (setq newobj (vla-copy (vlax-ename->vla-object ent)))
   (vla-move newobj p1 p2)
   (setq ent (entlast)));)
 (princ))

3 chỗ sai:

1). Nhầm: ent mà ghi là dt.

2). p1 và p2 phải ở trong hàm vlax-3d-point

3). p2 chỉ để lấy hướng copy là p1->p2 chứ không phải là khoảng cách để copy.


  • 0

* 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.


#46 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 368 Bài viết
Điểm đánh giá: 39 (tàm tạm)

Đã gửi 05 May 2013 - 04:20 PM

3 chỗ sai:

1). Nhầm: ent mà ghi là dt.

2). p1 và p2 phải ở trong hàm vlax-3d-point

3). p2 chỉ để lấy hướng copy là p1->p2 chứ không phải là khoảng cách để copy.

các ý 1,3 đã hiểu. Ý 2 chưa rõ lắm

Mình code thử lại

(defun C:cop()
 (vl-load-com)
 (setq str (getstring  "\nNh\U+1EADp bi\U+1EC3u th\U+1EE9c gi\U+00E1 tr\U+1ECB Offet <10,2@30,50,...>: "))
   (setq ent   (car (entsel "n\chon block"))
	 p1    (cdr (assoc 10 (entget ent)))
   );Setq
 (setq lst (apply 'append (mapcar '(lambda(x) (HA:str->lst x "@")) (LM:str->lst str ","))))
  (foreach dis lst
   (setq newobj (vla-copy ent))
   (command ".copy" newobj "" p1 (polar p1 0 dis))
   (setq ent (entlast)));)
 (princ))

Nó báo lỗi nchon block; error: bad argument type: VLA-OBJECT <Entity name: 7ef95610>


  • 0

#47 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 05 May 2013 - 04:26 PM

Hàm vla-copy hoặc vla-move thì đối tượng là vla-object.

Lệnh copy thì đối tượng là entity hoặc ssget. Bạn sai ở đây vì newobj là vla-object.


  • 0

* 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.


#48 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 368 Bài viết
Điểm đánh giá: 39 (tàm tạm)

Đã gửi 05 May 2013 - 04:36 PM

Hàm vla-copy hoặc vla-move thì đối tượng là vla-object.

Lệnh copy thì đối tượng là entity hoặc ssget. Bạn sai ở đây vì newobj là vla-object.

Mình có tham khảo ở đây

http://www.afralisp....copy_method.htm

   (setq newobj (vla-copy (vlax-ename->vla-object ent)))
   (setq p2 (list (+ dis (car p1)) (cadr p1)))
   (vla-move newobj p1 p2)

Nhưng báo sai cấu trúc ?


  • 0

#49 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 368 Bài viết
Điểm đánh giá: 39 (tàm tạm)

Đã gửi 05 May 2013 - 04:42 PM

Cám ơn sự góp ý của mọi người. Mình đã thử thấy ok. Đang cố thêm nốt cái đoạn chọn hướng copy nữa là ok :)

;=======================================================================
(defun C:cop()
 (vl-load-com)
 (setq str (getstring  "\n Nh\U+1EADp bi\U+1EC3u th\U+1EE9c gi\U+00E1 tr\U+1ECB Offet <10,2@30,50,...>: "))
   (setq ent   (car (entsel "n \chon block"))
	 p1    (cdr (assoc 10 (entget ent)))
   );Setq
 (setq lst (apply 'append (mapcar '(lambda(x) (HA:str->lst x "@")) (LM:str->lst str ","))))
  (foreach dis lst
   (setq newobj (vla-copy (vlax-ename->vla-object ent)))
   (setq p2 (list (+ dis (car p1)) (cadr p1)))
   (vla-move newobj (vlax-3d-point p1) (vlax-3d-point p2))
   (setq ent (entlast)));)
 (princ))
;=======================================================================

  • 0

#50 ad.pham234

ad.pham234

    biết zoom

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

Đã gửi 14 July 2015 - 08:41 AM

các bác cho em hỏi 1 chút xíu được ko ạ e líp oo này rất hay rồi nhưng nhờ các bác chỉnh hộ 1 tí nữa là ok .em muốn khi opset sang 2 bên thì đối tượng mới ở 1 layer mới không trùng với layer gốc đc ko các bác. các bác chỉnh giúp em với !http://www.cadviet.c...5/144248_oo.lsp


  • -2

#51 anti lazy

anti lazy

    biết lệnh erase

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

Đã gửi 14 July 2015 - 08:51 AM

Bạn hỏi hay xin. Nên học - hỏi, học trước, không hiểu thì mới hỏi. Nếu chịu khó học các code ở CV khoảng 1 tuần, yêu cầu này chỉ cần sửa trong 5',

Yêu cầu đối tượng mới ở 1 layer mới không trùng với layer gốc cũng đã có trong nhiều bài khác, nếu tìm sẽ thấy

còn không thì : Xin, xin nữa, xin mãi


  • 0

#52 ad.pham234

ad.pham234

    biết zoom

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

Đã gửi 14 July 2015 - 09:01 AM

ôi bác ơi em tìm mãi mà chẳng biết tìm ở đâu nên em mới mạn phép hỏi bác giúp em với em mới vào nghề mà huhu.


  • 0

#53 ad.pham234

ad.pham234

    biết zoom

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

Đã gửi 14 July 2015 - 09:06 AM

mong bác giúp em 1 lần này hoặc bác có thể chỉ hộ em cho tim chứ em cũng tìm hiểu và tìm mãi mà chẳng biết ở đâu cả.


  • 0

#54 ad.pham234

ad.pham234

    biết zoom

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

Đã gửi 14 July 2015 - 09:17 AM

mong bác bỏ quá giúp em với em mới vào nghề cũng chưa biết tìm ở đâu thôi bác thông cảm. giúp em lần này.


  • 0

#55 ad.pham234

ad.pham234

    biết zoom

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

Đã gửi 14 July 2015 - 09:24 AM

Bạn hỏi hay xin. Nên học - hỏi, học trước, không hiểu thì mới hỏi. Nếu chịu khó học các code ở CV khoảng 1 tuần, yêu cầu này chỉ cần sửa trong 5',

Yêu cầu đối tượng mới ở 1 layer mới không trùng với layer gốc cũng đã có trong nhiều bài khác, nếu tìm sẽ thấy

còn không thì : Xin, xin nữa, xin mãi

mong bác giúp em 1 lần


  • 0

#56 thanthanhduy

thanthanhduy

    Chưa sử dụng CAD

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

Đã gửi 31 March 2016 - 08:51 AM

Mấy bác cho em hỏi có bác nào có cái list OFFSET nào có thể nhân 2 giá trị OFFSET  ko ạ. Ví Dụ OFFSET 2000 thì nó tự OFFSET 4000. Nếu được thì có thể nhập giá trị OFFSET là nhân 2, 3, ... bất kì được ko ạ. Thank mấy bác nhiều

Chúc ngày mới tốt lành


  • 0