atul Posted December 16, 2008 Posted December 16, 2008 hi friends. i have a very weiired problem. i am working for a conveyor manf company, now the problem is 1)in plan view i have drawn the path of the conveyor in polyline(this is an odd path with lot of fillets of 1000r and many straight and 30 deg angled path. 2)now the product that is travlling on this path(conveyor) is connected at two points 3)now using the block and measure commond i was able to see the various positions of the product at a pitch of 500 mmm 4)problem-since the product is conected at two points and the block commond takes the refference of single center point,the other connecting point goes out of the path. 5)is there any commond any diffrent style to create a block where it would ask or 2 center points and not one. Quote
atul Posted December 16, 2008 Author Posted December 16, 2008 hi friends. i have a very weiired problem. i am working for a conveyor manf company, now the problem is 1)in plan view i have drawn the path of the conveyor in polyline(this is an odd path with lot of fillets of 1000r and many straight and 30 deg angled path. 2)now the product that is travlling on this path(conveyor) is connected at two points 3)now using the block and measure commond i was able to see the various positions of the product at a pitch of 500 mmm 4)problem-since the product is conected at two points and the block commond takes the refference of single center point,the other connecting point goes out of the path. 5)is there any commond any diffrent style to create a block where it would ask or 2 center points and not one. Quote
MaxwellEdison Posted December 16, 2008 Posted December 16, 2008 Perhaps if you split your block into two seperate blocks with their base points at the connection to the conveyor path (polyline). After using the measure command for the first block with the correct on center spacing, you can modify the conveyor path. Copy the conveyor path a set distance away (an easy to remember number so it clears the rest of the drawing. Trim off the beginning end of the path so that the amount removed equals the spacing of the two objects in the original block. Use the measure command on the shortened path and insert the second block. Drag a selection window over all the newly created geometry, deselect the shortened path, and move them back to their original position. Depending on the geometry of the conveyor path this method may work without duplicating/moving the path. If it is a closed loop, stretch the beginning base point an amount equal to the spacing between the two blocks. If it is just a polyline you can stretch the base point for the second set then stretch it back. This drawing may illustrate my meaning. measure.dwg Quote
atul Posted December 16, 2008 Author Posted December 16, 2008 just an intro of the problem each blue square has 2 connecting points one is red in colour and other is green ,,now using the block command i created a block of the above taking red dot as the reffrence point while making the block.now when use measure commond if u carefully see the pic although the blue box is making the motion the green dot is miss allined Ie its not on the magenta coloured line..pl help to give a commond or instruction by which i get both red and green dot of the blue block on the magenta coloured line..... regards Quote
GypsyQueen Posted December 16, 2008 Posted December 16, 2008 I believe that Maxwell answered your post in the other forum where you had originally posted this question. http://www.cadtutor.net/forum/showthread.php?t=30471 Quote
MaxwellEdison Posted December 16, 2008 Posted December 16, 2008 Actually, I don't think I did. I thought this was more in a section view where you were looking for vertical ribbings on the belt. My solution would get the red and green markers on the path, but not the rectangles. I think this may be a better situation for a LISP routine or VBA. And thats where I get out of my element. Quote
MaxwellEdison Posted December 16, 2008 Posted December 16, 2008 Actually, scratch that. If we use the red marker as the insertion point of the block and add a rotation parameter in the block editor You could use the measure command to insert the blocks, then rotate the misbehaving ones to get the green dots back in line. Not the most elegant solution, but its simple. If you aren't comfortable with dynamic blocks, you can post your conveyor block I'll slap the rotation parameter on it so you can try it. Quote
BIGAL Posted December 17, 2008 Posted December 17, 2008 You can insert blocks along a polyline and rotate them so that two points align. I used a VBA to do it you calculate your new position then calculate the angle for the second intersection point this gives block rotation. Here is the code Sub draw_vehicle() Dim CAR As String Dim arcobj As AcadArc Dim oPoly As AcadEntity Dim blkobj As AcadEntity Dim retVal As Variant Dim snapPt As Variant Dim oCoords As Variant Dim blpnt1() As Variant ReDim blpnt1(100) Dim blpnt2() As Variant ReDim blpnt2(100) Dim vertPt(0 To 2) As Double Dim Pt1(0 To 2) As Double Dim Pt2(0 To 2) As Double Dim newPt(0 To 2) As Double Dim iCnt, w, x, y, z As Integer Dim cRad, interval, blkangle As Double Dim circObj As AcadCircle Dim lineObj As AcadLine On Error GoTo Something_Wrong For Each Item In ThisDrawing.Blocks If Item.Name = "holden" Then GoTo continue_on Next Item ' exits out of program GoTo Exit_out continue_on: w = 1 ThisDrawing.Utility.GetEntity oPoly, snapPt, vbCr & "Select polyline :" If oPoly.ObjectName = "AcDbPolyline" Then oCoords = oPoly.Coordinates Else: MsgBox "This object is not a polyline!" Exit Sub End If interval = CDbl(InputBox("Enter interval:", , 1#)) If interval < 1 Then interval = 1 End If For iCnt = 0 To UBound(oCoords) - 2 Step 2 Pt1(0) = oCoords(iCnt): Pt1(1) = oCoords(iCnt + 1): Pt1(2) = 0# newPt(0) = Pt1(0) newPt(1) = Pt1(1) newPt(2) = 0# iCnt = iCnt + 2 Pt2(0) = oCoords(iCnt): Pt2(1) = oCoords(iCnt + 1): Pt2(2) = 0# x = (Pt1(0) - Pt2(0)) / interval y = (Pt1(1) - Pt2(1)) / interval 'reset back 2 values iCnt = iCnt - 2 cRad = 2.8 startang = 4.712 endang = 1.57 CAR = "HOLDEN" For z = 1 To interval vertPt(0) = newPt(0) - x vertPt(1) = newPt(1) - y vertPt(2) = 0# 'blpnt1(w) = vertPt Set arcobj = ThisDrawing.ModelSpace.AddArc(vertPt, cRad, endang, startang) retval2 = arcobj.IntersectWith(oPoly, acExtendOtherEntity) arcobj.Delete Set arcobj = Nothing blkangle = ThisDrawing.Utility.AngleFromXAxis(retval2, vertPt) Set blkobj = ThisDrawing.ModelSpace.InsertBlock(vertPt, CAR, 1#, 1#, 1#, blkangle) Set blkobj = Nothing w = w + 1 newPt(0) = newPt(0) - x newPt(1) = newPt(1) - y Next z Next iCnt Something_Wrong: MsgBox Err.Description Exit_out: End Sub You need to change the block "holden" for yours its hard coded for the distance to be 2.8m (cRad = 2. ie your red and green dot Quote
atul Posted December 17, 2008 Author Posted December 17, 2008 hi max thanks but the dwg would not open Quote
Tankman Posted December 17, 2008 Posted December 17, 2008 hi max thanks but the dwg would not open For posting, I always save in AutoCAD vs. 2000. Not everyone has '09 or '07 for that matter. Perhaps Maxwell could save as a *.dwg vs. 2000 and repost. Quote
atul Posted December 17, 2008 Author Posted December 17, 2008 guys do u want me to attach the front view of the above dwg so that u could give me a better comment on it Quote
atul Posted December 17, 2008 Author Posted December 17, 2008 yes friends now i am in a better position to ask my question 1)the older component passing on the conveyor was of 250 by 250 at this time there was less problem of fouling 2)but know i wanted to introduce comp of 450 length ,as u can see the third pic the tail of the component is moving so much out sde the conveyor line ,that it attemts to foule with all the machine panels in ble colour 3)presently i did the same as max guided drawing circle taking exact matching point on conveyor,placing both red and green dots on conveyor,but this is a very lengthi method,is there any other method where both red and green dots move on the conveyorline at the same time. 4)is there any other comand in cad 2d by wich i can actually give this componet motion,so that i get the actuall behaviour of motion of the component guid me pls regards Quote
Cad64 Posted December 17, 2008 Posted December 17, 2008 Atul, I have merged your three threads into this one. In the future, please do not cross post as this just causes confusion and makes it difficult to follow your progress towards a solution to your problem. Quote
eldon Posted December 17, 2008 Posted December 17, 2008 Basically this is the same problem as a vehicle tracking path. Autocad has no commands to do it, and there are specialist programs to do what you want to. Lisp seems to be a good alternative, and already one has been posted. Quote
atul Posted December 17, 2008 Author Posted December 17, 2008 hi eldon could u tell me where is it already posted. Quote
eldon Posted December 17, 2008 Posted December 17, 2008 I thought BIGAL's posting was a Lisp, but perhaps it wasn't after all Personally, I would go for Measure, which is perfect along the straights, then adjust those blocks round the corners. Quote
dbroada Posted December 17, 2008 Posted December 17, 2008 I thought BIGAL's posting was a Lisp, but perhaps it wasn't after all his post is in VBA which probably needs a little more work in loading. Do we have an FAQ about running vba I wonder... Quote
skipsophrenic Posted December 17, 2008 Posted December 17, 2008 Dave, Just run a quick search, and i can't find one. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.