Đến nội dung


Hình ảnh
* * * - - 8 Bình chọn

Viết lisp theo yêu cầu [phần 2]


  • Chủ đề bị khóa Chủ đề bị khóa
3783 replies to this topic

#3601 hakhoailang

hakhoailang

    biết lệnh rotate

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

Đã gửi 09 June 2011 - 05:02 PM

Của bạn :

(defun c:kc (/ kc ent A) 
(vl-load-com)
(setq kc (rtos (distance (setq A (getpoint "\nDiem A :"))(getpoint A "\nDiem B :")) 2 2))
(if (setq ent (car(entsel "\n Chon text sua :")))
(vla-put-TextString (vlax-ename->vla-object ent) kc)
(vla-addtext (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))) kc
(vlax-3d-point (getpoint "\n Diem dat text :")) (* (getvar "dimtxt")(getvar "dimscale")))
))

bác ơi em làm như hướng dẫn đến chỗ chọn điểm đặt text và em kick vào 1 điểm bất kì nó báo là " Diem dat text :#<VLA-OBJECT IAcadText2 3cefc134> "
thế là bị lỗi gì hả bác.
và cho em hỏi tí :
trong no va em vẽ trắc dọc cao 200 dài 1000 thế thì làm sao đo the tỷ lệ này dc bác nhỉ


thank bác nhiều
  • 0

#3602 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 09 June 2011 - 05:20 PM

bác ơi em làm như hướng dẫn đến chỗ chọn điểm đặt text và em kick vào 1 điểm bất kì nó báo là " Diem dat text :#<VLA-OBJECT IAcadText2 3cefc134> "
thế là bị lỗi gì hả bác.

và cho em hỏi tí :
trong no va em vẽ trắc dọc cao 200 dài 1000 thế thì làm sao đo the tỷ lệ này dc bác nhỉ



thank bác nhiều

Đỏ : chẳng bị lỗi gì cả. Việc bạn cần là ghi ra khoảng cách, nó làm được rồi thì quan tâm gì đến nó chi :). Còn bạn thích không có dòng đấy thì thêm dòng (princ) vào trước dấu ngoặc cuối cùng.
Xanh : không thể hiểu nổi bạn nói gì
Tím : bạn nhấn Thank là được rồi.
  • 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


#3603 3d.decor

3d.decor

    biết vẽ arc

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

Đã gửi 09 June 2011 - 08:38 PM

có bác nào biết hoặc có lisp stretch block
nhưng chéo lên trên không
hôm trước em có lấy trên diễn đàn
mà giờ cần dùng tìm không thấy
bác nào co cho lai hoặc cho duwòng dẫn em cám ơn nhiều
  • 0

#3604 phamngoctukts

phamngoctukts

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1107 Bài viết
Điểm đánh giá: 696 (tốt)

Đã gửi 09 June 2011 - 10:15 PM

có bác nào biết hoặc có lisp stretch block
nhưng chéo lên trên không
hôm trước em có lấy trên diễn đàn
mà giờ cần dùng tìm không thấy
bác nào co cho lai hoặc cho duwòng dẫn em cám ơn nhiều

Bạn dùng thử cái này. Bài số #1719: http://www.cadviet.c...c=13203&st=1700
BS: Bạn dùng code ở bài #1756 thì không bị lỗi nhé.
  • 1
Tất cả vì sự phát triển của diễn đàn ...
Cám ơn đừng nói lời suông mà hãy nhấn Hình đã gửi!

#3605 tranhoangxd

tranhoangxd

    biết vẽ circle

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

Đã gửi 10 June 2011 - 10:20 AM

Theo mình nghĩ là khó !

kiêu như lệnh scale ấy bác, hay nhiêu lệnh khác cũng thế mà
hay có bác nào viết hộ cho em líp liên quan đến lệnh move ko thôi cũng đc
viết lisp kiểu nào mà nó move giông bằng khoảng cách của lệnh move trước đó
cảm ơn các bác nhiều
  • 0

