CAD路径偏移的lisp程序? cad的lisp程序大集合

581℃ AMBER

CAD路径偏移的lisp程序?cad的lisp程序大集合

CAD中用LISP程序实现批量偏移复制,并要求偏移好的线变色?

能说明输入什么样的参数

输出什么样的图形?

变色希望是什么效果的?

(setq cs (getvar "osmode"))

(setvar "osmode" 0 )

(setq n1 (getint "\n个数:"))

(setq d1 (getint "\n间距:"))

(setq ent1 (car (entsel "\n选取图元:")))

(setq p1 (getpoint "\n指定要偏移的那一侧上的点:"))

(setq n 1)

(repeat n1

(command "offset" d1 ent1 p1 "e" )

(setq ent1 (entget (entlast)))

(setq ent1 (subst (cons 62 n) (assoc 62 ent1) ent1 ))

(entmod ent1)

(setq n (1+ n))

(setq ent1 (entlast))

)

上面是基本意思,前提是原图形的颜色不是随层的,点选那一侧上的点时尽量远,因为这个点没有随着增加的线自动变化。

求一个cad lisp 双向偏移的代码

代码的两个问题

1,程序未将运行此命令前的OFFSET偏移值取出并于计算后还原;

2,未选择目标对象时,程序已运算出错,后面的将pickbox即选取框大小值还原部分未运算,所以无法还原选取框的大小。试试下面的代码吧:

(defun c:gg ( )

(if (setq obj (entsel "\n选择双向偏移对象: "))

(progn

(setq cm (getvar "cmdecho") of (getvar "offsetdist"))

(if (null (setq nf (getdist (strcat "\n偏移量: <" (rtos of 2 3) "> "))))

(setq nf of)

)

(setvar "cmdecho" 0) (setvar "offsetdist" nf) (vl-load-com)

(setq obj (vlax-ename->vla-object (car obj)))

(vla-offset obj nf) (vla-offset obj (* nf -1))

(setvar "offsetdist" of) (setvar "cmdecho" cm)

)

(princ "\n未选择偏移对象,程序退出.")

)

(princ)

)

cad的lisp编写能实现点的偏移功能吗

这样思考:

一个封闭的区域,它的边界总是可以找到 左侧 或 右侧,

你在OFFSET时 不用SSGET,用entsel 会得到一个ENT 同时 也可以得到一个你指向的点

你利用这个点,找其右侧微小距离处的一个点,作为OFFSET的偏移点,那么得到的结果是:

1 如果你在Entsel时 点选的是封闭区的左侧,那么这个偏移是向内偏移

2 相反 如果你在Entsel时 点选的是封闭区的右侧,那么这个偏移是向外偏移

以上说法你明白了吗?

cad中可画任意位置,任意方向的指北针的LISP程序

(defun c:zbz()

(setq cm (getvar "cmdecho") os (getvar "osmode"))

(setvar "cmdecho" 0)

(command "_undo" "be")

(while (and (setvar "osmode" 33)

(setq p0 (getpoint "\n插入点<回车结束>:"))

)

(if (= (setq R (getreal "\n指北32313133353236313431303231363533e78988e69d8331333335316536针半径R<5>:")) nil)

(setq R 5.0)

)

(setq p1 (mapcar '+ p0 (list 0 (* R 0.04128)))

p2 (polar p0 (* 292.1622222 (/ pi 180.0)) R)

p3 (mapcar '+ p0 (list 0 R))

p4 (polar p0 (* 247.8377778 (/ pi 180.0)) R)

p5 (mapcar '+ p0 (list (* -0.3805 (/ R 5.0)) (+ R 1.0)))

)

(setvar "osmode" 0)

(command "_circle" p0 R)

(command "_pline" p1 p2 p3 p4 "c")

(command "_hatch" "SOLID" (entlast) "")

(command "_text" p5 (* 1.6667 (/ R 5.0)) 0 "N")

)

(command "_undo" "e")

(setvar "osmode" os) (setvar "cmdecho" 1)

(princ)

)

TAG: 程序 路径