Đến nội dung


Hình ảnh
- - - - -

[Nhờ chỉnh sửa]lisp cắt 1 đoạn thẳng


  • Please log in to reply
17 replies to this topic

#1 t031285

t031285

    biết vẽ rectang

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

Đã gửi 15 September 2011 - 06:30 AM

Lisp này e down từ diễn đàn,lisp này có tác dụng cắt 1 đoạn thẳng trong 1 đường thẳng và có cho ta lựa chọn thuộc tính của đoạn thẳng này.Nhưng khi muốn biến đoạn thẳng này thành nét đứt thì có 1 bất tiện e nhờ các bác sửa giúp như sau.
Trong bản vẽ có hệ số LTS là 1,
1.Có 1 đoạn thẳng là nét đứt và có LTS là 50 chẳng hạn.
2.Có 1 đường thẳng.
E dùng lisp này để cắt 1 đoạn thẳng trong đường thẳng 2 này và biến đoạn thẳng này thành đoạn thẳng 1 là nét đứt nhưng hệ số LTS chỉ là 1 theo bản vẽ chứ không theo LTS của đoạn thẳng 1 là 50,Nhờ các bác sửa giùm sao cho đoạn thẳng này thành nét đứt có LTS là 50 theo đúng đoạn thẳng đã chọn.Chân thành cảm ơn.