#3606 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 10 June 2011 - 11:14 AM

kiêu như lệnh scale ấy bác, hay nhiêu lệnh khác cũng thế mà
hay có bác nào viết hộ cho em líp liên quan đến lệnh move ko thôi cũng đc
viết lisp kiểu nào mà nó move giông bằng khoảng cách của lệnh move trước đó
cảm ơn các bác nhiều

Khó mà giống thao tác lệnh move bình thường được :
(defun c:m ()
(if (not var) (setq var 100))
(setq tmp (getreal (strcat "Khoang cach move < "(rtos var 2 0) " > :")))
(if tmp (setq var tmp))
(command ".move" (ssget) "" "D" (polar '(0.0 0.0 0.0)(getangle "\nGoc move :" ) var))(princ))

  • 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


#3607 duy782006

duy782006

    PHẠM QUỐC DUY

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

Đã gửi 10 June 2011 - 02:17 PM

kiêu như lệnh scale ấy bác, hay nhiêu lệnh khác cũng thế mà
hay có bác nào viết hộ cho em líp liên quan đến lệnh move ko thôi cũng đc
viết lisp kiểu nào mà nó move giông bằng khoảng cách của lệnh move trước đó
cảm ơn các bác nhiều

Thử cái này xem. Lệnh MD
(defun lenhDM () 
(setq diemgocmovedattendaidekhoitrung (getpoint "\nDiem co so: "))
(setq diemdenmovedattendaidekhoitrung (getpoint diemgocmovedattendaidekhoitrung"\nDiem den: "))
(Princ))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun c:MD ()
(Prompt "\nChon cac doi tuong muon move")
(Setq doituongmove (Ssget))
(cond
((= diemgocmovedattendaidekhoitrung nil) (lenhDM))
((/= diemgocmovedattendaidekhoitrung nil))
)
(command ".move" doituongmove "" diemgocmovedattendaidekhoitrung diemdenmovedattendaidekhoitrung)
(Princ))

  • 0

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#3608 3d.decor

3d.decor

    biết vẽ arc

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

Đã gửi 10 June 2011 - 02:38 PM

Thử cái này xem. Lệnh MD

(defun lenhDM () 
(setq diemgocmovedattendaidekhoitrung (getpoint "\nDiem co so: "))
(setq diemdenmovedattendaidekhoitrung (getpoint diemgocmovedattendaidekhoitrung"\nDiem den: "))
(Princ))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun c:MD ()
(Prompt "\nChon cac doi tuong muon move")
(Setq doituongmove (Ssget))
(cond
((= diemgocmovedattendaidekhoitrung nil) (lenhDM))
((/= diemgocmovedattendaidekhoitrung nil))
)
(command ".move" doituongmove "" diemgocmovedattendaidekhoitrung diemdenmovedattendaidekhoitrung)
(Princ))

pro ơi thôi pro trót viết move thì viết nốt copy,rotare và scale đi
thanh pro
  • 0

#3609 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 10 June 2011 - 02:43 PM

Thử cái này xem. Lệnh MD

(defun lenhDM () 
(setq diemgocmovedattendaidekhoitrung (getpoint "\nDiem co so: "))
(setq diemdenmovedattendaidekhoitrung (getpoint diemgocmovedattendaidekhoitrung"\nDiem den: "))
(Princ))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun c:MD ()
(Prompt "\nChon cac doi tuong muon move")
(Setq doituongmove (Ssget))
(cond
((= diemgocmovedattendaidekhoitrung nil) (lenhDM))
((/= diemgocmovedattendaidekhoitrung nil))
)
(command ".move" doituongmove "" diemgocmovedattendaidekhoitrung diemdenmovedattendaidekhoitrung)
(Princ))

Lisp này.. lại quá đà. Ôm luôn cả Khoảng cách và Hướng luôn bác DUy ơi ??
  • 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


#3610 duy782006

duy782006

    PHẠM QUỐC DUY

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

