找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: yanxinbo67

[求助] [求助]:如何用lisp让直线和圆相关联

[复制链接]
发表于 2004-7-16 17:16:18 | 显示全部楼层
第二次打开图纸後,你要再次加載程序!

;;序號球加反應器早已放出(在”某”個網站---不在明經&也不在曉東)
;;運氣好就會找到(開放原碼)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-7-18 13:10:10 | 显示全部楼层
lucas,同时拉伸序号球和直线的时候,会暂时分开(线球分离),要单独移动一下序号球才恢复正常。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-7-19 09:56:22 | 显示全部楼层
看來反應器比圖形資料庫更新還要快
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2004-7-20 01:58:42 | 显示全部楼层
最初由 LUCAS 发布
[B]看來反應器比圖形資料庫更新還要快 [/B]


不是因为快吧。

不管什么命令,更新实体总是一个个来的,arx写也一样
stretch时,肯定是先更新了所画的圆,(这时反映器激活,line就变化了),再轮到stretch这line,由于已经变化过了,再变化了一下就不对了.


因为框选的时候,实体在选集里的先后,和你框的方法有关系
所以有时对有时不对。

应该倒过来再写一次.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2004-7-20 07:25:27 | 显示全部楼层
最初由 LUCAS 发布
[B]看來反應器比圖形資料庫更新還要快 [/B]

