Đến nội dung


Hình ảnh
- - - - -

[Yêu cầu] Offset, chuyện cũ với yêu cầu mới


  • Please log in to reply
62 replies to this topic

#21 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 22 March 2013 - 05:13 PM

1). Nhầm. Tiếp tục suy luận ẩu: Chắc a là Multilpe, bởi nếu bỏ a thì Multiple không hiệu lực. Chờ Ket xác minh.

2). Cad2007 nó thế này, đâu có U?

 

FILLET
Current settings: Mode = TRIM, Radius = 10.00
Select first object or [Undo/Polyline/Radius/Trim/Multiple]:
 
Command: chamfer
(TRIM mode) Current chamfer Dist1 = 10.00, Dist2 = 10.00
Select first line or [Undo/Polyline/Distance/Angle/Trim/mEthod/Multiple]:
3). OK

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


#22 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 22 March 2013 - 05:31 PM

1). Nhầm. Tiếp tục suy luận ẩu: Chắc a là Multilpe, bởi nếu bỏ a thì Multiple không hiệu lực. Chờ Ket xác minh.

2). Cad2007 nó thế này, đâu có U?

 

FILLET
Current settings: Mode = TRIM, Radius = 10.00
Select first object or [Undo/Polyline/Radius/Trim/Multiple]:
 

Command: chamfer
(TRIM mode) Current chamfer Dist1 = 10.00, Dist2 = 10.00
Select first line or [Undo/Polyline/Distance/Angle/Trim/mEthod/Multiple]:
3). OK

 

1.) a chính là VLR-Command-Reactor. Nôm na theo Tue_NV hiểu đó là hàm gọi reactor,

gọi là calling-reactor

"m" chính là Multiple. 

 

Cùng 1 lệnh Fillet -> Tại sao gõ F  lại được dòng (1) ; gõ Fillet lại ra dòng (2)???

Thử CAD2007 thì thấy thế, CAD2012 thì gõ F hay Fillet đều được dòng (2). Lạ quá.....

 

Command: f nil
Select first object or [uNdo/Polyline/Radius/Trim/mUltiple]: (1)
 
 
Command: fillet
Current settings: Mode = TRIM, Radius = 1000.00
Select first object or [Undo/Polyline/Radius/Trim/Multiple]: (2)
 
=> Lisp nhận lệnh đầy đủ -> Phải là "m" chứ không phải "u" trong code

  • 1

#23 ThuyLinh313

ThuyLinh313

    biết lệnh mtext

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

Đã gửi 22 March 2013 - 05:33 PM

@ Phamthanhbinh: chamfer_df là hàm callback của reactor. Cấu trúc của nó quy định hơi khác hàm defun bình thường. Tất cả các hàm callback đều phải có 1 đối số bắt buộc đặt ở vị trí đầu tiên (vị trí a như hàm trên của ketxu). Nó chính là Cái reactor liên kết với hàm callback đó. sau đó là các đối số phụ tùy thuộc vào loại reactor.

Thông thường thì chúng ta không dùng đến nó, tuy nhiên khi thực hiện các lisp lớn có sử dụng nhiều reactor thì nó rất quan trọng để lập trình viên quản lý và điều khiển các reactor đã sử dụng, tránh việc cùng 1 lúc có thể có vài reactor được gọi bởi 1 sự kiện nhưng hoạt động theo hướng phủ định nhau.


  • 1

#24 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 22 March 2013 - 06:17 PM

1). Cad2007 của tôi thì F hay Fillet cũng đều ra Multiple cả. Lạ quá!

2). Chưa hiểu cách giải thích của Tue_NV + ThuyLinh ở chỗ này: tại sao bỏ a đi thì vẫn dùng được, mà chỉ bị mất Multiple thôi?


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


#25 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 23 March 2013 - 02:58 AM

1.) a chính là VLR-Command-Reactor. Nôm na theo Tue_NV hiểu đó là hàm gọi reactor,