Đã gửi 10 June 2011 - 02:57 PM

Lisp này.. lại quá đà. Ôm luôn cả Khoảng cách và Hướng luôn bác DUy ơi ??

Mình đoán ý yêu cầu thế mà. Có điều post lên mới thấy chưa có cho đặt lại 2 điểm. Sẽ sửa lại chút.

pro ơi thôi pro trót viết move thì viết nốt copy,rotare và scale đi
thanh pro

Scale, Rotate vốn đã tự lưu rồi.

*Sửa lại rồi đây. Nếu đã tồn tại 2 điểm chuẩn thì hỏi dùng lại hai điểm cũ nhé ừ thì enter ưng đổi thì gỏ D enter nó sẽ cho nhập lại hai điểm.
(defun lenhDM () 
(setq diemgocmovedattendaidekhoitrung (getpoint "\nDiem co so: "))
(setq diemdenmovedattendaidekhoitrung (getpoint diemgocmovedattendaidekhoitrung"\nDiem den: "))
(Princ))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun c:MD ()
(Prompt "\nChon cac doi tuong muon move")
(Setq doituongmove (Ssget))
(cond
((= diemgocmovedattendaidekhoitrung nil) (lenhDM))
((/= diemgocmovedattendaidekhoitrung nil) (setq candatlaihaidiemhaykhong (strcase (getstring "\nDung lai hai diem cu nhe: Dat lai/<Ok>")))
(cond
((/= candatlaihaidiemhaykhong "D"))
((= candatlaihaidiemhaykhong "D") (lenhDM))
)
)
)
(setq luubatdiem (getvar "osmode"))
(setvar "osmode" 0)
(command ".move" doituongmove "" diemgocmovedattendaidekhoitrung diemdenmovedattendaidekhoitrung)
(setvar "osmode"luubatdiem)
(Princ))

  • 0

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#3611 hvn8006

hvn8006

    biết vẽ arc

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

Đã gửi 10 June 2011 - 04:08 PM

Em đang cần một lisp tính diện tích của phần đã được hatch, mong các anh chị trong diễn đàn viết giùm e. e xin cảm ơn
  • 0
tiền và phụ nữ là lý do cho nhiều sai lầm trong đời!!!!!!!!

#3612 lenhatanh

lenhatanh

    biết vẽ polygon

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

Đã gửi 10 June 2011 - 04:19 PM

