明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2784|回复: 12

[讨论]关于所有圆一次加上中心线的问题

  [复制链接]
发表于 2008-11-23 10:30 | 显示全部楼层 |阅读模式

请高手帮忙看下面的程序代码,为什么总是提示不成功呢?

(defun CMDLA0 ()
  (setq cmdech (GETVAR "CMDECHO"))
  (setq oom (getvar "orthomode"))
  (setq osm (getvar "osmode"))
  (SETQ LA (getvar "clayer"))
  (setvar "regenmode" 1)
  (SETVAR "CMDECHO" 0)
  (princ)
  )

(defun CMDLA1 ()
  (SETVAR "CMDECHO" cmdech)
  (setvar "orthomode" oom)
  (setvar "osmode" osm)
  (setvar "clayer" LA)
  (setvar "regenmode" 1)
  (princ)
  )

;;; 每个圆心插入垂直交叉直线
  (defun c:cl ()
    (CMDLA0)
    (setq ss (ssget '((0 . "CIRCLE")))
   i  -1
    )
    (mkla "中心线" 1)
    (while (setq s1 (ssname ss (setq i (1+ i)))))
      (setq p0 (cdr (assoc 10 (entget s1)))
     l  (cdr (assoc 40 (entget s1)))
      )
      (xyp_szx p0 (* l 0.25))  ; 0.25倍直径
    )
    (CMDLA1)
  )
)


(Defun MKLA (a b)
  (If (= (Tblsearch "layer" a) nil)
    (Command "layer" "m" a "c" b a "")
    (Command "layer" "t" a "s" a "c" b a "")
    )
  )

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2008-11-23 11:13 | 显示全部楼层

这个是我以前做的

(defun c:df()
(setq os (getvar "osmode"))
(setvar "osmode" 0)
(setq ss (ssget '((0 . "CIRCLE"))))
(setq len (sslength ss))
(setq n 0)
(command "undo" "begin")
(repeat len
(setq ent (ssname ss n))
(setq dxf (entget ent))

(setq yuanxin (trans (cdr (assoc 10 dxf)) 0 1))
(setq banjing (cdr (assoc 40 dxf)))
(setq waiyan (* banjing 1.5))


(setq p1 (polar yuanxin pi waiyan))
(setq p2 (polar yuanxin 0 waiyan))
(setq p3 (polar yuanxin (/ pi 2) waiyan))
(setq p4 (polar yuanxin (* 1.5 pi) waiyan))
(command "line" p1 p2 "")
(setq last1 (entlast))
(command "line" p3 p4 "")
(setq last2 (entlast))
(setq n (+ 1 n))
)
(command "undo" "end")
(setvar "osmode" os)
(princ)
)

点评

此段程序太好了.如果已经有中心线的圆,不再加中心线就更棒了.  发表于 2011-2-27 11:40
 楼主| 发表于 2011-2-27 11:06 | 显示全部楼层
发表于 2011-3-7 20:03 | 显示全部楼层
发表于 2011-3-20 11:32 | 显示全部楼层
看看
谢谢~
 楼主| 发表于 2011-5-31 12:55 | 显示全部楼层
好帖
发表于 2011-5-31 16:41 | 显示全部楼层
感谢phoenixdjq楼主分享源码程序 < 谢谢! >
发表于 2011-5-31 17:05 | 显示全部楼层
回复 phoenixdjq 的帖子

如果你的中心線都是同一規格的,只要在程序中加入先行刪除就可以了
发表于 2011-5-31 20:07 | 显示全部楼层
zhd81617 发表于 2008-11-23 10:30
请高手帮忙看下面的程序代码,为什么总是提示不成功呢?(defun CMDLA0 ()&nbsp; (setq cmdech (GETVAR "CMD ...

初一看,缺少自定义函数xyp_szx
发表于 2011-5-31 21:55 | 显示全部楼层
圆中心线好写,关键在于如何判断同心圆,同心圆与圆弧,同心圆弧,如果这个处理好了就是一个非常好用的程式。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-26 15:30 , Processed in 0.197749 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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