gọi là calling-reactor

"m" chính là Multiple. 

 

Cùng 1 lệnh Fillet -> Tại sao gõ F  lại được dòng (1) ; gõ Fillet lại ra dòng (2)???

Thử CAD2007 thì thấy thế, CAD2012 thì gõ F hay Fillet đều được dòng (2). Lạ quá.....

 

Command: f nil
Select first object or [uNdo/Polyline/Radius/Trim/mUltiple]: (1)
 
 
Command: fillet
Current settings: Mode = TRIM, Radius = 1000.00
Select first object or [Undo/Polyline/Radius/Trim/Multiple]: (2)
 
=> Lisp nhận lệnh đầy đủ -> Phải là "m" chứ không phải "u" trong code

Hề hề hề,

1/- Khi dùng code có tham số m. cad2004 của mình cho kết quả như sau:

 

Command: r5
Unknown command "R5".  Press F1 for help.
 
Command: fillet
Current settings: Mode = TRIM, Radius = 5.0000
Select first object or [Polyline/Radius/Trim/mUltiple]: m
 
 
*Invalid selection*
Expects a point or Window/Last/Crossing/BOX/Fence/WPolygon/CPolygon/CLass
 
Select first object or [Polyline/Radius/Trim/mUltiple]:
Select second object:
 
Và cũng chỉ fillet được 1 lần chứ không multi.
2/- Khi bỏ tham số m này thì kết quả là:
Command: r5
Unknown command "R5".  Press F1 for help.
 
Command: fillet
Current settings: Mode = TRIM, Radius = 5.0000
Select first object or [Polyline/Radius/Trim/mUltiple]:
Select second object:
Chỉ fillet 1 lần.
3/- Khi thay bằng tham số u thì kết quả là cho phép fillet nhiều lần như sau:
Command: r5
Unknown command "R5".  Press F1 for help.
 
Command: fillet
Current settings: Mode = TRIM, Radius = 5.0000
Select first object or [Polyline/Radius/Trim/mUltiple]: u
Select first object or [Polyline/Radius/Trim/mUltiple]:
Select second object:
Select first object or [Polyline/Radius/Trim/mUltiple]:
Select second object:
Select first object or [Polyline/Radius/Trim/mUltiple]:
Select second object:
Select first object or [Polyline/Radius/Trim/mUltiple]:
Select second object:
4/- Như vậy là có sự khác nhau giữa các đời CAD các bác ạ. Có nhẽ CAD2004 thì phải dùng tham số u chứ không dùng tham số m được.
Hề hề 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.

#26 phongdhgtvt

phongdhgtvt

    Chưa sử dụng CAD

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

Đã gửi 23 March 2013 - 07:32 AM

vãi thật mới mon men hoc cad va cũng mon men vô đây tim thầy và mới biết kiến thức sâu rông quá


  • 0

#27 ThuyLinh313

ThuyLinh313

    biết lệnh mtext

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

Đã gửi 23 March 2013 - 08:20 AM

@ĐVH: Nếu bạn bỏ a đi thì cấu trúc hàm callback sai luôn rồi, do thiếu số lượng đối số bắt buộc. chương trình báo lỗi chứ không thể chạy được.


d3 ; error: too many arguments
Unknown command "D3". Press F1 for help.

PS: Lisp trên bạn dùng thêm hàm cond thừa thãi quá. chỉ cần 1 hàm and là đủ rùi :)


  • 1

#28 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 23 March 2013 - 09:17 AM

1). Ồ! Hôm qua test sơ suất chỗ nào đấy, nay test lại thì đúng là không thể bỏ a được. srr.

2). Đúng là chỉ cần dùng hoặc cond hoặc and thôi. Cái này chôm code Ketxu sửa lại cho y/c thứ 2 nên chưa nghiên cứu kỹ code.


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


#29 dragontalon0802

dragontalon0802

    biết lệnh erase

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

