Chuyển đến nội dung
Diễn đàn CADViet

t031285

Thành viên
  • Số lượng nội dung

    90
  • Đã tham gia

  • Lần ghé thăm cuối

Cộng đồng

-1 (hơi kém)

About t031285

  • Cấp bậc
    biết vẽ spline

Khách truy cập Tiểu sử gần đây

3.181 chế độ xem tiểu sử
  1. t031285

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

    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) ) ) )
×