新手编的lisp请高手指错误 谢谢
本帖最后由 H-浩浩-H 于 2016-5-6 20:19 编辑想编写一个给两条直线中间加指定个数及宽度的双线 并平分
可是能力有限 实在搞不定 请大神帮忙
http://bbs.mjtd.com/forum.php?mod=image&aid=92887&size=300x300&key=cf2d948ca298277b&nocache=yes&type=fixnone
除第一条直线 和第二条直线 别的直线都是使用lsp自动生成
请大神帮忙 自己写的代码如下 if中间的第一条直线 向 第二条直线 方向偏移线段 不知道怎么写了而且CAD 提示语法错误
等分层板ff.LSP
非常感谢各位大神的帮助 仲文玉 发表于 2016-5-3 12:49
给楼主参考
太厉害了楼主这个插件在哪里下载? 请高手指点 谢谢 H-浩浩-H 发表于 2016-5-2 07:24 static/image/common/back.gif
请高手指点 谢谢
xyp1964 发表于 2016-5-2 17:08 static/image/common/back.gif
谢谢 这个lispcad2008 提示 错误: no function definition: XYP-START 这个怎么解决 (defun c:tt()
(defun dxf (code elist) (cdr (assoc code elist)))
(vl-load-com)
(while(not(setq pt1(entsel "\n\t选择第1条线: "))))
(while(not(setq pt2(entsel "\n\t选择第2条线: "))))
(setq l1 (entget(car pt1)))
(setq l2 (entget(car pt2)))
(setq p1 (dxf 10 l1) p2 (dxf 11 l1) p3 (dxf 10 l2) p4 (dxf 11 l2))
(setq ang1 (angle p1 p2) ang2 (angle p3 p4))
(setq dang (- ang1 ang2))
(print dang)
(if (or(equal (abs dang) 0 1e-3)(equal (abs dang) pi 1e-3)) (progn
(setq a1 (vlax-curve-getclosestpointto (car pt1) '(0 0 0) t))
(setq a2 (vlax-curve-getclosestpointto (car pt2) '(0 0 0) t))
(setq a3 (abs (- (apply 'max a1) (apply 'max a2))))
(print a3)
(while(not(setq a4(getdist "\n\t请输入层板厚度 :"))))
(while(not(setq a5(getdist "\n\t请输入层板数量 :"))))
(setq a6 (/ (- a3 (* a4 a5) (+ a5 1))))
(setq a7 1)
(if (<= a7 a5) (princ))
)
(alert "\n两条线不平行不符合条件!")
)
(princ)
)剩下画线功能楼主自编吧 给楼主参考
ZZXXQQ 发表于 2016-5-3 10:30 static/image/common/back.gif
剩下画线功能楼主自编吧
(defun c:tt()
(defun dxf (code elist) (cdr (assoc code elist)))
(vl-load-com)
(while(not(setq pt1(entsel "\n\t选择第1条线: "))))
(while(not(setq pt2(entsel "\n\t选择第2条线: "))))
(setq l1 (entget(car pt1)))
(setq l2 (entget(car pt2)))
(setq p1 (dxf 10 l1) p2 (dxf 11 l1) p3 (dxf 10 l2) p4 (dxf 11 l2))
(setq ang1 (angle p1 p2) ang2 (angle p3 p4))
(setq dang (- ang1 ang2))
(if (or(equal (abs dang) 0 1e-3)(equal (abs dang) pi 1e-3))
(progn
(setq a1 (vlax-curve-getclosestpointto (car pt1) '(0 0 0) t))
(setq a2 (vlax-curve-getclosestpointto (car pt2) '(0 0 0) t))
(setq a3 (abs (- (apply 'min a1) (apply 'min a2))))
(print a3)
(while(not(setq a4(getdist "\n\t请输入层板厚度 :"))))
(while(not(setq a5(getdist "\n\t请输入层板数量 :"))))
(setq a6 (/ (- a3 (* a4 a5)) (+ a5 1)))
(print a6)
(setq a7 1)
(setq en(car (pt1)))
(setq obj(vlax-ename->vla-object en)))
(setq b1 1)
(setq b2 0)
(while (<= a7 a5)
(vla-Offset obj (+ (* a6 b1) (* a4 b2)))
(setq b2(+ b2 1))
(vla-Offset obj (+ (* a6 b1) (* a4 b2)))
(setq b1(+ b1 1))
(princ)
)
)
(alert "\n两条线不平行不符合条件!")
)
(princ)
)
ZZXXQQ 发表于 2016-5-3 10:30 static/image/common/back.gif
剩下画线功能楼主自编吧
非常感谢 但是 偏移线的这一块 也有出错提醒 请大侠帮忙看一下哪里有语法错误谢谢了 本帖最后由 feng83 于 2016-5-3 21:43 编辑
;;未经过严格测试,有问题记得提出来
(defun c:tt()
(defun dxf (code elist) (cdr (assoc code elist)))
(vl-load-com)
(command "ucs" "w")
(while(not(setq pt1(entsel "\n\t选择第1条线: "))))
(while(not(setq pt2(entsel "\n\t选择第2条线: "))))
(setq l1 (entget(car pt1)))
(setq l2 (entget(car pt2)))
(setq p1 (dxf 10 l1) p2 (dxf 11 l1) p3 (dxf 10 l2) p4 (dxf 11 l2))
(setq ang1 (angle p1 p2) ang2 (angle p3 p4))
(setq dang (- ang1 ang2))
(print dang)
(if (or(equal (abs dang) 0 1e-3)(equal (abs dang) pi 1e-3))
(progn
(while(not(setq a4(getreal "\n\t请输入层板厚度 :"))))
(while(not(setq a5(getint "\n\t请输入层板数量 :"))))
(setq w (angle p1 p3) w1 (angle p2 p4))
(setq w10 (/ (distance p1 p3) (+ a5 1)) w11 (/ (distance p2 p4) (+ a5 1)))
(repeat a5
(setq p10 (polar p1 w w10))
(setq p11 (polar p2 w1 w11))
(setq p8 (polar p1 w (- w10 (/ a4 2))))
(setq p9 (polar p2 w1 (- w11 (/ a4 2))))
(entmake (list '(0 . "LINE") (cons 10 p8) (cons 11 p9)))
(setq p15 (polar p1 w (+ w10 (/ a4 2))))
(setq p16 (polar p2 w1 (+ w11 (/ a4 2))))
(entmake (list '(0 . "LINE") (cons 10 p15) (cons 11 p16)))
(setq p1 p10 p2 p11)
))
(alert "\n两条线不平行不符合条件!")
)
(princ)
) 本帖最后由 H-浩浩-H 于 2016-5-4 21:28 编辑
feng83 发表于 2016-5-3 21:40 static/image/common/back.gif
;;未经过严格测试,有问题记得提出来
(defun c:tt()
(defun dxf (code elist) (cdr (assoc code...
file:///D:/1.png file:///D:/1.png http://bbs.mjtd.com/forum.php?mod=image&aid=92938&size=300x300&key=47c54b63dd26b405&nocache=yes&type=fixnone非常感谢http://bbs.mjtd.com/forum.php?mod=image&aid=92937&size=300x300&key=37243edca5ce6740&nocache=yes&type=fixnone 我看到有这两个问题 距离没有均分 如果是矩形炸开的线会出现如图的问题
页:
[1]
2