明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 23252|回复: 173

[源码] 动态延升直线或圆弧

  [复制链接]
发表于 2015-2-11 09:57 | 显示全部楼层 |阅读模式
本帖最后由 zcsoft 于 2015-2-11 10:29 编辑

五年时间没玩LISP了,年末快要放假了,腾出点时间狂狂论坛,看到不少朋友晒源码,俺也贴出俺以前的自己做的源码与大家分享!

这个最初也是在天河CAD那看到的,就自己做了一个,功能完全达到天河的功能,且还多了一个好玩的东东,不过这个多出的东东无实际用途

这个程序的核心函数为:grread





(defun c:ff ( / ka01 pt1 KENT KENTLIST karc knea ka1 ka2 ka3 ka4 klj pt11 )  
  (setq ka01 (entsel "请选择直线或圆弧:"))(if ka01
(progn(setq  KENT (car ka01))(setq KENTLIST (entget KENT))
(if(not(or(eq "ARC" (cdr(assoc 0 KENTLIST)))(eq "LINE" (cdr(assoc 0 KENTLIST)))))
    (princ "\n您选择的不是直线或圆弧!")        (progn(princ "\n按右键显示路径.")
  (setq pt1 (cadr ka01))(setq  KENT (car ka01))(setq KENTLIST (entget KENT))
  (if (eq "ARC" (cdr(assoc 0 KENTLIST)))(setq karc t)(setq karc nil))
  (setq ka1 (vlax-ename->vla-object KENT))
  (if (<(distance pt1 (vlax-curve-getStartPoint ka1))(distance pt1
        (vlax-curve-getEndPoint ka1)))(setq knea t)(setq knea nil))
  (while ka1
    (setq ka2 (grread t 12 2) ka3 (car ka2)  ka4 (cadr ka2))
     (if (= ka3 25)(if klj(setq klj nil)(setq klj t)))
    (cond ((= ka3 5)
           (progn (setq pt11 (vlax-curve-getClosestPointTo ka1 ka4 t))
   (if(not karc)(if knea
                  (if (> (distance pt11 (vlax-curve-getEndPoint ka1)) 0.1)                  
                  (vla-put-StartPoint ka1 (vlax-3d-point pt11)))
                  (if(> (distance pt11 (vlax-curve-getStartPoint ka1)) 0.1)
          (vla-put-EndPoint ka1 (vlax-3d-point pt11)))
                  )
        (if knea(vlax-put-property ka1 'StartAngle (angle (cdr(assoc 10 KENTLIST))pt11))
           (vlax-put-property ka1 'EndAngle (angle (cdr(assoc 10 KENTLIST))pt11))))
                      (if klj (progn(redraw)(grdraw ka4 pt11 2 4)))
                      )
           )
          ((= ka3 3)(setq ka1 nil))         
          ;((= ka3 25)(princ ka3)(princ ka4))
          ;(t (princ ka2)(princ "  "))
          ;(t (princ ka3)(princ ",")(princ ka4)(princ " "))
          )) )) )) (redraw) (princ)
    )

本帖子中包含更多资源

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

x

评分

参与人数 3明经币 +3 收起 理由
669423907 + 1 请问楼主,如果要自动显示路径,要改哪里啊.
USER2128 + 1 赞一个!
Gu_xl + 1 赞一个!代码还需考虑UCS的问题!

查看全部评分

本帖被以下淘专辑推荐:

发表于 2018-8-4 08:48 | 显示全部楼层
(command "_.lengthen" "dy")
发表于 2020-9-10 11:16 | 显示全部楼层
以前的宝贝都这么牛
现在的就
更牛了哈
发表于 2018-10-25 20:55 | 显示全部楼层
贱人工具箱里面不是也有这个功能么
发表于 2015-2-11 11:02 | 显示全部楼层
看下精品,谢谢
发表于 2015-2-11 11:08 | 显示全部楼层
kkkkkkkkkkkkkk
发表于 2015-2-11 11:10 | 显示全部楼层
支持源码。
发表于 2015-2-11 11:24 | 显示全部楼层
源码必须支持
发表于 2015-2-11 11:32 | 显示全部楼层
回复一下,看看隐藏了什么东东
发表于 2015-2-11 11:37 | 显示全部楼层
以前的宝贝都这么牛
现在的就
更牛了哈
发表于 2015-2-11 11:47 | 显示全部楼层
看看~~~~~~~~~~~~~~~~~~~~~~~~~
发表于 2015-2-11 11:50 | 显示全部楼层

看下精品,谢谢
发表于 2015-2-11 11:57 | 显示全部楼层
支持动态!好厉害。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-29 01:41 , Processed in 0.311265 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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