明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2109|回复: 2

求救!!!"选矩形,自动倒C角"

[复制链接]
发表于 2012-4-30 11:00:48 | 显示全部楼层 |阅读模式
本帖最后由 南国浪子 于 2012-4-30 11:00 编辑

过程是这样的,先画好标准的矩形(四边形),然后倒R角,一般是三大一小,或三小一大,如3-R1.8 &R.8或3-R0.8&R1.8
然后运行TEST.LSP,通过计算自动倒出与R相对应的C角,如3-C2.0&C1.0或者3-C1.0&C2.0
其中C角大小是程序通过计算R大小后加上0.2得到的,这部分程序已经实现
现在主要的问题是有部分图形可以完成,有些又不行,不知道为什么,因小弟是初学LSP,程序有点不专业,请大师们给予指正


  1. (defun c:test (/ entssa vn minpt maxpt ssent tem li ven sp dp sp1 sp2 dis tem1 tem2 sp11 sp12 dp11 dp12)
  2.   (setvar "cmdecho" 0)  
  3.   (setq os (getvar "osmode"))
  4.   (setvar "osmode" 512)
  5.   (command "ucs" "w")
  6.   (setq entssa (ssget (getpoint "\n选择多义线外形:")))
  7.   (setq vn (vlax-ename->vla-object (ssname entssa 0)))
  8.   (Vla-GetBoundingBox vn 'MinPt 'MaxPt)
  9.   (setq  MinPt (vlax-safeArray->list MinPt)
  10.   MaxPt (vlax-safeArray->list MaxPt)
  11.   )
  12.   (setq long (- (car maxpt) (car minpt)))
  13.   (setq wide (- (cadr maxpt) (cadr minpt)))
  14.   (setq ssent (entget (ssname entssa 0)))
  15.   (if (equal (cdr (assoc 0 (entget (ssname entssa 0))))
  16.        "LWPOLYLINE"
  17.       )

  18.     (progn
  19.       (setq n  0
  20.       tem  '()
  21.       )
  22.       (repeat (length ssent)
  23.   (setq li (car (nth n ssent)))
  24.   (setq ven (cdr (nth n ssent)))
  25.   (if (= 10 li)
  26.     (setq tem (append (list ven) tem))
  27.   )
  28.   (setq n (1+ n))
  29.       )

  30.     )
  31.   )
  32.   (setq tem1 (car tem))
  33.   (setq tem2 (cdr tem))
  34.   (setq tem (append tem2 (list tem1)))
  35.   (setq n 0)
  36.   (repeat 4
  37.     (setq sp (nth (* 2 n) tem))
  38.     (setq sp1 (polar sp (*  (- 1.5 (* 0.5 n)) pi) (/ wide 2)))
  39.     (setq sp1 (cons 0.0  sp1 ))
  40.     (setq sp11 (car sp1))
  41.     (setq sp12 (cdr sp1))
  42.     (setq sp1 (append sp12 (list sp11)))   
  43.     (setq dp (nth (1+ (* 2 n)) tem))
  44.     (setq dp1 (polar dp (*  (- 1 (* 0.5 n)) pi) (-(/ wide 2))))
  45.     (setq dp1 (cons 0.0  dp1 ))
  46.     (setq dp11 (car dp1))
  47.     (setq dp12 (cdr dp1))
  48.     (setq dp1 (append dp12 (list dp11)))
  49.     (setq dis (+ 0.2 (/ (distance sp dp) (sqrt 2))))
  50.     (setvar "osmode" 0)
  51.     (command "chamfer" "d" dis dis  "chamfer" sp1 dp1)
  52.     (setq n (1+ n))
  53.   )
  54.   (setvar "osmode" os)
  55.   (princ)
  56. )




本帖子中包含更多资源

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

x
 楼主| 发表于 2012-4-30 11:35:17 | 显示全部楼层
谁可以帮帮我了?
发表于 2012-4-30 12:44:36 | 显示全部楼层
直接改多义线的点,再将R角的凸度归0,不用倒角命令。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 17:58 , Processed in 0.208175 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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