Đến nội dung


Hình ảnh
- - - - -

[Nhờ viết Lsp] nhờ các cao thủ viết hộ cái lsp mir-tag ghi chú thép trong ASD


  • Please log in to reply
37 replies to this topic

#1 hantinh

hantinh

    biết lệnh attdef

  • Members
  • PipPipPipPipPipPip
  • 413 Bài viết
Điểm đánh giá: 44 (tàm tạm)

Đã gửi 30 November 2011 - 11:29 AM

hiện tại mình đang bị vướng mắc khi viết lsp để mir thằng này. viết mãi mà hok thành công. dù có người đã chi đường đi rồi nhưng làm vẫn hok có được. Hik. Viết rồi nhưng mà nó hok có chạy.

Còn đây là gợi ý của cao thủ đó:


[b][color=#FFD700]Tập 1 : bí danh là gì?[/color][/b]
Command: LIST
Select objects:
[color=#FFD700]RBCRENBARSHAPEDESC[/color] (tên đối tượng)
Layer: [color=#FFD700]"AutoCAD_Structural_Detailing_Description of bar shape"[/color] (lớp chưa đối tượng)
Space: Model space
Handle = bb74
Group = REVITGROUP

... "Mơ cũng thấy mờ mờ..."

Truy tìm đối tượng, lisp cho nó mấy dòng
(defun C:Ob (/ ename ename1 ename2)
(setq ename (entsel "\n Chon doi tuong :")
ename1 (car ename)
ename2 (entget ename1)
)
)

và kết quả trả về của lisp
(
(-1 . <[color=#FF0000]Entity name: 7ec46f20[/color]>)
(0 .[color=#FFD700]"RBCRENBARSHAPEDESC"[/color])
(5 . "BB74")
(102 . "{ACAD_REACTORS")
(330 . <[color=#FF0000]Entity name: 7ec46fb0[/color]>)
(102 . "}")
(330 . <[color=#FF0000]Entity name: 7ec41cf8[/color]>)
(100 ."AcDbEntity")
(67 . 0)
(410 . "Model")
(8 .[color=#FFD700]"AutoCAD_Structural_Detailing_Description of bar shape"[/color])
(100 . "RbcrEntity")
(90 . 1)
(340 . <[color=#FF0000]Entity name: 7ec46f18[/color]>)
(100 . "REPREZENTATION")
(90 . 1)
(1 ."RBCR_DEFAULT")
(100 . "REPREZENTATION")
(90 . 1)
(1 . "RBCR_DEFAULT")
(100 ."REPREZENTATION")
(90 . 1)
(1 . "RBCR_EDIT")
(100 . "RbcrObjectClientEntity")
(90 . 1)
(100 . "RbcrEnDescription")
(90 . 1)
(100 . "RbcrEnBarDescBase")
(90 .1)
(100 . "RbcrEnBarShapeDesc")
(90 . 1)
)

... "D&#7919; li&#7879;u n&#224;o c&#7847;n t&#237;m? X&#7917; l&#253; n&#243; ra sao? ..."

Truy ti&#7871;o b&#7857;ng Dictionaries

(defun C:Odj (/ maindict adict Db) ;
(setq maindict (namedobjdict))
(while
(setq adict (dictnext maindict (not adict)))
(princ (cdr (assoc -1 adict)))
(if
(not (cdr (assoc 0 adict)))
(setq db "Unknown")
(setq db (cdr (assoc 0 adict)))
)
(princ (strcat "\t(type = " Db ")\n"))
)
(princ)
)

V&#224; k&#7871;t qu&#7843; ph&#7843;n h&#7891;i :

< Entity name: 7ec4ac68> (type = DICTIONARY)
< Entity name: 7ec4acd0> (type = DICTIONARY)
< Entity name: 7ec49c00> (type = DICTIONARY)
< Entity name: 7ec49df8> (type = DICTIONARY)
< Entity name: 7ec4acb8> (type = DICTIONARY)
< Entity name: 7ec4acc8> (type = DICTIONARY)
< Entity name: 7ec4ac70> (type = ACDBDICTIONARYWDFLT)
< Entity name: 7ec49d68> (type = DICTIONARY)
< Entity name: 7ec49d58> (type = DICTIONARY)
< Entity name: 7ec49cc8> (type = DICTIONARY)
< Entity name: 7ec4af30> (type = DICTIONARY)
< Entity name: 7ec49918> (type = RBCSCRSECDICTIONARY)
< Entity name: 7ec498b8> (type = RBCSMATERIALDICTIONARY)
< Entity name: 7ec4ad78> (type = ___RBCTMainRootDictionary)
< Entity name: 7ec10ce8> (type = Unknown)
< Entity name: 7ec49328> (type = RBCTALTERNATIVESTORAGE)
< Entity name: 7ec10198> (type = Unknown)
< Entity name: 7ec10cf0> (type = DICTIONARY)
< Entity name: 7ec498d0> (type = DICTIONARY)
< Entity name: 7ec49598> (type = Unknown)

... "R&#7889;i r&#7889; r&#7889;i, b&#7903;i d&#7919; li&#7879;u ..."

b&#237; danh n&#243; &#273;&#226;y:
[size=4][b][color=#FFD700](340 . <Entity name: 7ec46f18>) [/color][/b][/size]

;=====================================================

[b][color=#FFD700]T&#7853;p 2 : D&#7845;u v&#7871;t mong manh[/color][/b]

Sau khi c&#243; t&#234;n &#273;&#7889;i t&#432;&#7907;ng, gi&#7901; l&#224; l&#250;c truy t&#236;m l&#253; l&#7883;ch c&#7911;a n&#243;
ch&#232;n th&#234;m 2 d&#242;ng m&#227; v&#224;o ch&#432;&#417;ng tr&#236;nh tr&#234;n

[b][color=#FFD700]ename3 (cdr (assoc 340 ename2))[/color][/b]
[b]ename4 (entget ename3) [/b]


v&#224; truy v&#7845;n l&#253; l&#7883;ch c&#7911;a n&#243;, ta &#273;&#432;&#7907;c s&#7889; li&#7879;u sau :

(
(-1 . <Entity name: 7ec42f18>)
(0 ."RBCRREBARSHAPEDESC")
(5 . "BB73")
(102 . "{ACAD_REACTORS")
(330 . <Entity name: 7ec49770>)
(102 . "}")
(330 . <Entity name: 7ec49770>)
(100 ."RbcrObject")
(90 . 4)
(100 . "LONG")
(90 . 1)
(90 . 0) (100 ."ENTITYSOFTPOINTER")
(90 . 1)
(330 . <Entity name: 0>)
(100 ."ENTITYSOFTPOINTER")
(90 . 1)
(90 . 0)
(100 . "STATUS_ATTR")
(90 . 1)
(90 . 0)
(100 . "RbcrReDescription")
(90 . 2)
(340 . <Entity name: 7ec42f10>)
(100 ."SCALE")
(90 . 1)
(40 . 0.05)
(70 . 1)
(100 . "RbcrReCompoundTablet")
(90 . 1)
(100 . "RbcrObjectVectorClient")
(90 . 1)
(70 . 1)
(100 ."RbcrObjectPointerLink")
(90 . 1)
(340 . <Entity name: 7ec42f08>)
(100 ."SOFTPOINTER")
(90 . 1)
(330 . <Entity name: 7ec42ef0>)
(100 ."RbcrReBarDescBase")
(90 . 2)
(70 . 3)
(100 . "POINT3D")
(90 . 1)
[color=#FFD700](10 792.5 634.0 0.0)[/color] [color=#FF0000]'point 01[/color]
(100 . "POINT3D")
(90 . 1)
[color=#FFD700](10 792.5 725.806 0.0)[/color] [color=#FF0000]'point 02[/color]
(100 . "POINT3D")
(90 . 1)
[color=#FFD700](10 992.5 725.806 0.0)[/color] [color=#FF0000]'point 03[/color]
(100 . "LONG")
(90 . 1) (90 . 1)
(100 ."DOUBLE")
(90 . 1)
(40 . 0.0)
(100 . "RbcrReBarShapeDesc")
(90 . 3)
(0 ."RBCRDESCSHAPEBAR")
(100 . "RbctBaseStyle")
(90 . 1)
(1 . "Style_1")
(100 ."RbcrDescShapeBar")
(90 . 2)
(100 . "STYLDESC_POS")
(90 . 2)
(40 . 5.0)
(41 .2.5)
(1 . "style1")
(90 . 0)
(91 . 0)
(92 . 0)
(93 . 0)
(94 . 2)
(100 . "STYLDESC_TEXT")
(90 . 2)
(40 . 2.5)
(41 . 1.0)
(42 . 0.0)
(1 . "style1")
(90 . 2)
(100 . "STYLDESC_ADDLINE")
(90 . 1)
(40 . 2.0)
(90 . 3)
(91 . 0)
(1 . "")
(100 . "STYLDESC_REINSHAPE")
(90 . 3)
(40 . 2.5)
(41 . 2.5)
(90 . 0)
(91 . 0)
(100 . "STYLDESC_ELEM")
(90 . 7)
(90 . 1)
(91 . 0)
(92 . 1)
(93 . 0)
(94 . 0)
(95 . 0)
(96 . 0)
(97 . 0)
(98 . 0)
(99 . 0)
(100 . "")
(101 . "")
(1 ."{%num}{%%c}{%dia}") ' c&#225;i n&#224;y quen qu&#225; ph&#7843;i kh&#244;ng [img]http://arttool.vn/images/smilies/biggrin.gif[/img]
(100 . "BARTRACE")
(90 . 1)
(90 . 1)
(100 . "LONG")
(90 . 1)
(90 . 0)
)
[img]http://arttool.vn/images/error.gif[/img] This image has been resized. Click this bar to view the full image.
[img]http://upload.arttool.vn/images/seal01.jpg[/img]

[color=#FF0000]n&#243; &#273;&#226;y :[/color]

[size=4][b][color=#FFD700](10 792.5 634.0 0.0)[/color][/b][/size]
[b](10 792.5 725.806 0.0)[/b]
[b](10 992.5 725.806 0.0) [/b]

[b][color=#FFD700]T&#7853;p 3 : L&#7897; g&#243;t Achilles[/color][/b]
&#272;i&#7873;u c&#7847;n &#273;&#227; l&#7897; ra 3 point &#273;&#432;&#7907;c x&#225;c &#273;&#7883;nh b&#7903;i c&#225;c th&#244;ng s&#7889;

(10 792.5 634.0 0.0)
(10 792.5 725.806 0.0)
(10 992.5 725.806 0.0)

Gi&#7901; ch&#7881; c&#242;n vi&#7879;c l&#234;n [size=4][b][color=#FFD700]pa truy b&#7855;t v&#224; x&#7917; l&#253; obiect[/color][/b][/size]

[b][color=#FFD700]1-[/color][/b] Style reinforcement Description text appearance chuy&#7875;n sang d&#7841;ng placed between

[b][color=#FFD700]2-[/color][/b] B&#7855;t ch&#237;nh x&#225;c object c&#243; ch&#7885;n l&#7885;c
=> b&#7857;ng c&#7863;p (0 . "RBCRENBARSHAPEDESC")

[b][color=#FFD700]3-[/color][/b] L&#7885;c v&#224; s&#7917; l&#253; p3 tr&#432;&#7899;c
=>p3 (nth 50 ename3)

[b][color=#FFD700]4-[/color][/b] T&#7841;o p4 l&#224; &#7843;nh c&#7911;a p3 qua tr&#7909;c p1,p2
(if (> x3 x2)
(setq x4 (- x2 kcach))
(setq x4 (+ x2 kcach))
)

[b][color=#FFD700]5-[/color][/b] C&#224;i v&#224;o c&#417; s&#7903; d&#7919; li&#7879;u p3 th&#224;nh p4
=>ename5 (subst p4 p3 ename4)

[b][color=#FFD700]6-[/color][/b] Ho&#224;n thi&#7879;n d&#7919; li&#7879;u tr&#234;n
=>ename1 (append enam1 neame5)

[b][color=#FFD700]7-[/color][/b] Update datbase
=>(entmod ename1)

[b][color=#FFD700]8-[/color][/b] Thu d&#7885;n hi&#7879;n tr&#432;&#7901;ng
Miror (0 ."RBCRREBARSHAPEDESC") qua tr&#7909;c p1-p2

[b][color=#FFD700]9-[/color][/b] Ch&#244;n trong l&#242;ng bi&#7875;n (M&#227; h&#243;a d&#7919; li&#7879;u lsp)

  • 0

#2 hantinh

hantinh

    biết lệnh attdef

  • Members
  • PipPipPipPipPipPip
  • 413 Bài viết
Điểm đánh giá: 44 (tàm tạm)

Đã gửi 30 November 2011 - 01:25 PM

còn đây là cai lsp mà minh viết nhưng khi load vào thì nó báo là ít đối số quá hem có hiểu tại sao luôn. Hik


(defun c:ob (/ ename ename1 ename2 ename3 ename4 ename5
x1 x2 x3 x4 y1 y2 y3 y4 p1 p2 p3 p4)
(setq ename (entsel "\nchon doi tuong:")
ename1 (car ename)
ename2 (entget ename1)
ename3 (cdr (assoc 340 ename2))
ename4 (entget ename3)
);end setq
(ssget
(
(-4. "or")
(0 . "RBCRENBARSHAPEDESC")
(0 . "RBCR_ENDE_BARDDESC")
(-4 . "or>")
)
p3(nth 50 ename3)
p2(nth 47 ename3)
p1(nth 44 ename3)
x1(car
(nth 44 ename3)
)
x2(cadr
(nth 47 ename3)
)
x3(cadr
(nth 50 ename3)
)
(if (>x3 x2)
(setq x4(- x2 kcach))
(setq x4(+ x2 kcach))
)
(setq
ename5(subst p4 p3 ename4)
ename1(append ename1 ename5)
(entmod ename1)
)
(command:_.mirror
(ssget
(
(-4. "or")
(0 . "RBCRENBARSHAPEDESC")
(0 . "RBCR_ENDE_BARDDESC")
(-4 . "or>")
)
)
)
(princ)
)

  • 0

#3 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 30 November 2011 - 01:39 PM

Bạn tách dấu / ra khỏi ename ở dòng đầu tiên đã :
(defun c:ob (/ ename
Mong bạn sửa lại cách post bài cho phù hợp nội quy box
  • 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


#4 hantinh

hantinh

    biết lệnh attdef

  • Members
  • PipPipPipPipPipPip
  • 413 Bài viết
Điểm đánh giá: 44 (tàm tạm)

Đã gửi 01 December 2011 - 01:06 AM

đã sửa theo gợi ý của bạn nhưng khi load vao thì no báo là lỗi dữ liệu đầu vào
  • 0

#5 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 01 December 2011 - 06:56 AM

đã sửa theo gợi ý của bạn nhưng khi load vao thì no báo là lỗi dữ liệu đầu vào

Ít nhất là bạn bị lỗi ở 2 dòng code dưới đây:
(if (>x3 x2)
(command:_.mirror (ssget ((-4. "or") (0 . "RBCRENBARSHAPEDESC") (0 . "RBCR_ENDE_BARDDESC") (-4 . "or>")))
Dòng 1: không thể viết >x3 liền nhau như thế, và trước (( phải có dấu '.
Dòng 2: lệnh mirror phải viết đủ kiểu thế này (command "_.mirror" ss "" p1 p2)
  • 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.


#6 hantinh

hantinh

    biết lệnh attdef

  • Members
  • PipPipPipPipPipPip
  • 413 Bài viết
Điểm đánh giá: 44 (tàm tạm)

Đã gửi 01 December 2011 - 10:09 AM

mình đã kiểm tra và sửa toàn bộ lỗi rồi nhưng mà nó báo khi thi hành lệnh là hok hiểu. Hik hok co hiểu tại sao luôn
còn đây là code mình đã sửa lại
 
(defun C:ccb (/ ename ename1 ename2 ename3 ename4 ename5
x1 x2 x3 x4 y1 y2 y3 y4 p1 p2 p3 p4)
(setq
ename (entsel "\n Chon doi tuong :")
ename1 (car ename)
ename2 (entget ename1)
ename3 (cdr (assoc 340 ename2))
ename4 (entget ename3)
);end setq
(ssget
'((-4 . "<or")
(0 . "RBCRENBARSHAPEDESC")
(0 . "RBCR_ENDE_BARDDESC")
(-4 . "or>")
)'
)
p3 (nth 50 ename3)
p2 (nth 47 ename3)
p1 (nth 44 ename3)
x1 (cadr
(nth 44 ename3)
)
x2 (cadr
(nth 47 ename3)
)
x3 (cadr
(nth 50 ename3)
)
(if (> x3 x2)
(setq x4 (- x2 kcach))
(setq x4 (+ x2 kcach))
)
(setq
ename5 (subst p4 p3 ename4)
ename1 (append enam1 neame5)
(entmod ename1)
)
(Command: "_.mirror" ss "" p1 p2)
(princ)
)



  • 0

#7 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 01 December 2011 - 10:20 AM

mình đã kiểm tra và sửa toàn bộ lỗi rồi nhưng mà nó báo khi thi hành lệnh là hok hiểu. Hik hok co hiểu tại sao luôn
còn đây là code mình đã sửa lại
'((-4 . "<or") (0 . "RBCRENBARSHAPEDESC") (0 . "RBCR_ENDE_BARDDESC") (-4 . "or>"))'
(Command: "_.mirror" ss "" p1 p2)


Sao bạn sửa máy móc quá vậy??? Tiếc là tôi không có mấy cái dạng đối tượng "RBCRENBARSHAPEDESC" và "RBCR_ENDE_BARDDESC" của bạn nên test không được và chỉ nói nguyên lý thôi, hơn nữa bạn cũng biết lisp nên hãy cố sửa cho mau lên tay.
1) Làm gì có cái dấu ' ở đằng sau?
2) Ở dòng 2 thì ss là tên tập hợp chọn của bạn, p1p2 là 2 điểm tạo thành đường mirror, cớ sao bạn lại bê nguyên xi???
  • 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.


#8 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 01 December 2011 - 10:23 AM

Mình k dùng ASD, nhưng nhìn qua đã thấy bạn đặt dấu );end setq sai chỗ khi vẫn còn đang gán biế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


#9 hantinh

hantinh

    biết lệnh attdef

  • Members
  • PipPipPipPipPipPip
  • 413 Bài viết
Điểm đánh giá: 44 (tàm tạm)

Đã gửi 03 December 2011 - 07:33 PM

sau khi chạy thử cái lsp mà mình đã viết ở trên thì nó bảo lỗi thiếu đối số tại điểm
SETQ: (SETQ ENAME5 (SUBST P4 P3 ENAME4)
ENAME1 (APPEND ENAM1 NEAME5) (ENTMOD ENAME1))

không hiểu tại sao lại bị vậy. mong các bạn giúp đỡ là tại sao?
  • 0

#10 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 03 December 2011 - 08:09 PM

mình đã kiểm tra và sửa toàn bộ lỗi rồi nhưng mà nó báo khi thi hành lệnh là hok hiểu. Hik hok co hiểu tại sao luôn
còn đây là code mình đã sửa lại
(setq
ename5 (subst p4 p3 ename4)
ename1 (append enam1 neame5)
(entmod ename1)
)

Chưa kết thúc hàm setq bằng ) , bạn đã mở ngoặc ( cho hàm entmod rồi nên bị lỗi
(setq
ename5 (subst p4 p3 ename4)
ename1 (append enam1 neame5)
) ;;;; -> Kết thúc setq
(entmod ename1)
  • 1

#11 hantinh

hantinh

    biết lệnh attdef

  • Members
  • PipPipPipPipPipPip
  • 413 Bài viết
Điểm đánh giá: 44 (tàm tạm)

Đã gửi 03 December 2011 - 10:56 PM

Tks mọi người đã giúp đỡ. h cái lsp đó đã chạy được rồi
  • 0

#12 hantinh

hantinh

    biết lệnh attdef

  • Members
  • PipPipPipPipPipPip
  • 413 Bài viết
Điểm đánh giá: 44 (tàm tạm)

Đã gửi 04 December 2011 - 07:10 PM

hiện h cái lệnh chọn đối tượng của mình chỉ chon được có 1 đối tượng. mình phải đổi lệnh như thế nào để có thể chọn được nhiều đối tượng cùng 1 lúc
  • 0

#13 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 04 December 2011 - 07:20 PM

hiện h cái lệnh chọn đối tượng của mình chỉ chon được có 1 đối tượng. mình phải đổi lệnh như thế nào để có thể chọn được nhiều đối tượng cùng 1 lúc


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


#14 hantinh

hantinh

    biết lệnh attdef

  • Members
  • PipPipPipPipPipPip
  • 413 Bài viết
Điểm đánh giá: 44 (tàm tạm)

Đã gửi 04 December 2011 - 07:42 PM


a

cái lsp do mình tự viết nên hem có cái đó nên mình đang cần khai báo lại thế nào để có thể chọn được nhiều đối tượng cùng 1 lúc mà. cái lsp mình viết ở trên
  • 0

#15 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 04 December 2011 - 07:43 PM

cái lsp do mình tự viết nên hem có cái đó nên mình đang cần khai báo lại thế nào để có thể chọn được nhiều đối tượng cùng 1 lúc mà. cái lsp mình viết ở trên


Để chọn nhiều đối tượng: bạn dùng hàm (ssget...) chứ đừng dùng hàm (entsel). Còn cách hay nhất là bạn upload file lisp lên để dễ chỉ cụ thể cho bạn. Dạo này CADViet bị sao ấy, tôi viết đầy đủ, hoá ra đọc lại chỉ có mỗi chữ "a".
  • 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.


#16 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 04 December 2011 - 10:04 PM

cái lsp do mình tự viết nên hem có cái đó nên mình đang cần khai báo lại thế nào để có thể chọn được nhiều đối tượng cùng 1 lúc mà. cái lsp mình viết ở trên

:angry2:
  • 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


#17 hantinh

hantinh

    biết lệnh attdef

  • Members
  • PipPipPipPipPipPip
  • 413 Bài viết
Điểm đánh giá: 44 (tàm tạm)

Đã gửi 04 December 2011 - 11:09 PM

đây là cái lsp mà mình tự viết

(defun C:ccb (/ ename ename1 ename2 ename3 ename4 ename5
x1 x2 x3 x4 y1 y2 y3 y4 p1 p2 p3 p4)
(setq
ename (entsel "\n Chon doi tuong :")
ename1 (car ename)
ename2 (entget ename1)
ename3 (cdr (assoc 340 ename2))
ename4 (entget ename3)
)
(ssget
'((-4 . "<or")
(0 . "RBCRENBARSHAPEDESC")
(0 . "RBCR_ENDE_BARDDESC")
(-4 . "or>")
)
)
p3 (nth 50 ename3)
p2 (nth 47 ename3)
p1 (nth 44 ename3)
x1 (cadr
(nth 44 ename3)
)
x2 (cadr
(nth 47 ename3)
)
x3 (cadr
(nth 50 ename3)
)
(if (> x3 x2)
(setq x4 (- x2 kcach))
(setq x4 (+ x2 kcach))
)
(setq
ename5 (subst p4 p3 ename4)
ename1 (append enam1 neame5)
);;;
(entmod ename1)
)
(Command: "_.mirror" ss "")
(princ)
)


nó đã chạy được rồi nhưng đang co van đề là nó đang báo sai đối tượng. mình đang phải thử nghiệm lại cả cái temp của asd nữa xem có lỗi về khai báo đối tượng ji hok nữa
@ketxu: đã có lời cảm ơn ae giúp đỡ rồi mà sao bạn lại :angry2: ????????????????????????
  • 0

#18 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 04 December 2011 - 11:22 PM

đây là cái lsp mà mình tự viết


(defun C:ccb (/ ename ename1 ename2 ename3 ename4 ename5
x1 x2 x3 x4 y1 y2 y3 y4 p1 p2 p3 p4)
(setq
ename (entsel "\n Chon doi tuong :")
ename1 (car ename)
ename2 (entget ename1)
ename3 (cdr (assoc 340 ename2))
ename4 (entget ename3)
)
(ssget
'((-4 . "<or")
(0 . "RBCRENBARSHAPEDESC")
(0 . "RBCR_ENDE_BARDDESC")
(-4 . "or>")
)
)
p3 (nth 50 ename3)
p2 (nth 47 ename3)
p1 (nth 44 ename3)
x1 (cadr
(nth 44 ename3)
)
x2 (cadr
(nth 47 ename3)
)
x3 (cadr
(nth 50 ename3)
)
(if (> x3 x2)
(setq x4 (- x2 kcach))
(setq x4 (+ x2 kcach))
)
(setq
ename5 (subst p4 p3 ename4)
ename1 (append enam1 neame5)
);;;
(entmod ename1)
)
(Command: "_.mirror" ss "")
(princ)
)


nó đã chạy được rồi nhưng đang co van đề là nó đang báo sai đối tượng. mình đang phải thử nghiệm lại cả cái temp của asd nữa xem có lỗi về khai báo đối tượng ji hok nữa
: đã có lời cảm ơn ae giúp đỡ rồi mà sao bạn lại :angry2: ????????????????????????


Có 2 thắc mắc với bạn:
1). Lúc đầu bạn hỏi cách chọn nhiều đối tượng, bây giờ bạn lại nói nó báo sai đối tượng. Vậy tóm lại là sao?
2). Chương trình mà bạn chép lên đây không thể chạy được, vì nó sai cú pháp:
- ss là gì thì bạn chưa setq.
- Mirror mà không có 2 điểm làm gương thì sao mirror được?
- Trước p3 bạn cũng chưa setq.
Không biết còn lỗi nào không nữa...
  • 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.


#19 hantinh

hantinh

    biết lệnh attdef

  • Members
  • PipPipPipPipPipPip
  • 413 Bài viết
Điểm đánh giá: 44 (tàm tạm)

Đã gửi 04 December 2011 - 11:43 PM


Có 2 thắc mắc với bạn:
1). Lúc đầu bạn hỏi cách chọn nhiều đối tượng, bây giờ bạn lại nói nó báo sai đối tượng. Vậy tóm lại là sao?
2). Chương trình mà bạn chép lên đây không thể chạy được, vì nó sai cú pháp:
- ss là gì thì bạn chưa setq.
- Mirror mà không có 2 điểm làm gương thì sao mirror được?
- Trước p3 bạn cũng chưa setq.
Không biết còn lỗi nào không nữa...


cái đầu là mình đang muốn chuyển nó để(chọn) đánh dấu nhiêu đối tượng. khi mình chạy thử thi nó báo lỗi đối tượng. mình đã hỏi lại bác chỉ dẫn cho minh thi f bác ấy bảo là có thể là do lỗi đối tượng khi minh gán trong templet của asd nó chưa đúng cũng có thể gây ra lỗi trên nên mình đang tính thaddoooir hàm để có thể chọn nhiều đối tượng rồi làm lại cái temp khác để chạy thử nghiệm lại xem là do lỗi ở đâu và do thàng nào. 1 mặt thì kiểm tra lai temp của asd do mình tự tay làm và có hướng dẫn tạo nó, mặt khác kiểm tra lại lsp mình viết có lỗi ji hem. nếu hok lần ra được thì nhờ ae chỉ giúp để sửa cho nó hòn thiện đê minh dùng và cho 1 số ae trong nhóm làm việc của minh cùng sử dụng để sửa những cái hok giong s với t.kế của VN mà
  • 0

#20 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 December 2011 - 06:27 AM

đây là cái lsp mà mình tự viết


(defun C:ccb (/ ename ename1 ename2 ename3 ename4 ename5
x1 x2 x3 x4 y1 y2 y3 y4 p1 p2 p3 p4)
(setq
ename (entsel "\n Chon doi tuong :")
ename1 (car ename)
ename2 (entget ename1)
ename3 (cdr (assoc 340 ename2))
ename4 (entget ename3)
)
[color=#ff0000] (ssget[/color]
[color=#ff0000] '((-4 . "<or")[/color]
[color=#ff0000] (0 . "RBCRENBARSHAPEDESC")[/color]
[color=#ff0000] (0 . "RBCR_ENDE_BARDDESC")[/color]
[color=#ff0000] (-4 . "or>")[/color]
[color=#ff0000] )[/color]
[color=#ff0000] )[/color]
[color=#ff0000] p3 (nth 50 ename3)[/color]
[color=#ff0000]p2 (nth 47 ename3)[/color]
p1 (nth 44 ename3)
x1 (cadr
(nth 44 ename3)
)
x2 (cadr
(nth 47 ename3)
)
x3 (cadr
(nth 50 ename3)
)
(if (> x3 x2)
(setq x4 (- x2 kcach))
(setq x4 (+ x2 kcach))
)
(setq
ename5 (subst p4 p3 ename4)
ename1 (append enam1 neame5)
);;;
(entmod ename1)
)
(Command: "_.mirror" ss "")
(princ)
)


nó đã chạy được rồi nhưng đang co van đề là nó đang báo sai đối tượng. mình đang phải thử nghiệm lại cả cái temp của asd nữa xem có lỗi về khai báo đối tượng ji hok nữa
@ketxu: đã có lời cảm ơn ae giúp đỡ rồi mà sao bạn lại :angry2: ????????????????????????

Dòng màu đỏ trên là đoạn mà bạn viết không đúng cú pháp
Bạn đóng ngoặc cho hàm ssget ) thì mở ngoặc setq ( cho các biến p1, p2, p3 ở dưới.
Chưa setq cho biến ss.
Kết quả là thừa dấu )
Số lượng ngoặc ( bằng số lượng ) trong 1 hàm
  • 0