CAD的Lisp Sample 中有一个三球联动的例子可以参考下
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-7-20 08:12:05 | 显示全部楼层

  1. ;;追查發現L1在反應器中的數據是未移動前的
  2. ;;看來反應器比圖形資料庫更新還要快
  3. ;;(PS:發現與選物順序有關,帶反應器物件要後選才沒有這現象)
  4. (defun C:LINE_REACTOR (/ HOLDECHO L1 C1)
  5.   (vl-load-com)
  6.   (setq HOLDECHO (getvar "CMDECHO"))
  7.   (setvar "CMDECHO" 1)
  8.   (command "_.LINE" PAUSE PAUSE "")
  9.   (setq L1 (entlast))
  10.   (command "_.CIRCLE" (getvar "LASTPOINT") PAUSE)
  11.   (setq C1 (vlax-ename->vla-object (entlast)))
  12.   (print (entget L1))
  13.   (print (vlax-dump-object C1))
  14.   (setvar "CMDECHO" 0)
  15.   (command "_.TRIM"
  16.            (entlast)
  17.            ""
  18.            (list L1 (getvar "LASTPOINT"))
  19.            ""
  20.   )
  21.   (setq L1 (cdr (assoc 5 (entget L1))))
  22.   (vlr-pers
  23.     (vlr-object-reactor
  24.       (list C1)
  25.       L1
  26.       '((:vlr-modified . LI))
  27.     )
  28.   )
  29.   (setvar "CMDECHO" HOLDECHO)
  30.   (princ)
  31. )
  32. (prompt "\nType LINE_REACTOR")

  33. (defun LI (NOTIFIER-OBJECT             REACTOR-OBJECT
  34.            PARAMETER-LIST             /                  PTC
  35.            PTR                L1             SPT          ANG
  36.            DIST
  37.           )
  38.   (vl-load-com)
  39.   (if (not (vlax-erased-p NOTIFIER-OBJECT))
  40.     (progn
  41.       (setq
  42.         PTC (vlax-safearray->list
  43.               (vlax-variant-value (vla-get-center NOTIFIER-OBJECT))
  44.             )
  45.       )
  46.       (setq PTR (vla-get-radius NOTIFIER-OBJECT))
  47.       (if (entget (setq L1 (handent (vlr-data REACTOR-OBJECT))))
  48.         (progn
  49.           (setq L1 (vlax-ename->vla-object L1))
  50.           (print (vlax-dump-object L1))

  51.           (setq
  52.             DIST (- (distance (setq SPT        (vlax-safearray->list
  53.                                           (vlax-variant-value
  54.                                             (vla-get-startpoint L1)
  55.                                           )
  56.                                         )
  57.                               )
  58.                               PTC
  59.                     )
  60.                     PTR
  61.                  )
  62.           )
  63.           (setq ANG (angle SPT PTC))
  64.           (vla-put-endpoint L1 (vlax-3d-point (polar SPT ANG DIST)))
  65.           (print (vlax-dump-object L1))
  66.         )
  67.       )
  68.     )
  69.   )
  70.   (princ)
  71. )

  72. ;|

  73. 指令: LINE_REACTOR
  74. _.LINE 指定第一點: 0,0

  75. 指定下一點或 [復原(U)]: 100,100

  76. 指定下一點或 [復原(U)]:
  77. 指令: _.CIRCLE 指定圓的中心點或 [三點(3P)/兩點(2P)/相切、相切、半徑(T)]:
  78. 指定圓的半徑或 [直徑(D)] <30.0000>: 20

  79. 指令:
  80. ((-1 . <圖元名稱: 7ef8a408>) (0 . "LINE") (330 . <圖元名稱: 7ef88cf8>) (5 .
  81. "28E1") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 .
  82. "AcDbLine") (10 0.0 0.0 0.0) (11 100.0 100.0 0.0) (210 0.0 0.0 1.0))
  83. ; IAcadCircle: AutoCAD Circle Interface
  84. ;性質值:
  85. ;   Application (RO) = #<VLA-OBJECT IAcadApplication 00b60584>
  86. ;   Area = 1256.64
  87. ;   Center = (100.0 100.0 0.0)
  88. ;   Circumference = 125.664
  89. ;   Diameter = 40.0
  90. ;   Document (RO) = #<VLA-OBJECT IAcadDocument 0111e7c0>
  91. ;   Handle (RO) = "28E2"
  92. ;   HasExtensionDictionary (RO) = 0
  93. ;   Hyperlinks (RO) = #<VLA-OBJECT IAcadHyperlinks 03672714>
  94. ;   Layer = "0"
  95. ;   Linetype = "ByLayer"
  96. ;   LinetypeScale = 1.0
  97. ;   Lineweight = -1
  98. ;   Normal = (0.0 0.0 1.0)
  99. ;   ObjectID (RO) = 2130224144
  100. ;   ObjectName (RO) = "AcDbCircle"
  101. ;   OwnerID (RO) = 2130218232
  102. ;   PlotStyleName = "ByLayer"
  103. ;   Radius = 20.0
  104. ;   Thickness = 0.0
  105. ;   TrueColor = #<VLA-OBJECT IAcadAcCmColor 036742e0>
  106. ;   Visible = -1

  107. T

  108. 指令:
  109. 指令:
  110. 指令: _move
  111. 選取物件: 指定對角點: 2 找到

  112. 選取物件:
  113. 指定基準點或位移: 0,0
  114. 指定位移的第二點或 <使用第一點作為位移>: 100,100
  115. ; IAcadLine: AutoCAD Line Interface
  116. ;性質值:
  117. ;   Angle (RO) = 0.785398
  118. ;   Application (RO) = #<VLA-OBJECT IAcadApplication 00b60584>
  119. ;   Delta (RO) = (85.8579 85.8579 0.0)
  120. ;   Document (RO) = #<VLA-OBJECT IAcadDocument 0111e7c0>
  121. ;   EndPoint = (85.8579 85.8579 0.0)
  122. ;   Handle (RO) = "28E1"
  123. ;   HasExtensionDictionary (RO) = 0
  124. ;   Hyperlinks (RO) = #<VLA-OBJECT IAcadHyperlinks 036744a4>
  125. ;   Layer = "0"
  126. ;   Length (RO) = 121.421
  127. ;   Linetype = "ByLayer"
  128. ;   LinetypeScale = 1.0
  129. ;   Lineweight = -1
  130. ;   Normal = (0.0 0.0 1.0)
  131. ;   ObjectID (RO) = 2130224136
  132. ;   ObjectName (RO) = "AcDbLine"
  133. ;   OwnerID (RO) = 2130218232
  134. ;   PlotStyleName = "ByLayer"
  135. ;   StartPoint = (0.0 0.0 0.0)
  136. ;   Thickness = 0.0
  137. ;   TrueColor = #<VLA-OBJECT IAcadAcCmColor 03671860>
  138. ;   Visible = -1

  139. T
  140. ; IAcadLine: AutoCAD Line Interface
  141. ;性質值:
  142. ;   Angle (RO) = 0.785398
  143. ;   Application (RO) = #<VLA-OBJECT IAcadApplication 00b60584>
  144. ;   Delta (RO) = (185.858 185.858 0.0)
  145. ;   Document (RO) = #<VLA-OBJECT IAcadDocument 0111e7c0>
  146. ;   EndPoint = (185.858 185.858 0.0)
  147. ;   Handle (RO) = "28E1"
  148. ;   HasExtensionDictionary (RO) = 0
  149. ;   Hyperlinks (RO) = #<VLA-OBJECT IAcadHyperlinks 03677044>
  150. ;   Layer = "0"
  151. ;   Length (RO) = 262.843
  152. ;   Linetype = "ByLayer"
  153. ;   LinetypeScale = 1.0
  154. ;   Lineweight = -1
  155. ;   Normal = (0.0 0.0 1.0)
  156. ;   ObjectID (RO) = 2130224136
  157. ;   ObjectName (RO) = "AcDbLine"
  158. ;   OwnerID (RO) = 2130218232
  159. ;   PlotStyleName = "ByLayer"
  160. ;   StartPoint = (0.0 0.0 0.0)
  161. ;   Thickness = 0.0
  162. ;   TrueColor = #<VLA-OBJECT IAcadAcCmColor 036717d0>
  163. ;   Visible = -1

  164. T
  165. |;
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2004-7-21 21:03:24 | 显示全部楼层
就是我上面说的意思

反映器它不管你在不在命令当中,照改不误.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-7-22 04:57:09 | 显示全部楼层
1楼原问的题目是" 如何用lisp让直线和圆相关联" 自然可以使用反映器. 但1楼的最终目的是
"....."如何让直线总是通过圆心呢?" 这样, 简单的LISP程序即可:
DragNumBall
http://www.xdcad.net/forum/showthread.php?s=&threadid=215855
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-27 06:54 , Processed in 0.178903 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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