Nhờ các Bác chỉnh hộ em đoạn lisp sau: Em không biết tắt Menu 01 khi hiển thị menu 02...
tất cả các Files em gưi theo đường linh: http://www.mediafire.com/myfiles.php
Em xin cám ơn trước.
;-----------------------------------------------------------
(defun SC_DWG (/ AM)
(setq AM (ATOF (GET_TILE "scale")))
(setq AMO AM)
)
;-----------------------------------------------------------
(defun GE_DWG (/ GE)
(setq GE (GET_TILE "gesd"))
(setq GEO GE)

(cond
((= GEO "1") (MODE_TILE "ges" 0))
(T (MODE_TILE "ges" 1))
)
)
;-----------------------------------------------------------
(defun IS_DWG (/ ARE_STE)
(setq ARE_STE "island")
(setq ARE_STEO ARE_STE)
)
;-----------------------------------------------------------
(defun NO_DWG (/ ARE_STE)
(setq ARE_STE "nomal")
(setq ARE_STEO ARE_STE)
)
;-----------------------------------------------------------
(defun OT_DWG (/ ARE_STE)
(setq ARE_STE "outer")
(setq ARE_STEO ARE_STE)
)
;-----------------------------------------------------------
(defun PR_FIL (/ PRI_FIL)
(setq PRI_FIL (GET_TILE "exp"))
(setq PRI_FILO PRI_FIL)
(cond
((= PRI_FILO "1") (MODE_TILE "fn" 0) (MODE_TILE "pn" 1))
(T (MODE_TILE "fn" 1) (MODE_TILE "pn" 0))
)
)
;-----------------------------------------------------------
(defun SE_FIL ()
(MODE_TILE "del" 0)
(setq ITEM (ATOI (GET_TILE "dientich")))
)
;-----------------------------------------------------------
(defun DE_FIL ()
(REMOVELIST)
)
;-----------------------------------------------------------
(defun PR_DWG (/ PRI_STE)
(setq PRI_STE (GET_TILE "print"))
(setq PRI_STEO PRI_STE)
(cond
((= PRI_STEO "1")
(MODE_TILE "sodt" 0)
(MODE_TILE "xuat" 0))
(T
(MODE_TILE "sodt" 1)
(MODE_TILE "xuat" 1))
)
)
;-----------------------------------------------------------
(defun SO_DWG (/ NUMS)
(setq NUMS (ATOF (GET_TILE "sodt")))
(setq NUMSO NUMS)
(setq TRUNGNHAU 0)
(alert (rtos NUMSO))

(setq DCL_AREA (LOAD_DIALOG (strcat "muare" (rtos NUMSO 2 0) ".dcl")))
(if (not (new_dialog (strcat "muare" (rtos NUMSO 2 0)) DCL_AREA))
(progn (Restore) (exit))
)
(ACTION_TILE "cancel" "(unload_dialog dcl_area)")
(START_DIALOG)
(UNLOAD_DIALOG DCL_AREA)
)
;-----------------------------------------------------------
(defun Restore()
(setvar "BLIPMODE" Oldblp)
(setvar "CMDECHO" Oldech)
(setvar "PICKBOX" Oldpbx)
(setq *ERROR* Olderr)
)
;-----------------------------------------------------------
(defun C:Do-AS()

(setq DCL_AREA (LOAD_DIALOG "muare0.dcl"))
(if (not (new_dialog "muare0" DCL_AREA))
(progn (Restore) (exit))
)
(SET_TILE "nomal" "1")
(SET_TILE "island" "0")
(SET_TILE "outer" "0")
(SET_TILE "scale" "1000")

(MODE_TILE "pick_bound" 1)
(MODE_TILE "fn" 1)
(MODE_TILE "ges" 1)
(MODE_TILE "sodt" 1)

(ACTION_TILE "scale" "(SC_DWG)")
(ACTION_TILE "gesd" "(GE_DWG)")
(ACTION_TILE "nomal" "(NO_DWG)")
(ACTION_TILE "island" "(IS_DWG)")
(ACTION_TILE "outer" "(OT_DWG)")
(ACTION_TILE "pick_bound" "(PI_DWG)")
(ACTION_TILE "exp" "(PR_FIL)")
(ACTION_TILE "fn" "(NA_FIL)")
(ACTION_TILE "dientich" "(SE_FIL)")
(ACTION_TILE "del" "(DE_FIL)")
(ACTION_TILE "print" "(PR_DWG)")
(ACTION_TILE "sodt" "(SO_DWG)");;;;;;;;;;;;;;;;;;;;;;; (done_dialog)")
(ACTION_TILE "cancel" "(unload_dialog dcl_area)")
(START_DIALOG)
(UNLOAD_DIALOG DCL_AREA)
)

Bài viết đã được chỉnh sửa nội dung bởi ketxu: 10 June 2011 - 08:59 PM
Nhắc lenhatanh cho code vào trong thẻ code

  • 0

#3613 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 10 June 2011 - 04:30 PM

Nhờ các Bác chỉnh hộ em đoạn lisp sau: Em không biết tắt Menu 01 khi hiển thị menu 02...
tất cả các Files em gưi theo đường linh: http://www.mediafire.com/myfiles.php
Em xin cám ơn trước.

Hề hề hề, cái đường link bạn gửi nó dẫn tớ về tới nhà mình, hề hề hề.
Bạn gửi lại đường link khác nhé...
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#3614 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 10 June 2011 - 04:31 PM

Em đang cần một lisp tính diện tích của phần đã được hatch, mong các anh chị trong diễn đàn viết giùm e. e xin cảm ơn

