天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 74|回复: 0

两点动态圆弧------(一级)-----

[复制链接]
  • TA的每日心情
    开心
    1 小时前
  • 签到天数: 154 天

    [LV.7]常住居民III

    3458

    主题

    554

    回帖

    214748万

    积分

    管理员

    中国膜结构网www.mjgou.com

    积分
    2147483647
    QQ
    发表于 2024-6-28 12:16:47 | 显示全部楼层 |阅读模式
    1. ;;两点动态圆弧------(一级)-----
    2. ;功能:给2点画弧,且提示弧长,半径,并支持扑捉,TAB键乒乓开关信息
    3. (defun 2p-dd-arc (p1 p2 / p3 nam nam1 obj nam2 ent ent1 loop bb pt f3 d ang s0 s s1 s2 s3)
    4.   (command "_.undo" "be")
    5.   (setq s0 "\n->动态圆弧 [信息开关(TAB)/扑捉(F3)/定位(Left-Right-Other keys)]")
    6.   (setq p3 (polar (sl:mid p1 p2) (+ (angle p1 p2) pi2) 50) s1 "mm" s2 "..开.." s3 "..关..")
    7.   (make-arc p1 p3 p2) ;3P画弧
    8.   (setq nam (entlast))
    9.   (slmkwz (strcat "R=" (rtos (* (getvar "DIMLFAC") (dxf1 nam 40))) s1) p3 3.0 0 nil "f-i-n-d" nil 6 "m") ;中心定位写字
    10.   (setq ent (entget (setq nam1 (entlast))) obj (en2obj nam1))
    11.   (slmkwz (strcat "L=" (rtos (* (getvar "DIMLFAC") (sllen nam))) s1) p3 3.0 0 nil "f-i-n-d" nil 6 "m")
    12.   (setq ent1 (entget (setq nam2 (entlast))))
    13.   (setq loop t f3 (getvar "OSMODE") s s2)
    14.   (princ (strcat s0 "(" s ")"))
    15.   (while loop
    16.     (setq bb (grread t 15 2))
    17.     (setq pt (cadr bb) d (p2uu 20))
    18.     (cond
    19.       ((equal bb '(2 6));F3切换捕捉开关
    20.         (cond
    21.           ((and (< f3 16384) (/= f3 0))
    22.             (setq f3 (+ f3 16384))
    23.             (prompt "\n <对象捕捉 关>")
    24.           )
    25.           ((or (= f3 0) (>= f3 16384))
    26.             (setq f3 16383)
    27.             (prompt "\n <对象捕捉 开>")
    28.           )
    29.         )
    30.         (setvar "OSMODE" f3)(redraw)
    31.       )   
    32.       ((= (car bb) 5)
    33.         (redraw)
    34.         (if (and (<= f3 16384) (> f3 0))
    35.           (setq pt (slosnappt nam pt))
    36.         )
    37.         (setq pt (trans pt 1 0))
    38.         (entdel nam)
    39.         (make-arc p1 pt p2)
    40.         (setq nam (entlast))
    41.         (if (= s s2)
    42.           (progn
    43.             (setq ang (angle-sharp (angle '(0.0 0.0 0.0) (vlax-curve-getFirstDeriv nam (vlax-curve-getparamatpoint nam pt)))))
    44.             (setq pt (polar pt (+ ang pi2) (* 0.7 d)))
    45.             (entmod (emod (emod (emod (emod (emod ent 1 (strcat "R=" (rtos (* (getvar "DIMLFAC") (dxf1 nam 40))) s1)) 10 pt) 11 pt) 40 d) 50 ang))
    46.             (setq pt (polar pt (+ ang pi2) (* 1.3 d)))
    47.             (entmod (emod (emod (emod (emod (emod ent1 1 (strcat "L=" (rtos (* (getvar "DIMLFAC") (sllen nam))) s1)) 10 pt) 11 pt) 40 d) 50 ang))
    48.           )
    49.         )
    50.       )
    51.       ((member bb '((2 9))) ;;table 信息关
    52.         (entdel nam1) (entdel nam2)
    53.         (if (not (vlax-erased-p obj)) (setq s s2) (setq s s3))
    54.         (princ (strcat s0 "(" s ")"))
    55.       )
    56.       ((or t (equal (car bb) 3) (member (car bb) '(11 25)));;左、右、其余键
    57.         (setq loop nil)
    58.       )
    59.     )
    60.   )
    61.   (command "_.undo" "e")
    62.   (redraw)
    63. )
    64. ;;测试-----(需要三领支持测试)
    65. (defun c:tt (/ p1 p2)
    66.   (setq p1 (getpoint "\n 圆弧第一点:")
    67.     p2 (getpoint p1 "\n 圆弧第二点:")
    68.   )
    69.   (2p-dd-arc p1 p2)
    70. )
    复制代码

     

     

     

     

    两点动态圆弧------(一级)-----
    中国膜结构网打造全中国最好的膜结构综合平台 ,统一协调膜结构设计,膜结构施工,膜材采购,膜材定制,膜结构预算全方位服务。 中国空间膜结构协会合作单位。
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池| |网站地图

    GMT+8, 2024-9-8 10:53 , Processed in 0.064510 second(s), 26 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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