Đã gửi 23 March 2013 - 09:30 AM

Hay quá, cảm ơn các bác.


  • 0

#30 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1435 Bài viết
Điểm đánh giá: 1426 (rất tốt)

Đã gửi 23 March 2013 - 10:07 AM

Đông vui quá! Góp thêm lệnh Offset.

 

;Fillet voi ban kinh bat ky, nhap lenh theo cau truc Rbankinh (R10, R100, R50, R1.5 ...)
;Ketxu 20/3/13
;Chamfer voi kh/cach bat ky, nhap lenh theo cau truc Dkhoangcah (D10, D100, D50, D1.5 ...)
;HA 20/3/13
;Offset voi kh/cach bat ky, nhap lenh theo cau truc Okhoangcah (O10, O100, O50, O1.5 ...)
;Gia Bach 23/3/13
(vl-load-com)

(if (null unknownCMD_reactor)(setq unknownCMD_reactor (vlr-command-reactor nil '((:vlr-unknownCommand . fillet_chamfer_offset)))))

(defun	fillet_chamfer_offset (reactor_object  lst / cmdLine cmd dis)
  (if (and (setq cmdLine (strcase (nth 0 lst)))
	   (setq cmd (substr cmdLine 1 1))
           (wcmatch cmd "R,D,O")
	   (setq dis (distof (substr cmdLine 2))))
  (cond
    ( (eq cmd "R")
      (and (setvar 'FILLETRAD dis)
	   (vla-sendcommand (vla-get-activedocument (vlax-get-acad-object)) "fillet ")))
    ( (eq cmd "D")
      (and (setvar 'CHAMFERA dis) (setvar 'CHAMFERB dis)
	   (vla-sendcommand (vla-get-activedocument (vlax-get-acad-object)) "chamfer ")))
    ( (eq cmd "O")
      (and (setvar 'OFFSETDIST dis) 
	   (vla-sendcommand (vla-get-activedocument (vlax-get-acad-object)) "offset  ")))
    ( t nil)    ))
  (princ))

 

 


Bài viết đã được chỉnh sửa nội dung bởi gia_bach: 23 March 2013 - 10:30 AM

  • 2

#31 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 23 March 2013 - 10:43 AM

Chà, vui quá ^^
 
- Cấu trúc của hàm Callback các bác xem trong Help :
 
 
AutoLISP Developer's Guide[/url > Using the Visual LISP Environment Advanced Topics > Attaching Reactors to AutoCAD Drawings > 
Defining Callback
Functions
 
- 2 tham số đều là bắt buộc, giống hàm error vậy thôi.
- m hay u thì ket nhớ không nhầm là do phiên bản, các bác bỏ đi hoặc viết hẳn chữ _Multiple ra là xong
 
-Cond, and :  Nói thừa thãi thì không phải rồi, k dùng mỗi and là vì ^^  
 + Bác gia_bach viết bên dưới rồi. Nó là một lisp viết mở, ta hoàn toàn có thể thêm các trường hợp khác.Lúc đầu ket còn định viết đoạn nếu k phải R thì trả về bán kính fillet cũ cơ ^^
 + Ket k thích (mặc dù ket đã viết hẳn 1 bài tut rút ngắn code bằng and, or rồi, chỉ là không thích thôi :P ). 
    Ket thấy bạn TL đặc biệt thích dùng And và Or (qua các lisp bạn post), cũng hay, nhưng theo mình nghĩ chỉ nên viết với những trường hợp tất cả các biểu thức sau And, Or bạn phải kiểm soát được giá trị trả về (nil hoặc không). Với ví dụ trên, nếu định viết thêm một dòng bất kỳ thì phải thêm not cho dòng sendcommand, ket k thích


  • 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


#32 ThuyLinh313

ThuyLinh313

    biết lệnh mtext

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

Đã gửi 23 March 2013 - 05:29 PM

Dù không muốn nhận xét cá nhân, nhưng quả thật bạn Ketxu rất tinh ý, Mình thích And và Or vì dùng nó nhìn code gọn gàng, dễ đọc hơn if, cond.. ^^


  • 0

#33 AGi

AGi

    biết vẽ ellipse

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

Đã gửi 28 March 2013 - 11:29 AM

Mình lại có việc làm phiền mọi người đây.

Mình làm quy hoạch, thường xuyên phải vẽ các tuyến đường 12m, 13m, 16m,.... nên nhờ mọi người viết 1 lisp về lệnh Offset để làm việc này.

Yêu cầu cụ thể như sau:

Từ 1 đường line (or pline, arc, spline) là tim đường ta gõ lệnh LG12, Cad sẽ tự động làm các việc như sau:

 * Từ tim offset qua 2 bên, khoảng cách mỗi bên là 3 và chuyển 2 đường mới tạo ra này vào layer "00_Mep duong" sẵn có, nếu chưa có thì tạo mới layer này.

  * Từ tim offset qua 2 bên, khoảng cách mỗi bên là 6 và chuyển 2 đường mới tạo ra này vào layer "00_Mep he" sẵn có, nếu chưa có thì tạo mới layer này.

 

Tương tự,

Từ 1 đường line (or pline) là tim đường ta gõ lệnh LG13, Cad sẽ tự động làm các việc như sau:

 * Từ tim offset qua 2 bên, khoảng cách mỗi bên là 3,5 và chuyển 2 đường mới tạo ra này vào layer "00_Mep duong" sẵn có, nếu chưa có thì tạo mới layer này.

  * Từ tim offset qua 2 bên, khoảng cách mỗi bên là 6,5 và chuyển 2 đường mới tạo ra này vào layer "00_Mep he" sẵn có, nếu chưa có thì tạo mới layer này.

....

 

Mời ae xem file đính kèm sẽ rõ hơn.

http://www.cadviet.c...ffset_duong.dwg

 

Cái này rất hữu ích cho dân quy hoạch nên mong ae giúp dùm mình!

Thanks tất cả ae diễn đàn Cadviet!


  • 0

#34 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 28 March 2013 - 12:24 PM

1). Giá mà bạn post y/c tiếp tục vào topic hôm trước thì đỡ loãng 4r hơn.

2). Từ các con số LG12, LG13,... chưa suy ra được quan hệ khoảng cách giữa tim đường với mép đường và mép lề trong trường hợp tổng quát.

VD: nhập LG50 thì offet lần 1 bao nhiêu, lần 2 bao nhiêu?


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


#35 KangKung

KangKung

    biết lệnh array

  • Members
  • PipPipPip
  • 189 Bài viết
Điểm đánh giá: 227 (khá)

Đã gửi 28 March 2013 - 01:18 PM

Mình lại có việc làm phiền mọi người đây.

Mình làm quy hoạch, thường xuyên phải vẽ các tuyến đường 12m, 13m, 16m,.... nên nhờ mọi người viết 1 lisp về lệnh Offset để làm việc này.

Yêu cầu cụ thể như sau:

Từ 1 đường line (or pline, arc, spline) là tim đường ta gõ lệnh LG12, Cad sẽ tự động làm các việc như sau:

 * Từ tim offset qua 2 bên, khoảng cách mỗi bên là 3 và chuyển 2 đường mới tạo ra này vào layer "00_Mep duong" sẵn có, nếu chưa có thì tạo mới layer này.

  * Từ tim offset qua 2 bên, khoảng cách mỗi bên là 6 và chuyển 2 đường mới tạo ra này vào layer "00_Mep he" sẵn có, nếu chưa có thì tạo mới layer này.

 

Tương tự,

Từ 1 đường line (or pline) là tim đường ta gõ lệnh LG13, Cad sẽ tự động làm các việc như sau:

 * Từ tim offset qua 2 bên, khoảng cách mỗi bên là 3,5 và chuyển 2 đường mới tạo ra này vào layer "00_Mep duong" sẵn có, nếu chưa có thì tạo mới layer này.

  * Từ tim offset qua 2 bên, khoảng cách mỗi bên là 6,5 và chuyển 2 đường mới tạo ra này vào layer "00_Mep he" sẵn có, nếu chưa có thì tạo mới layer này.

....

 

Mời ae xem file đính kèm sẽ rõ hơn.

http://www.cadviet.c...ffset_duong.dwg

 

Cái này rất hữu ích cho dân quy hoạch nên mong ae giúp dùm mình!

Thanks tất cả ae diễn đàn Cadviet!

Lisp của bác đây:

;========LISP OFFSET==========
;====KANGKUNG 28/03/2013======
(defun C:LG12()
  (command "UNDO" "BE")
  (setq os(getvar "OSMODE"))
  (setvar "OSMODE" 0)
  (setq dt (car(entsel)) i (/ pi 2))
  (repeat 2
    (setq pt (polar (vlax-curve-getPointAtDist dt 0) (+ (angle (vlax-curve-getPointAtDist dt 0) (vlax-curve-getPointAtDist dt (+ 0 0.1))) i) 1))
    (of "3" pt "00_Mep duong")
    (of "6" pt "00_Mep he")
    (setq i (/ pi -2))
    )
  (setvar "OSMODE" os)
  (command "UNDO" "END")
  )
(defun C:LG13()
  (command "UNDO" "BE")
  (setq os(getvar "OSMODE"))
  (setvar "OSMODE" 0)
  (setq dt (car(entsel)) i (/ pi 2))
  (repeat 2
    (setq pt (polar (vlax-curve-getPointAtDist dt 0) (+ (angle (vlax-curve-getPointAtDist dt 0) (vlax-curve-getPointAtDist dt (+ 0 0.1))) i) 1))
    (of "3.5" pt "00_Mep duong")
    (of "6.5" pt "00_Mep he")
    (setq i (/ pi -2))
    )
  (setvar "OSMODE" os)
  (command "UNDO" "END")
  )
(defun of(di pt la)
  (command "offset" di dt pt "")
  (if (= (tblsearch "Layer" la) nil)
    (progn
      (command "LAYER" "N" la "")
      (vla-put-layer (vlax-ename->vla-object (entlast)) la))
    (vla-put-layer (vlax-ename->vla-object (entlast)) la)))
(princ "\n                Written By KangKung - 28/03/2013\n")

  • 3

#36 AGi

AGi

    biết vẽ ellipse

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

Đã gửi 28 March 2013 - 01:24 PM

1). Giá mà bạn post y/c tiếp tục vào topic hôm trước thì đỡ loãng 4r hơn.

2). Từ các con số LG12, LG13,... chưa suy ra được quan hệ khoảng cách giữa tim đường với mép đường và mép lề trong trường hợp tổng quát.

VD: nhập LG50 thì offet lần 1 bao nhiêu, lần 2 bao nhiêu?

Cám ơn bạn đã góp ý.

Về ý thứ 1): Có lẽ nhờ Mod di chuyển bài này qua topic trước của mình dùm

