明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: jh1005

[源码] 画多段线投影线 v1.2(2024-2-1更新)

    [复制链接]
发表于 2017-12-12 08:48 | 显示全部楼层
非常好用,能加上孔位就好了
发表于 2017-12-13 08:31 | 显示全部楼层
厉害。。。。谢谢楼主,下载来备用
发表于 2018-2-1 14:23 | 显示全部楼层
感谢分享程序,感谢 jh1005 楼主!
发表于 2018-2-2 14:21 | 显示全部楼层
圆好像不行!!
发表于 2018-2-14 04:36 | 显示全部楼层

RE: 画多段线投影线 v1.1(2016-8-6更新)

本帖最后由 greg.battin 于 2018-2-14 04:40 编辑

here is one that lets you define a line that points are to be projected upon.

  1. ;project lines - GREAT FOR CREATING ELEVATIONS
  2. (defun pt?  (pt)
  3.   (and (vl-consp pt)
  4.        (= (length pt) 3)
  5.        (vl-every (function (lambda (coord) (= (type coord) 'real)))
  6.      pt)))

  7. (defun C:PROJECT  (/ osm cmd orth p1 p2 p3 p4 Lb sslp lth cont cont1)
  8.   (setq  osm  (getvar "OSMODE")
  9.   cmd  (getvar "CMDECHO")
  10.   orth (getvar "ORTHOMODE")
  11.   sslp (ssadd))
  12.   (setvar "CMDECHO" 0)
  13.   (setvar "ORTHOMODE" 1)
  14.   (setvar "OSMODE" 0)
  15.   (if (and (setq p1 (getpoint "\nFirst point: "))
  16.      (setq p2 (getpoint "\nSecond point: " p1)))
  17.     (progn

  18.       (command "_.LINE" p1 p2 "")
  19.       (setq L (entlast))
  20.       (redraw (entlast) 3)
  21.       (setvar "OSMODE" 33)

  22.       (initget "Erase")
  23.       (setq p3 (getpoint "\n<Enter to exit>/Select point [Erase]: "))

  24.       (if (pt? p3)
  25.   (progn
  26.     (setvar "OSMODE" 0)
  27.     (setq p4 (polar p3 (+ (angle p1 p2) (/ pi 2)) 1))
  28.     (command "_.LINE" p3 (inters p1 p2 p3 p4 nil) "")
  29.     (redraw (entlast) 3)
  30.     (setq sslp (ssadd (entlast) sslp))
  31.     (setvar "OSMODE" 33)))

  32.       (while (or (pt? p3) (= p3 "Erase"))
  33.   (initget "Erase")
  34.   (setq p3
  35.          (getpoint "\n<Enter to exit>/Select point [Erase]: "))
  36.   (if (pt? p3)
  37.     (progn
  38.       (setvar "OSMODE" 0)
  39.       (setq p4 (polar p3 (+ (angle p1 p2) (/ pi 2)) 1))
  40.       (command "_.LINE" p3 (inters p1 p2 p3 p4 nil) "")
  41.       (redraw (entlast) 3)
  42.       (setq sslp (ssadd (entlast) sslp))
  43.       (setvar "OSMODE" 33)))
  44.   (if (and (= p3 "Erase") (ssname sslp 0))
  45.     (progn
  46.       (prompt "\nSelect projection line(s)")
  47.       (setq cont1  0
  48.       lb  (ssget))
  49.       (setq cont 0
  50.       lth  (sslength lb))
  51.       (while (<= cont (- lth 1))
  52.         (if (ssmemb (ssname Lb cont) sslp)
  53.     (progn
  54.       (ssdel (ssname Lb cont) sslp)
  55.       (command "_.ERASE" (ssname Lb cont) "")         (setq account (1+ cont)))
  56.       (setq cont1 (1+ cont1)))))

  57.       (prompt (strcat (itoa lth)
  58.           " Selected object(s)), "
  59.           (itoa cont1)
  60.           " Projection line(s) erased"))))
  61.   (if (and (= p3 "Erase") (null (ssname sslp 0)))
  62.     (prompt "\nProjection line(s) not found to erase")))
  63.       (setvar "OSMODE" osm)
  64.       (setvar "ORTHOMODE" orth)
  65.       (if (ssname sslp 0)
  66.   nil
  67.   (command "_.ERASE" L ""))))
  68.   (setvar "CMDECHO" cmd)
  69.   (princ))
  70. (princ)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复 支持 1 反对 0

使用道具 举报

发表于 2018-5-3 19:13 | 显示全部楼层
只能多段线吗,楼主开发个直线的么!应该很有用!
发表于 2018-5-13 13:22 | 显示全部楼层
有创意,赞一个。
发表于 2018-5-27 22:28 | 显示全部楼层
能支持直线吧?平时很少多断线啊
发表于 2019-5-22 14:52 | 显示全部楼层
不错很好用谢谢楼主!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-19 19:16 , Processed in 0.291947 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表