明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1468|回复: 4

[已解答] 圆交叉线

[复制链接]
发表于 2013-5-22 14:58:55 | 显示全部楼层 |阅读模式

(DEFUN C:ZX ()
     (setvar "cmdecho" 0)   
     (princ "\n-->请选取要画交叉线的圆.....")
     (setq cl_ent (ssget":s" '((-4 . "<or")
          (0 . "circle") (0 . "arc") (-4 . "or>"))) i 0)
     (if cl_ent
       (repeat (sslength cl_ent)
       (setq cl_dat (entget (ssname cl_ent i))
             cl_lay (cdr (assoc 8 cl_dat))
             cl_pt  (trans (cdr (assoc 10 cl_dat)) 0 1)
             cl_rad (cdr (assoc 40 cl_dat)) i (+ 1 i))
     (setq old_osm (getvar "osmode"))
     (setvar "osmode" 0)
     (command "line" (list (+ (* 1.0 cl_rad) (car cl_pt)) (cadr cl_pt))
                     (list (- (car cl_pt) (* 1.0 cl_rad)) (cadr cl_pt)) "")
     (command "chprop" (entlast) "" "c" "" "lt" "CENTERX2" "la" cl_lay ""   )
     (command "line" (list (car cl_pt) (+ (* 1.0 cl_rad) (cadr cl_pt)))
                     (list (car cl_pt) (- (cadr cl_pt) (* 1.0 cl_rad))) "")
     (command "chprop" (entlast) "" "c" "" "lt" "CENTERX2" "la" cl_lay ""  )
     (setvar "osmode" old_osm)))   
(PRINC)
)

以上程序只能画如图一


请问如何修改才能实现图二


请高手指点迷津,谢谢

本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2013-5-22 14:59:46 | 显示全部楼层
旋转45度?
画完后用entlast选上,然后旋转。
 楼主| 发表于 2013-5-22 15:15:05 | 显示全部楼层
yxp 发表于 2013-5-22 14:59
旋转45度?
画完后用entlast选上,然后旋转。

那程序应如何编写。谢谢
发表于 2013-5-23 15:53:54 | 显示全部楼层
726613 发表于 2013-5-22 15:15
那程序应如何编写。谢谢

很简单啊,改了下,试试:
  1. (DEFUN C:ZX ()
  2.      (setvar "cmdecho" 0)   
  3.      (princ "\n-->请选取要画交叉线的圆.....")
  4.      (setq cl_ent (ssget":s" '((-4 . "<or")
  5.           (0 . "circle") (0 . "arc") (-4 . "or>"))) i 0)
  6.      (if cl_ent
  7.        (repeat (sslength cl_ent)
  8.        (setq cl_dat (entget (ssname cl_ent i))
  9.              cl_lay (cdr (assoc 8 cl_dat))
  10.              cl_pt  (trans (cdr (assoc 10 cl_dat)) 0 1)
  11.              cl_rad (cdr (assoc 40 cl_dat)) i (+ 1 i))
  12.      (setq old_osm (getvar "osmode"))
  13.      (setvar "osmode" 0)
  14.      (command "line" (list (+ (* 1.0 cl_rad) (car cl_pt)) (cadr cl_pt))
  15.                      (list (- (car cl_pt) (* 1.0 cl_rad)) (cadr cl_pt)) "")
  16.      (command "chprop" (entlast) "" "c" "" "lt" "CENTERX2" "la" cl_lay ""   )
  17.          (command "rotate" (entlast) "" cl_pt "45")
  18.      (command "line" (list (car cl_pt) (+ (* 1.0 cl_rad) (cadr cl_pt)))
  19.                      (list (car cl_pt) (- (cadr cl_pt) (* 1.0 cl_rad))) "")
  20.      (command "chprop" (entlast) "" "c" "" "lt" "CENTERX2" "la" cl_lay ""  )
  21.          (command "rotate" (entlast) "" cl_pt "45")
  22.      (setvar "osmode" old_osm)))   
  23. (PRINC)
  24. )
 楼主| 发表于 2013-5-23 18:59:21 | 显示全部楼层
zyhandw 发表于 2013-5-23 15:53
很简单啊,改了下,试试:

谢谢了你的指点
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-29 04:50 , Processed in 0.162297 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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