http://www.cadviet.c...on-lenh-fillet/

Về ý thư 2): Mình có ý kiến như sau:

Mình làm qh chủ yếu quanh quẩn có mấy loại đường là 12m, 13m, 16m, 20m, 24m, 30m.

Mấy cái này thì không có hệ số nào chung cả. Tùy từng lộ giới và ng thiết kế cũng như tính chất của con đường mà sẽ có chiều rộng vỉa hè và chiều rộng lòng đường khác nhau.

Do đó mình nhờ các bạn viết Lisp cho vài loại đường tiêu biểu. Từ đó mình sẽ phát triển thêm các loại đường khác theo ý mình.


  • 0

#37 AGi

AGi

    biết vẽ ellipse

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

Đã gửi 28 March 2013 - 01:33 PM

Lisp của bác đây:

;========LISP OFFSET==========
;====KANGKUNG 28/03/2013======
(defun C:LG12()
  (command "UNDO" "BE")
  (setq os(getvar "OSMODE"))
  (setvar "OSMODE" 0)
  (setq dt (car(entsel)) i (/ pi 2))
  (repeat 2
    (setq pt (polar (vlax-curve-getPointAtDist dt 0) (+ (angle (vlax-curve-getPointAtDist dt 0) (vlax-curve-getPointAtDist dt (+ 0 0.1))) i) 1))
    (of "3" pt "00_Mep duong")
    (of "6" pt "00_Mep he")
    (setq i (/ pi -2))
    )
  (setvar "OSMODE" os)
  (command "UNDO" "END")
  )