Hề hề hề,
bạn chịu khó đọc tham khảo các bài phía trên nhé. Có ích cho bạn đấy...
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#3615 Hoangvulandscape

Hoangvulandscape

    biết zoom

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

Đã gửi 10 June 2011 - 04:33 PM

Hề hề hề,
Vậy là mình thành trâu chậm rồi. Các bác khác nhanh tay hơn. Dù sao đã trót thì phải trét nên mình cứ post cái mình đã làm để bạn xài thử và cho ý kiến nhé.

Với lisp này bạn tùy ý chọn vị trí đặt text sao cho đẹp cái ý của bạn.
Hề hề hề,....
Nếu bạn muốn gộp hai text trên thành một text thì bạn làm như sau:
Thay đoạn code:
(command "TEXT" p1 2 0 ten )
(setq p2 (getpoint "\n Chon diem dat dien tich vung"))
(command "TEXT" p2 2 0 (strcat (rtos dtch 2 6) " M2" ))

thành dòng code sau:
(command "TEXT" p1 2 0 (strcat ten ": " (rtos dtch 2 6) " M2"))
Chúc bạn vui


Cảm ơn bạn, đây thực sự là cái mình cần. Cảm ơn rất nhiều


Nhờ bạn kiểm tra lại xem, sao đôi lúc tính đúng, nhưng đôi lúc tính ko đúng (hình như diện tích bị giảm gần 1 nửa. Với lại chỉ cần 2 con số lẻ thôi và cho cỡ chữ lớn lên khoảng 10 lần dc ko
  • 0

#3616 latoidayvn

latoidayvn

    biết zoom

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

Đã gửi 11 June 2011 - 09:55 AM

Nhờ các bạn giúp mình 1 lenh lisp chuyển tất cả các đừơng thanh đường 3d với độ cao z giữ nguyên
Mình chỉ cần chuyển định dạng thôi
Mình cũng đã thử lisp 2d3d của bac Tue, nhưng mà ko được
Cám ơn trước
  • 0

#3617 3d.decor

3d.decor

    biết vẽ arc

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

Đã gửi 11 June 2011 - 01:03 PM

có pro nào có lisp vẽ cửa đẹp và chi tiết một chút
mình lấy lisp trong lisp co ban dành cho kiến trúc thì đơn giản và xấu quá
trước mình có thấy 1 lisp đẹp đẹp nhưng ngày đó chưa biết dùng
nay bác nào có share lại hoặc cho đường link cũng được
thank you
  • 0

#3618 hugo75

hugo75

    biết vẽ polygon

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

Đã gửi 11 June 2011 - 02:36 PM

E có nhờ viết 1 lisp lâu rồi không thấy ai giúp.Giờ mong các bác bớt thời gian viết giúp e.Nội dung tại trang này:
http://www.cadviet.c...c=13203&st=3540
  • 0

#3619 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 11 June 2011 - 10:12 PM

E có nhờ viết 1 lisp lâu rồi không thấy ai giúp.Giờ mong các bác bớt thời gian viết giúp e.Nội dung tại trang này:
http://www.cadviet.c...c=13203&st=3540

Lisp này nói thì dễ nhưng lại chẳng dễ chút nào. Bạn chỉ cho ví dụ 2 block có 1 thuộc tính, mình cũng chẳng mường tượng được luô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


#3620 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 11 June 2011 - 10:54 PM

Nhờ các bạn giúp mình 1 lenh lisp chuyển tất cả các đừơng thanh đường 3d với độ cao z giữ nguyên
Mình chỉ cần chuyển định dạng thôi
Mình cũng đã thử lisp 2d3d của bac Tue, nhưng mà ko được
Cám ơn trước

Hề hề hề,
Bạn hãy gửi bản vẽ mẫu lên nhé, trên đó thể hiện các đường ban đầu bạn có và các đường bạn muốn có sau khi chạy lisp.
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.