明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3390|回复: 13

作中垂线

  [复制链接]
发表于 2011-9-11 16:56:31 | 显示全部楼层 |阅读模式
; 作中垂线
(defun c:ZCX( / )
  (setq en1 (entsel "\n Select Line: "))
  (setq ent1 (car en1))
  (setq p1 (cadr en1))
  
  (command "-array" ent1 "" "p"
   (osnap p1 "mid") 2 90 "")
  (princ)
  )

发表于 2011-9-11 19:00:08 | 显示全部楼层
有很多更好的方法的时候,command和osnap不推荐使用
发表于 2011-9-11 19:01:56 | 显示全部楼层
谢谢。。。。。。
 楼主| 发表于 2011-9-11 19:42:30 | 显示全部楼层
多谢版主指点
发表于 2011-9-11 19:49:48 | 显示全部楼层
caoyin 发表于 2011-9-11 19:00
有很多更好的方法的时候,command和osnap不推荐使用

版主能说说吗。是有什么VLISP函数可以用吗
发表于 2011-9-11 20:54:48 | 显示全部楼层
;;AutoLISP 就可轻松实现:
;;----------------------------------------------------------------------
(defun C:ZCX (/ ENT P1 P2 MP AN DI)
  (setq ENT (entsel "\n选择直线:")
        ENT (entget (car ENT))
        P1  (cdr (assoc 10 ENT))
        P2  (cdr (assoc 11 ENT))
        MP  (mapcar '(lambda (X Y) (/ (+ X Y) 2.)) P1 P2)
        AN  (+ (angle P1 P2) (/ PI 2.))
        DI  (/ (distance P1 P2) 2.)
  )
  (entmake (list '(0 . "LINE")
                 (cons 10 (polar MP AN DI))
                 (cons 11 (polar MP AN (- DI)))
  ))
)
发表于 2011-9-11 21:00:53 | 显示全部楼层
caoyin 发表于 2011-9-11 20:54
;;AutoLISP 就可轻松实现:
;;----------------------------------------------------------------------
...

谢谢版主,能帮我看看这个吗?
http://bbs.mjtd.com/thread-89299-1-1.html
发表于 2011-9-11 21:04:26 | 显示全部楼层
;;AutoLISP 就可轻松实现:
;;----------------------------------------------------------------------
(defun C:ZCX (/ ENT P1 P2 MP AN DI)
  (setq ENT (entsel "\n选择直线:")
        ENT (entget (car ENT))
        P1  (cdr (assoc 10 ENT))
        P2  (cdr (assoc 11 ENT))
        MP  (mapcar '(lambda (X Y) (/ (+ X Y) 2.)) P1 P2)
        AN  (+ (angle P1 P2) (/ PI 2.))
        DI  (/ (distance P1 P2) 2.)
  )
  (entmake (list '(0 . "LINE")
                 (cons 10 (polar MP AN DI))
                 (cons 11 (polar MP AN (- DI)))
  ))
)
发表于 2012-2-3 15:20:11 | 显示全部楼层
caoyin 发表于 2011-9-11 21:04
;;AutoLISP 就可轻松实现:
;;----------------------------------------------------------------------
...

(setq ENT (entsel "\n选择块中曲线:"))时,请问怎么办呢?
发表于 2012-2-3 19:30:31 | 显示全部楼层
本帖最后由 caoyin 于 2012-2-3 19:30 编辑

;;;做任意曲线的垂线
(defun C:TT (/ curve point ang)
  (setq curve (entsel "\n选择任意曲线: "))
  (mapcar 'set '(curve point) curve)
  (setq point (vlax-curve-getClosestPointTo curve point)
        ang   (angle '(0 0)
                     (vlax-curve-getFirstDeriv
                       curve
                       (vlax-curve-getParamAtPoint curve point)
                     )
              )
        ang   (+ ang (/ pi 2))
  )
  (command "_.xline" "_non" point "_non" (polar point ang 10) "")
)

评分

参与人数 1明经币 +1 金钱 +12 收起 理由
【KAIXIN】 + 1 + 12 很给力! 很值得参考,整出批量的更好

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-26 01:05 , Processed in 0.208565 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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