(defun C:LG13()
  (command "UNDO" "BE")
  (setq os(getvar "OSMODE"))
  (setvar "OSMODE" 0)
  (setq dt (car(entsel)) i (/ pi 2))
  (repeat 2
    (setq pt (polar (vlax-curve-getPointAtDist dt 0) (+ (angle (vlax-curve-getPointAtDist dt 0) (vlax-curve-getPointAtDist dt (+ 0 0.1))) i) 1))
    (of "3.5" pt "00_Mep duong")
    (of "6.5" pt "00_Mep he")
    (setq i (/ pi -2))
    )
  (setvar "OSMODE" os)
  (command "UNDO" "END")
  )
(defun of(di pt la)
  (command "offset" di dt pt "")
  (if (= (tblsearch "Layer" la) nil)
    (progn
      (command "LAYER" "N" la "")
      (vla-put-layer (vlax-ename->vla-object (entlast)) la))
    (vla-put-layer (vlax-ename->vla-object (entlast)) la)))
(princ "\n                Written By KangKung - 28/03/2013\n")

 

Thanks bạn KangKung rất nhiều!

Lisp rất ok.

Các bạn làm qh nên down Lisp này về làm sẽ tiết kiện đc rất nhiều thời gian.


  • 0

#38 AGi

AGi

    biết vẽ ellipse

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