(defun c:brk(/ cobj ent ov pt1 pt2 tmp vl str); brk -> Break Curve
(vl-load-com)
(command "undo" "be")
(setq vl '("osmode" "orthomode" "cmdecho") ; Sys Var list
ov (mapcar 'getvar vl)) ; Get Old values
(mapcar 'setvar vl '(545 0 0))
(if (and (setq Ent (car (entsel "\nChon doi tuong can chia :")))
(wcmatch (cdr (assoc 0 (entget ent))) "*LINE,ARC")
(not (redraw ent 3))
(setq pt1 (getpoint "\nDiem dau :"))
(setq pt2 (getpoint "\nDiem cuoi :")) )
(progn
(setq cObj (vlax-ename->vla-object Ent)
pt1 (vlax-curve-getClosestPointto cObj (trans pt1 1 0))
pt2 (vlax-curve-getClosestPointto cObj (trans pt2 1 0)))
(if (> (vlax-curve-getParamAtPoint cObj pt1)
(vlax-curve-getParamAtPoint cObj pt2))
(setq tmp pt1 pt1 pt2 pt2 tmp) )
(command "._break" ent "_non" (trans pt2 0 1) "_non" (trans pt2 0 1))
(if (equal pt1 (vlax-curve-getStartPoint cObj) 0.001)
(command "change" ent "" "p" "LA" (lcurr) "")
(progn
(command "._break" ent "_non" (trans pt1 0 1) "_non" (trans pt1 0 1))
(command "change" (entlast) "" "p" "LA" (lcurr) "")
)
)
(redraw ent 4)
(mapcar 'setvar vl ov) ; reset Sys Vars
(command "undo" "e")
)
(alert "Khong hop le !"))
(princ))
;
(defun lcurr(/ e)
(setq str (getstring t "\n Nhap ten layer hoac Enter de pick vao doi tuong :"))
(if (= str "")
(progn
(while (null (setq e (entsel "\n pick vao doi tuong :"))))
(setvar "clayer" (cdr(assoc 8 (entget(car e)))))
)
(progn
(while (null (tblsearch "layer" str))
(setq str (getstring t "\n Nhap lai ten layer :"))
)
(setvar "clayer" str)
)
)
)

  • 0

#2 t031285

t031285

    biết vẽ rectang

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

Đã gửi 15 September 2011 - 02:12 PM

Không bác nào giúp được e sao?Thanks.
  • 0

#3 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 15 September 2011 - 03:33 PM

Lisp này e down từ diễn đàn,lisp này có tác dụng cắt 1 đoạn thẳng trong 1 đường thẳng và có cho ta lựa chọn thuộc tính của đoạn thẳng này.Nhưng khi muốn biến đoạn thẳng này thành nét đứt thì có 1 bất tiện e nhờ các bác sửa giúp như sau.
Trong bản vẽ có hệ số LTS là 1,
1.Có 1 đoạn thẳng là nét đứt và có LTS là 50 chẳng hạn.
2.Có 1 đường thẳng.
E dùng lisp này để cắt 1 đoạn thẳng trong đường thẳng 2 này và biến đoạn thẳng này thành đoạn thẳng 1 là nét đứt nhưng hệ số LTS chỉ là 1 theo bản vẽ chứ không theo LTS của đoạn thẳng 1 là 50,Nhờ các bác sửa giùm sao cho đoạn thẳng này thành nét đứt có LTS là 50 theo đúng đoạn thẳng đã chọn.Chân thành cảm ơn.


(defun c:brk(/ cobj ent ov pt1 pt2 tmp vl str); brk -> Break Curve
(vl-load-com)
(command "undo" "be")
(setq vl '("osmode" "orthomode" "cmdecho") ; Sys Var list
ov (mapcar 'getvar vl)) ; Get Old values
(mapcar 'setvar vl '(545 0 0))
(if (and (setq Ent (car (entsel "\nChon doi tuong can chia :")))
(wcmatch (cdr (assoc 0 (entget ent))) "*LINE,ARC")
(not (redraw ent 3))
(setq pt1 (getpoint "\nDiem dau :"))
(setq pt2 (getpoint "\nDiem cuoi :")) )
(progn
(setq cObj (vlax-ename->vla-object Ent)
pt1 (vlax-curve-getClosestPointto cObj (trans pt1 1 0))
pt2 (vlax-curve-getClosestPointto cObj (trans pt2 1 0)))
(if (> (vlax-curve-getParamAtPoint cObj pt1)
(vlax-curve-getParamAtPoint cObj pt2))
(setq tmp pt1 pt1 pt2 pt2 tmp) )
(command "._break" ent "_non" (trans pt2 0 1) "_non" (trans pt2 0 1))
(if (equal pt1 (vlax-curve-getStartPoint cObj) 0.001)
(command "change" ent "" "p" "LA" (lcurr) "")
(progn
(command "._break" ent "_non" (trans pt1 0 1) "_non" (trans pt1 0 1))
(command "change" (entlast) "" "p" "LA" (lcurr) "")
)
)
(redraw ent 4)
(mapcar 'setvar vl ov) ; reset Sys Vars
(command "undo" "e")
)
(alert "Khong hop le !"))
(princ))
;
(defun lcurr(/ e)
(setq str (getstring t "\n Nhap ten layer hoac Enter de pick vao doi tuong :"))
(if (= str "")
(progn
(while (null (setq e (entsel "\n pick vao doi tuong :"))))
(setvar "clayer" (cdr(assoc 8 (entget(car e)))))
)
(progn
(while (null (tblsearch "layer" str))
(setq str (getstring t "\n Nhap lai ten layer :"))
)
(setvar "clayer" str)
)
)
)

Hề hề hề,
Thú thực là đọc cái lisp bạn post chẳng hề dễ dàng chút nào.
Sau khi đọc kỹ mình thấy trong lisp đâu có việc chuyển LTS theo đối tượng mẫu đâu mà bạn bảo sửa????
Lisp chỉ có chuyển layer của đối tượng break về layer mẫu mà thôi. Do vậy nếu LT của đối tượng là bylayer thì nó sẽ theo LT của layer đó, còn nếu không phải là bylaer thì nó sẽ chả chuyển gì sốt.
Việc bạn muốn nó chuyển thành LTS của đối tượng mẫu có nhẽ không khó, nhưng bạn lưu ý rằng khi chuyển ltscale thì tất cả các line trên bản vẻ của bạn sẽ đều bì chuyển đó. Điều này có nhẽ bạn sẽ không thích đâu.
Còn nếu bạn vẫn muốn thì đơn giản là bạn dùng lệnh ltscale của Cad là sẽ Ok đâu cần tới lisp làm chi cho nó thêm ..... đợi chờ....
  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#4 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 15 September 2011 - 04:04 PM

Hì. Put linetypescale cho từng đối tượng thì không ảnh hưởng tới các đối tượng khác bác ạ ^^
  • 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


#5 t031285

t031285

    biết vẽ rectang

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

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

Hì. Put linetypescale cho từng đối tượng thì không ảnh hưởng tới các đối tượng khác bác ạ ^^

Đúng bác ah,e chỉ muốn lấy linetypescale của đoạn thẳng 1 cho đoạn thẳng vừa cắt.
  • 0

#6 t031285

t031285

    biết vẽ rectang

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

Đã gửi 16 September 2011 - 11:53 PM

2 cao thủ đã cho ý kiến,chắc yêu cầu của e không thực hiệ được rồi.Dù gì vẫn cảm ơn các bác đã đọc.
  • 0

#7 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 17 September 2011 - 07:41 AM

.....

(defun c:brk(/ cobj ent ov pt1 pt2 tmp vl str); brk -> Break Curve
(vl-load-com)
(command "undo" "be")
(setq vl '("osmode" "orthomode" "cmdecho") ; Sys Var list
ov (mapcar 'getvar vl)) ; Get Old values
(mapcar 'setvar vl '(545 0 0))
(if (and (setq Ent (car (entsel "\nChon doi tuong can chia :")))
(wcmatch (cdr (assoc 0 (entget ent))) "*LINE,ARC")
(not (redraw ent 3))
(setq pt1 (getpoint "\nDiem dau :"))
(setq pt2 (getpoint "\nDiem cuoi :")) )
(progn
(setq cObj (vlax-ename->vla-object Ent)
pt1 (vlax-curve-getClosestPointto cObj (trans pt1 1 0))
pt2 (vlax-curve-getClosestPointto cObj (trans pt2 1 0)))
(if (> (vlax-curve-getParamAtPoint cObj pt1)
(vlax-curve-getParamAtPoint cObj pt2))
(setq tmp pt1 pt1 pt2 pt2 tmp))
(command "._break" ent "_non" (trans pt2 0 1) "_non" (trans pt2 0 1))
(command "._break" ent "_non" (trans pt1 0 1) "_non" (trans pt1 0 1))
(setq ent1 (vlax-ename->vla-object (car (entsel "\nDoi tuong mau :"))))
(if (equal pt1 (vlax-curve-getStartPoint cObj) 0.001)
(setq ent (vlax-ename->vla-object ent))
(setq ent (vlax-ename->vla-object (entlast)))
)
(vla-put-layer ent (vla-get-layer ent1))
(vla-put-LinetypeScale ent (vla-get-Linetypescale ent1))
(redraw ent 4)
(mapcar 'setvar vl ov) ; reset Sys Vars
(command "undo" "e")
)
(alert "Khong hop le !"))
(princ))

  • 2

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


#8 hugo007

hugo007

    biết lệnh erase

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

Đã gửi 13 October 2011 - 07:12 PM

Các bác cho e hỏi,khi e sử dụng 1 lisp,lisp này vẫn cho ra kết quả mình muốn,nhưng khi thực hiện xong thì dòng command hiện câu:
error: bad argument type: lentityp #<VLA-OBJECT IAcadLine
Mong các bác giải thích và chỉ e cách khắc phục.Thanks.
  • 0

#9 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 13 October 2011 - 11:25 PM

Các bác cho e hỏi,khi e sử dụng 1 lisp,lisp này vẫn cho ra kết quả mình muốn,nhưng khi thực hiện xong thì dòng command hiện câu:
error: bad argument type: lentityp #<VLA-OBJECT IAcadLine
Mong các bác giải thích và chỉ e cách khắc phục.Thanks.

Hề hề hề,
Cứ theo ngu ý của mình thì chắc hẳn trong lisp của bạn có một dòng code nào đó sử dụng sai tên biến, nhưng cái dòng code này lại chả liên quan gì tới cái kết quả mà bạn cần và có nhẽ nó nằm ở cuối lisp của bạn nên khi chạy lisp xong, lisp trả về giá trị của biến cuối cùng (nếu không có hàm (princ) ở cuối lisp) và thế là nó báo lỗi.
Cách sửa là bạn hãy kiểm tra lại xem dòng code lỗi ấy nó ở đâu và vô hiệu hóa nó là Ok. Hoặc củ chuối hơn là bạn nhét thằng (princ) vào cuối lisp để nó thoát luôn mà chẳng màng chi tới cái biến cuối nữa.
Hề hề hề,...
  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#10 hugo007

hugo007

    biết lệnh erase

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

Đã gửi 14 October 2011 - 06:37 AM

Hề hề hề,
Cứ theo ngu ý của mình thì chắc hẳn trong lisp của bạn có một dòng code nào đó sử dụng sai tên biến, nhưng cái dòng code này lại chả liên quan gì tới cái kết quả mà bạn cần và có nhẽ nó nằm ở cuối lisp của bạn nên khi chạy lisp xong, lisp trả về giá trị của biến cuối cùng (nếu không có hàm (princ) ở cuối lisp) và thế là nó báo lỗi.
Cách sửa là bạn hãy kiểm tra lại xem dòng code lỗi ấy nó ở đâu và vô hiệu hóa nó là Ok. Hoặc củ chuối hơn là bạn nhét thằng (princ) vào cuối lisp để nó thoát luôn mà chẳng màng chi tới cái biến cuối nữa.
Hề hề hề,...

Có princ ở cuối bác ah.e gửi lisp này lên các bác xem giúp:
 
(defun c:brk(/ cobj ent ov pt1 pt2 tmp vl str); brk -> Break Curve
(vl-load-com)
(command "undo" "be")
(setq vl '("osmode" "orthomode" "cmdecho") ; Sys Var list
ov (mapcar 'getvar vl)) ; Get Old values
(mapcar 'setvar vl '(545 0 0))
(if (and (setq Ent (car (entsel "\nChon doi tuong can chia :")))
(wcmatch (cdr (assoc 0 (entget ent))) "*LINE,ARC")
(not (redraw ent 3))
(setq pt1 (getpoint "\nDiem dau :"))
(setq pt2 (getpoint "\nDiem cuoi :")) )
(progn
(setq cObj (vlax-ename->vla-object Ent)
pt1 (vlax-curve-getClosestPointto cObj (trans pt1 1 0))
pt2 (vlax-curve-getClosestPointto cObj (trans pt2 1 0)))
(if (> (vlax-curve-getParamAtPoint cObj pt1)
(vlax-curve-getParamAtPoint cObj pt2))
(setq tmp pt1 pt1 pt2 pt2 tmp))
(command "._break" ent "_non" (trans pt2 0 1) "_non" (trans pt2 0 1))
(command "._break" ent "_non" (trans pt1 0 1) "_non" (trans pt1 0 1))
(setq ent1 (vlax-ename->vla-object (car (entsel "\nDoi tuong mau :"))))
(if (equal pt1 (vlax-curve-getStartPoint cObj) 0.001)
(setq ent (vlax-ename->vla-object ent))
(setq ent (vlax-ename->vla-object (entlast)))
)
(vla-put-layer ent (vla-get-layer ent1))
(vla-put-LinetypeScale ent (vla-get-Linetypescale ent1))
(redraw ent 4)
(mapcar 'setvar vl ov) ; reset Sys Vars
(command "undo" "e")
)
(alert "Khong hop le !"))
(princ))
Chân thành cảm ơn trước.
  • 1

#11 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 14 October 2011 - 08:47 AM

Tại sao bạn không gửi ngay tại Topic bạn down file , gửi bản vẽ lúc thao tác.....??
Diễn đàn có nhiều lisp lắm rồi, lúc tổng hợp cứ thấy quote đi code lại những code giống nhau quả thật rất bất tiện.
Mình chuyển những bài này vào topic đó, hi vọng lần sau bạn rút kinh nghiệm
http://www.cadviet.c...l=&fromsearch=1
  • 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


#12 hugo007

hugo007

    biết lệnh erase

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

Đã gửi 14 October 2011 - 09:43 AM

Tại sao bạn không gửi ngay tại Topic bạn down file , gửi bản vẽ lúc thao tác.....??
Diễn đàn có nhiều lisp lắm rồi, lúc tổng hợp cứ thấy quote đi code lại những code giống nhau quả thật rất bất tiện.
Mình chuyển những bài này vào topic đó, hi vọng lần sau bạn rút kinh nghiệm
http://www.cadviet.c...l=&fromsearch=1

Bác xem giúp e lỗi này luôn với.Thanks.
  • 0

#13 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 14 October 2011 - 03:24 PM

Có princ ở cuối bác ah.e gửi lisp này lên các bác xem giúp:
Chân thành cảm ơn trước.

Hề hề hề,
Cái lisp này mình đoán có nhẽ là của bác ketxu thì phải.
Mình không rành lắm về các hàm (vla- ......)
Tuy nhiên đọc thì thấy và hiểu ra lờ mờ rằng cái lỗi là do hàm sau

(redraw ent 4)
Hàm này nhận đối số là entity name chứ không phải vla-object.
Vậy nên bạn cần phải bổ sung:
(setq ent (vlax-vla-object->ename ent))
vào phía trên dòng code (redraw ent 4).
Chúc bạn vui.
PS:
Do lần trước bạn nói lisp vẫn chạy ra kết quả nên mình không rõ mới đoán mò, thực chất lisp này chạy sẽ không hết do gập lỗi và nó ngừng tại đây. bằng chứng là nếu bạn undo sẽ thấy CAD nhắc bạn phải thêm lệnh undo end.
bạn nên chú ý điều này khi check lisp nhé.
  • 2
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#14 minhngockt

minhngockt

    biết vẽ pline

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

Đã gửi 04 March 2012 - 02:49 AM

Nhờ các bác viết hộ em lisp cắt đường thẳng, em có một đường thẳng line hay pline có kích thước bất kỳ, bây giờ em muốn cắt đường thẳng đó đi 1 đoạn, chỉ cần pick chuột vào đầu hoặc cuối đoạn thẳng đó nó sẽ cắt đi giá trị mình cần cắt, và giá trị mình cần cắt đó sẽ giữ nguyên khi cần cắt đường thẳng tiếp theo. Em cảm ơn các bác rất nhiều
  • 0

#15 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 04 March 2012 - 10:06 AM

Nhờ các bác viết hộ em lisp cắt đường thẳng, em có một đường thẳng line hay pline có kích thước bất kỳ, bây giờ em muốn cắt đường thẳng đó đi 1 đoạn, chỉ cần pick chuột vào đầu hoặc cuối đoạn thẳng đó nó sẽ cắt đi giá trị mình cần cắt, và giá trị mình cần cắt đó sẽ giữ nguyên khi cần cắt đường thẳng tiếp theo. Em cảm ơn các bác rất nhiều

Đây bạn!

;Doan Van Ha - CADViet.com - Ngay 04-03-2012
;Muc dich: Cat 1 phan Line/Pline tinh tu diem dau/cuoi.
(defun C:HA( / osm cmd kc pt ss obj pd pc len)
(command "undo" "be")
(setq osm (getvar "osmode") cmd (getvar "cmdecho"))
(vl-load-com)
(setq kc (getreal "\nNhap khoang cach can cat bot: "))
(while
(and
(setvar "osmode" 1)
(setq pt (getpoint "\nChon diem dau hoac cuoi cua Line/Pline: ")))
(setvar "osmode" 0)
(setq ss (ssget pt '((0 . "*LINE"))))
(setq obj (vlax-ename->vla-object (ssname ss 0)))
(setq pd (vlax-curve-getStartPoint obj))
(setq pc (vlax-curve-getEndPoint obj))
(setq len (vlax-curve-getDistAtPoint obj pc))
(if (< kc len)
(if (equal pt pd 1E-8)
(progn
(setq p (vlax-curve-getPointAtDist obj kc))
(command "break" (ssname ss 0) p pd))
(progn
(setq p (vlax-curve-getPointAtDist obj (- len kc)))
(command "break" (ssname ss 0) p pc)))
(princ "\nKhoang cach lon hon chieu dai.")))
(setvar "osmode" osm) (setvar "cmdecho" cmd)
(command "undo" "end")
(princ))

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


#16 minhngockt

minhngockt

    biết vẽ pline

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

Đã gửi 04 March 2012 - 11:15 AM

Em cảm ơn bác Hà, chúc bác ngày nghỉ cuối tuần vui vẻ
  • 0

#17 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 04 March 2012 - 11:31 AM

:)
Chỉ cần thế này thôi :

(defun c:cat()(command "lengthen" "DE"))
Có nghĩa là hãy dùng giá trị âm trong lệnh Lengthen -> Delta nếu muốn cắt, và + nếu muốn thêm. Giá trị này tất nhiên sẽ được CAD lưu giữ cho lần tiếp theo
  • 3

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


#18 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 04 March 2012 - 11:41 AM

:)
Chỉ cần thế này thôi :


(defun c:cat()(command "lengthen" "DE"))
Có nghĩa là hãy dùng giá trị âm trong lệnh Lengthen -> Delta nếu muốn cắt, và + nếu muốn thêm. Giá trị này tất nhiên sẽ được CAD lưu giữ cho lần tiếp theo

Ồ! Thằng "lengthen" này còn có chức năng hay ghê mà lâu nay đâu có biết. Thank Ket nhiều!
  • 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.