Đã gửi 28 March 2013 - 02:14 PM

Đọc bài viết trao đổi của các pro mình chẳng hiểu mô tê j cả hihihii. Nhưng sẳn có đông đủ cao thủ ở đây mình lại đưa thêm một yêu cầu để các cao thủ ra tay hihhii

Trong Cad, lệnh Chamfer chỉ cho phép chamfer giữa 2 đường thẳng. Nếu gặp 1 đường thẳng và 1 đường cong hoặc 2 đường cong thì bó tay.

Vậy nhờ các Pro bổ sung cho Lisp Chamfer trực tiếp mà Pro Doan Van Ha đã viết để khắc phục chuyện này.

Thanks mọi người!


  • 0

#39 AGi

AGi

    biết vẽ ellipse

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

Đã gửi 29 March 2013 - 10:13 AM

Đọc bài viết trao đổi của các pro mình chẳng hiểu mô tê j cả hihihii. Nhưng sẳn có đông đủ cao thủ ở đây mình lại đưa thêm một yêu cầu để các cao thủ ra tay hihhii

Trong Cad, lệnh Chamfer chỉ cho phép chamfer giữa 2 đường thẳng. Nếu gặp 1 đường thẳng và 1 đường cong hoặc 2 đường cong thì bó tay.

Vậy nhờ các Pro bổ sung cho Lisp Chamfer trực tiếp mà Pro Doan Van Ha đã viết để khắc phục chuyện này.

Thanks mọi người!

Ko ai có lisp cho phép Chamfer đường cong àh?


  • 0

#40 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 29 March 2013 - 10:35 AM

Bạn xây dựng được định nghĩa đi là có hết. Còn không định nghĩa được thì hiển nhiên là không có


  • 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